Again...
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@16148 27425a3e-05d8-49a3-a47f-9c15f0e5edd8
This commit is contained in:
parent
dab9ebf762
commit
26aab35d00
|
@ -540,7 +540,8 @@ void sdc_lld_set_data_clk(SDCDriver *sdcp, sdcbusclk_t clk) {
|
|||
|
||||
#if STM32_SDC_SDMMC_50MHZ
|
||||
if (SDC_CLK_50MHz == clk) {
|
||||
sdcp->sdmmc->CLKCR = (sdcp->sdmmc->CLKCR & 0xFFFFFF00U) |
|
||||
sdcp->sdmmc->CLKCR = (sdcp->sdmmc->CLKCR & ~(SDMMC_CLKCR_PWRSAV_Msk |
|
||||
SDMMC_CLKCR_CLKDIV_Msk)) |
|
||||
#if STM32_SDC_SDMMC_PWRSAV
|
||||
SDMMC_CLKDIV_HS | SDMMC_CLKCR_BYPASS |
|
||||
SDMMC_CLKCR_PWRSAV;
|
||||
|
@ -549,11 +550,12 @@ void sdc_lld_set_data_clk(SDCDriver *sdcp, sdcbusclk_t clk) {
|
|||
#endif
|
||||
}
|
||||
else {
|
||||
sdcp->sdmmc->CLKCR = (sdcp->sdmmc->CLKCR & ~(SDMMC_CLKCR_PWRSAV_Msk |
|
||||
SDMMC_CLKCR_CLKDIV_Msk)) |
|
||||
#if STM32_SDC_SDMMC_PWRSAV
|
||||
sdcp->sdmmc->CLKCR = (sdcp->sdmmc->CLKCR & 0xFFFFFF00U) | SDMMC_CLKDIV_HS |
|
||||
SDMMC_CLKCR_PWRSAV;
|
||||
SDMMC_CLKDIV_HS | SDMMC_CLKCR_PWRSAV;
|
||||
#else
|
||||
sdcp->sdmmc->CLKCR = (sdcp->sdmmc->CLKCR & 0xFFFFFF00U) | SDMMC_CLKDIV_HS;
|
||||
SDMMC_CLKDIV_HS;
|
||||
#endif
|
||||
}
|
||||
#else
|
||||
|
|
|
@ -725,6 +725,9 @@ bool sdc_lld_read_aligned(SDCDriver *sdcp, uint32_t startblk,
|
|||
SDMMC_MASK_DATAENDIE;
|
||||
sdcp->sdmmc->DLEN = blocks * MMCSD_BLOCK_SIZE;
|
||||
|
||||
if (sdc_lld_prepare_read(sdcp, startblk, blocks, sdcp->resp) == true)
|
||||
goto error;
|
||||
|
||||
/* Transfer modes.*/
|
||||
sdcp->sdmmc->DCTRL = SDMMC_DCTRL_DTDIR |
|
||||
SDMMC_DCTRL_FIFORST |
|
||||
|
@ -732,9 +735,6 @@ bool sdc_lld_read_aligned(SDCDriver *sdcp, uint32_t startblk,
|
|||
SDMMC_DCTRL_DBLOCKSIZE_0 |
|
||||
SDMMC_DCTRL_DTEN;
|
||||
|
||||
if (sdc_lld_prepare_read(sdcp, startblk, blocks, sdcp->resp) == true)
|
||||
goto error;
|
||||
|
||||
if (sdc_lld_wait_transaction_end(sdcp, blocks, sdcp->resp) == true)
|
||||
goto error;
|
||||
|
||||
|
@ -782,15 +782,15 @@ bool sdc_lld_write_aligned(SDCDriver *sdcp, uint32_t startblk,
|
|||
SDMMC_MASK_DATAENDIE;
|
||||
sdcp->sdmmc->DLEN = blocks * MMCSD_BLOCK_SIZE;
|
||||
|
||||
if (sdc_lld_prepare_write(sdcp, startblk, blocks, sdcp->resp) == true)
|
||||
goto error;
|
||||
|
||||
/* Transfer modes.*/
|
||||
sdcp->sdmmc->DCTRL = SDMMC_DCTRL_FIFORST |
|
||||
SDMMC_DCTRL_DBLOCKSIZE_3 |
|
||||
SDMMC_DCTRL_DBLOCKSIZE_0 |
|
||||
SDMMC_DCTRL_DTEN;
|
||||
|
||||
if (sdc_lld_prepare_write(sdcp, startblk, blocks, sdcp->resp) == true)
|
||||
goto error;
|
||||
|
||||
if (sdc_lld_wait_transaction_end(sdcp, blocks, sdcp->resp) == true)
|
||||
goto error;
|
||||
|
||||
|
|
Loading…
Reference in New Issue