arch/arm/src/lpc43xx: Fix some small issues on LPC43 SDMMC driver
This commit is contained in:
parent
6ed875a63b
commit
3ce21c5fe1
@ -63,10 +63,8 @@
|
||||
|
||||
#include <nuttx/irq.h>
|
||||
|
||||
#include "chip.h"
|
||||
#include "up_arch.h"
|
||||
|
||||
#include "chip/lpc43_pinconfig.h"
|
||||
#include "lpc43_cgu.h"
|
||||
#include "lpc43_ccu.h"
|
||||
#include "lpc43_gpio.h"
|
||||
@ -2665,14 +2663,14 @@ FAR struct sdio_dev_s *lpc43_sdmmc_initialize(int slotno)
|
||||
mcinfo("slotno=%d\n", slotno);
|
||||
flags = enter_critical_section();
|
||||
|
||||
/* Configure clocking */
|
||||
/* Set up the clock source */
|
||||
|
||||
regval = getreg32(LPC43_BASE_SDIO_CLK);
|
||||
regval &= ~BASE_SDIO_CLK_CLKSEL_MASK;
|
||||
regval |= (BOARD_SDIO_CLKSRC | BASE_SDIO_CLK_AUTOBLOCK);
|
||||
putreg32(regval, LPC43_BASE_SDIO_CLK);
|
||||
|
||||
/* Enable clocking to the SDIO block */
|
||||
/* Enable clocking to the SD/MMC peripheral */
|
||||
|
||||
regval = lpc43_getreg(LPC43_CCU1_M4_SDIO_CFG);
|
||||
regval |= CCU_CLK_CFG_RUN;
|
||||
@ -2680,10 +2678,6 @@ FAR struct sdio_dev_s *lpc43_sdmmc_initialize(int slotno)
|
||||
regval |= CCU_CLK_CFG_WAKEUP;
|
||||
lpc43_putreg(regval, LPC43_CCU1_M4_SDIO_CFG);
|
||||
|
||||
/* REVISIT: The delay values on the sample and drive inputs and outputs
|
||||
* can be adjusted using the SDIOCLKCTRL register in the SYSCON block.
|
||||
*/
|
||||
|
||||
/* Initialize semaphores */
|
||||
|
||||
sem_init(&priv->waitsem, 0, 0);
|
||||
@ -2719,6 +2713,12 @@ FAR struct sdio_dev_s *lpc43_sdmmc_initialize(int slotno)
|
||||
lpc43_pin_config(GPIO_SD_WR_PRT);
|
||||
#endif
|
||||
|
||||
regval = getreg32(LPC43_SCU_SFSCLK2);
|
||||
regval |= (2 << 3); /* Disable pull-down and pull-up resistor */
|
||||
regval |= (1 << 6); /* Enable Input buffer */
|
||||
regval |= (4); /* Selects pin function 4 */
|
||||
putreg32(regval, LPC43_SCU_SFSCLK2);
|
||||
|
||||
/* Reset the card and assure that it is in the initial, unconfigured
|
||||
* state.
|
||||
*/
|
||||
|
@ -762,43 +762,43 @@
|
||||
#define GPIO_SD_CARD_DET_N_3 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_PORT4 | GPIO_PIN22)
|
||||
#define GPIO_SD_CARD_INT_N_1 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_PORT3 | GPIO_PIN20)
|
||||
#define GPIO_SD_CARD_INT_N_2 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PORT4 | GPIO_PIN24)
|
||||
#define GPIO_SD_CLK_1 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_PORT0 | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PIN7)
|
||||
#define GPIO_SD_CLK_2 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_PORT1 | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PIN8)
|
||||
#define GPIO_SD_CLK_3 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_PORT2 | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PIN3)
|
||||
#define GPIO_SD_CLK_4 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_PORT4 | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PIN19)
|
||||
#define GPIO_SD_CMD_1 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_PORT0 | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PIN8)
|
||||
#define GPIO_SD_CMD_2 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_PORT1 | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PIN22)
|
||||
#define GPIO_SD_CMD_3 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_PORT2 | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PIN4)
|
||||
#define GPIO_SD_CMD_4 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_PORT4 | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PIN20)
|
||||
#define GPIO_SD_CMD_5 (GPIO_ALT4 | GPIO_MODE_DIGITAL | GPIO_PORT1 | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PIN16)
|
||||
#define GPIO_SD_D0_1 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_PORT0 | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PIN24)
|
||||
#define GPIO_SD_D0_2 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_PORT1 | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PIN4)
|
||||
#define GPIO_SD_D0_3 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_PORT2 | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PIN6)
|
||||
#define GPIO_SD_D0_4 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_PORT4 | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PIN25)
|
||||
#define GPIO_SD_D1_1 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_PORT0 | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PIN25)
|
||||
#define GPIO_SD_D1_2 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_PORT1 | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PIN7)
|
||||
#define GPIO_SD_D1_3 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_PORT2 | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PIN7)
|
||||
#define GPIO_SD_D1_4 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_PORT4 | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PIN26)
|
||||
#define GPIO_SD_D2_1 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_PORT0 | GPIO_FILTER_OFF | GPIO_PIN31) /* Type A */
|
||||
#define GPIO_SD_D2_2 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_PORT1 | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PIN5)
|
||||
#define GPIO_SD_D2_3 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_PORT2 | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PIN8)
|
||||
#define GPIO_SD_D2_4 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_PORT4 | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PIN27)
|
||||
#define GPIO_SD_D3_1 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_PORT1 | GPIO_FILTER_OFF | GPIO_PIN0) /* Type A */
|
||||
#define GPIO_SD_D3_2 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_PORT1 | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PIN6)
|
||||
#define GPIO_SD_D3_3 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_PORT2 | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PIN9)
|
||||
#define GPIO_SD_D3_4 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_PORT4 | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PIN28)
|
||||
#define GPIO_SD_D4_1 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_PORT1 | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PIN27)
|
||||
#define GPIO_SD_D4_2 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_PORT3 | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PIN16)
|
||||
#define GPIO_SD_D4_3 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_PORT4 | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PIN29)
|
||||
#define GPIO_SD_D5_1 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_PORT1 | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PIN28)
|
||||
#define GPIO_SD_D5_2 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_PORT3 | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PIN17)
|
||||
#define GPIO_SD_D5_3 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_PORT4 | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PIN30)
|
||||
#define GPIO_SD_D6_1 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_PORT1 | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PIN29)
|
||||
#define GPIO_SD_D6_2 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_PORT3 | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PIN18)
|
||||
#define GPIO_SD_D6_3 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_PORT4 | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PIN31)
|
||||
#define GPIO_SD_D7_1 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_PORT1 | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PIN30)
|
||||
#define GPIO_SD_D7_2 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_PORT3 | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PIN19)
|
||||
#define GPIO_SD_D7_3 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_PORT5 | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PIN0)
|
||||
#define GPIO_SD_CLK_1 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PORT0 | GPIO_PIN7)
|
||||
#define GPIO_SD_CLK_2 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PORT1 | GPIO_PIN8)
|
||||
#define GPIO_SD_CLK_3 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PORT2 | GPIO_PIN3)
|
||||
#define GPIO_SD_CLK_4 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PORT4 | GPIO_PIN19)
|
||||
#define GPIO_SD_CMD_1 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PORT0 | GPIO_PIN8)
|
||||
#define GPIO_SD_CMD_2 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PORT1 | GPIO_PIN22)
|
||||
#define GPIO_SD_CMD_3 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PORT2 | GPIO_PIN4)
|
||||
#define GPIO_SD_CMD_4 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PORT4 | GPIO_PIN20)
|
||||
#define GPIO_SD_CMD_5 (GPIO_ALT4 | GPIO_MODE_DIGITAL | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PORT1 | GPIO_PIN16)
|
||||
#define GPIO_SD_D0_1 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PORT0 | GPIO_PIN24)
|
||||
#define GPIO_SD_D0_2 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PORT1 | GPIO_PIN4)
|
||||
#define GPIO_SD_D0_3 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PORT2 | GPIO_PIN6)
|
||||
#define GPIO_SD_D0_4 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PORT4 | GPIO_PIN25)
|
||||
#define GPIO_SD_D1_1 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PORT0 | GPIO_PIN25)
|
||||
#define GPIO_SD_D1_2 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PORT1 | GPIO_PIN7)
|
||||
#define GPIO_SD_D1_3 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PORT2 | GPIO_PIN7)
|
||||
#define GPIO_SD_D1_4 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PORT4 | GPIO_PIN26)
|
||||
#define GPIO_SD_D2_1 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_FILTER_OFF | GPIO_PORT0 | GPIO_PIN31) /* Type A */
|
||||
#define GPIO_SD_D2_2 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PORT1 | GPIO_PIN5)
|
||||
#define GPIO_SD_D2_3 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PORT2 | GPIO_PIN8)
|
||||
#define GPIO_SD_D2_4 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PORT4 | GPIO_PIN27)
|
||||
#define GPIO_SD_D3_1 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_FILTER_OFF | GPIO_PORT1 | GPIO_PIN0) /* Type A */
|
||||
#define GPIO_SD_D3_2 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PORT1 | GPIO_PIN6)
|
||||
#define GPIO_SD_D3_3 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PORT2 | GPIO_PIN9)
|
||||
#define GPIO_SD_D3_4 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PORT4 | GPIO_PIN28)
|
||||
#define GPIO_SD_D4_1 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PORT1 | GPIO_PIN27)
|
||||
#define GPIO_SD_D4_2 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PORT3 | GPIO_PIN16)
|
||||
#define GPIO_SD_D4_3 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PORT4 | GPIO_PIN29)
|
||||
#define GPIO_SD_D5_1 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PORT1 | GPIO_PIN28)
|
||||
#define GPIO_SD_D5_2 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PORT3 | GPIO_PIN17)
|
||||
#define GPIO_SD_D5_3 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PORT4 | GPIO_PIN30)
|
||||
#define GPIO_SD_D6_1 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PORT1 | GPIO_PIN29)
|
||||
#define GPIO_SD_D6_2 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PORT3 | GPIO_PIN18)
|
||||
#define GPIO_SD_D6_3 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PORT4 | GPIO_PIN31)
|
||||
#define GPIO_SD_D7_1 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PORT1 | GPIO_PIN30)
|
||||
#define GPIO_SD_D7_2 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PORT3 | GPIO_PIN19)
|
||||
#define GPIO_SD_D7_3 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_SLEW_FAST | GPIO_FILTER_OFF | GPIO_PORT5 | GPIO_PIN0)
|
||||
#define GPIO_SD_POW_EN_1 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_PORT0 | GPIO_PIN9)
|
||||
#define GPIO_SD_POW_EN_2 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_PORT2 | GPIO_PIN5)
|
||||
#define GPIO_SD_POW_EN_3 (GPIO_ALT2 | GPIO_MODE_DIGITAL | GPIO_PORT4 | GPIO_PIN21)
|
||||
|
@ -365,7 +365,7 @@
|
||||
*/
|
||||
|
||||
#define GPIO_SD_CARD_DET_N GPIO_SD_CARD_DET_N_2 /* P2.10 */
|
||||
#define GPIO_SD_D0 GPIO_SD_D0_3 /* P2.9 */
|
||||
#define GPIO_SD_D0 GPIO_SD_D0_3 /* P2.6 */
|
||||
#define GPIO_SD_D1 GPIO_SD_D1_3 /* P2.7 */
|
||||
#define GPIO_SD_D2 GPIO_SD_D2_3 /* P2.8 */
|
||||
#define GPIO_SD_D3 GPIO_SD_D3_3 /* P2.9 */
|
||||
|
Loading…
Reference in New Issue
Block a user