5757 #define SD_CLK_PWR_SAVE SDMMC_CLOCK_POWER_SAVE_DISABLE
5858 #define SD_BUS_WIDE_1B SDMMC_BUS_WIDE_1B
5959 #define SD_BUS_WIDE_4B SDMMC_BUS_WIDE_4B
60- #define SD_BUS_WIDE_8B SDMMC_BUS_WIDE_8B
6160 #define SD_HW_FLOW_CTRL_ENABLE SDMMC_HARDWARE_FLOW_CONTROL_ENABLE
6261 #define SD_HW_FLOW_CTRL_DISABLE SDMMC_HARDWARE_FLOW_CONTROL_DISABLE
6362
8887 #define SD_CLK_PWR_SAVE SDIO_CLOCK_POWER_SAVE_DISABLE
8988 #define SD_BUS_WIDE_1B SDIO_BUS_WIDE_1B
9089 #define SD_BUS_WIDE_4B SDIO_BUS_WIDE_4B
91- #define SD_BUS_WIDE_8B SDIO_BUS_WIDE_8B
9290 #define SD_HW_FLOW_CTRL_ENABLE SDIO_HARDWARE_FLOW_CONTROL_ENABLE
9391 #define SD_HW_FLOW_CTRL_DISABLE SDIO_HARDWARE_FLOW_CONTROL_DISABLE
9492 #ifndef SD_CLK_DIV
@@ -150,9 +148,11 @@ uint8_t BSP_SD_GetInstance(void)
150148 if (SD_PinNames .pin_d0 == NC ) {
151149 /* No pin defined assume to use first pin available in each PinMap_SD_* arrays */
152150 SD_PinNames .pin_d0 = PinMap_SD_DATA0 [0 ].pin ;
151+ #if SD_BUS_WIDE == SD_BUS_WIDE_4B
153152 SD_PinNames .pin_d1 = PinMap_SD_DATA1 [0 ].pin ;
154153 SD_PinNames .pin_d2 = PinMap_SD_DATA2 [0 ].pin ;
155154 SD_PinNames .pin_d3 = PinMap_SD_DATA3 [0 ].pin ;
155+ #endif
156156 SD_PinNames .pin_cmd = PinMap_SD_CMD [0 ].pin ;
157157 SD_PinNames .pin_ck = PinMap_SD_CK [0 ].pin ;
158158#if defined(SDMMC1 ) || defined(SDMMC2 )
@@ -172,15 +172,20 @@ uint8_t BSP_SD_GetInstance(void)
172172 }
173173 /* Get SD instance from pins */
174174 sd_d0 = pinmap_peripheral (SD_PinNames .pin_d0 , PinMap_SD_DATA0 );
175+ #if SD_BUS_WIDE == SD_BUS_WIDE_4B
175176 sd_d1 = pinmap_peripheral (SD_PinNames .pin_d1 , PinMap_SD_DATA1 );
176177 sd_d2 = pinmap_peripheral (SD_PinNames .pin_d2 , PinMap_SD_DATA2 );
177178 sd_d3 = pinmap_peripheral (SD_PinNames .pin_d3 , PinMap_SD_DATA3 );
178-
179+ #endif
179180 sd_cmd = pinmap_peripheral (SD_PinNames .pin_cmd , PinMap_SD_CMD );
180181 sd_ck = pinmap_peripheral (SD_PinNames .pin_ck , PinMap_SD_CK );
181182
182183 /* Pins Dx/cmd/CK must not be NP. */
183- if (sd_d0 == NP || sd_d1 == NP || sd_d2 == NP || sd_d3 == NP || sd_cmd == NP || sd_ck == NP ) {
184+ if (sd_d0 == NP ||
185+ #if SD_BUS_WIDE == SD_BUS_WIDE_4B
186+ sd_d1 == NP || sd_d2 == NP || sd_d3 == NP ||
187+ #endif
188+ sd_cmd == NP || sd_ck == NP ) {
184189 core_debug ("ERROR: at least one SD pin has no peripheral\n" );
185190 return MSD_ERROR ;
186191 }
@@ -190,7 +195,11 @@ uint8_t BSP_SD_GetInstance(void)
190195 SD_TypeDef * sd_cx = pinmap_merge_peripheral (sd_cmd , sd_ck );
191196 SD_TypeDef * sd_dx = pinmap_merge_peripheral (sd_d01 , sd_d23 );
192197 SD_TypeDef * sd_base = pinmap_merge_peripheral (sd_dx , sd_cx );
193- if (sd_d01 == NP || sd_d23 == NP || sd_cx == NP || sd_dx == NP || sd_base == NP ) {
198+ if (sd_d01 == NP ||
199+ #if SD_BUS_WIDE == SD_BUS_WIDE_4B
200+ sd_d23 == NP ||
201+ #endif
202+ sd_cx == NP || sd_dx == NP || sd_base == NP ) {
194203 core_debug ("ERROR: SD pins mismatch\n" );
195204 return MSD_ERROR ;
196205 }
@@ -522,9 +531,11 @@ __weak void BSP_SD_MspInit(SD_HandleTypeDef *hsd, void *Params)
522531#else
523532 /* Configure SD GPIO pins */
524533 pinmap_pinout (SD_PinNames .pin_d0 , PinMap_SD_DATA0 );
534+ #if SD_BUS_WIDE == SD_BUS_WIDE_4B
525535 pinmap_pinout (SD_PinNames .pin_d1 , PinMap_SD_DATA1 );
526536 pinmap_pinout (SD_PinNames .pin_d2 , PinMap_SD_DATA2 );
527537 pinmap_pinout (SD_PinNames .pin_d3 , PinMap_SD_DATA3 );
538+ #endif
528539 pinmap_pinout (SD_PinNames .pin_cmd , PinMap_SD_CMD );
529540 pinmap_pinout (SD_PinNames .pin_ck , PinMap_SD_CK );
530541#if defined(SDMMC1 ) || defined(SDMMC2 )
0 commit comments