Re: [U-Boot] [PATCH v2 14/17] engicam: icorem6: Add DM_GPIO, DM_MMC support
On Mon, Sep 19, 2016 at 11:55 AM, Peng Fanwrote: > Hi Jagan, > On Sat, Sep 17, 2016 at 02:18:46AM +0530, Jagan Teki wrote: >>Add DM_GPIO, DM_MMC support for u-boot and disable for SPL. >> >>Cc: Peng Fan >>Cc: Stefano Babic >>Cc: Fabio Estevam >>Cc: Matteo Lisi >>Cc: Michael Trimarchi >>Signed-off-by: Jagan Teki >>--- >> arch/arm/cpu/armv7/mx6/Kconfig | 2 + >> board/engicam/icorem6/icorem6.c | 142 >> >> include/configs/imx6qdl_icore.h | 4 ++ >> 3 files changed, 78 insertions(+), 70 deletions(-) >> >>diff --git a/arch/arm/cpu/armv7/mx6/Kconfig b/arch/arm/cpu/armv7/mx6/Kconfig >>index e2431a8..762a581 100644 >>--- a/arch/arm/cpu/armv7/mx6/Kconfig >>+++ b/arch/arm/cpu/armv7/mx6/Kconfig >>@@ -100,6 +100,8 @@ config TARGET_MX6Q_ICORE >> select MX6QDL >> select OF_CONTROL >> select DM >>+ select DM_GPIO > > I do not see MXC_GPIO defined. Defined in common mx6 - include/configs/mx6_common.h > >>+ select DM_MMC >> select DM_THERMAL >> select SUPPORT_SPL >> >>diff --git a/board/engicam/icorem6/icorem6.c b/board/engicam/icorem6/icorem6.c >>index 4331ad3..2aa8a4e 100644 >>--- a/board/engicam/icorem6/icorem6.c >>+++ b/board/engicam/icorem6/icorem6.c >>@@ -7,8 +7,6 @@ >> */ >> >> #include >>-#include >>-#include >> #include >> #include >> >>@@ -29,10 +27,6 @@ DECLARE_GLOBAL_DATA_PTR; >> PAD_CTL_PUS_100K_UP | PAD_CTL_SPEED_MED | \ >> PAD_CTL_DSE_40ohm | PAD_CTL_SRE_FAST | PAD_CTL_HYS) >> >>-#define USDHC_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \ >>- PAD_CTL_PUS_22K_UP | PAD_CTL_SPEED_LOW | \ >>- PAD_CTL_DSE_80ohm | PAD_CTL_SRE_FAST | PAD_CTL_HYS) >>- >> #define ENET_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \ >> PAD_CTL_PUS_100K_UP | PAD_CTL_SPEED_MED | \ >> PAD_CTL_DSE_40ohm | PAD_CTL_HYS) >>@@ -55,70 +49,6 @@ static iomux_v3_cfg_t const enet_pads[] = { >> IOMUX_PADS(PAD_GPIO_17__GPIO7_IO12 | MUX_PAD_CTRL(NO_PAD_CTRL)), >> }; >> >>-static iomux_v3_cfg_t const usdhc1_pads[] = { >>- IOMUX_PADS(PAD_SD1_CLK__SD1_CLK | MUX_PAD_CTRL(USDHC_PAD_CTRL)), >>- IOMUX_PADS(PAD_SD1_CMD__SD1_CMD | MUX_PAD_CTRL(USDHC_PAD_CTRL)), >>- IOMUX_PADS(PAD_SD1_DAT0__SD1_DATA0 | MUX_PAD_CTRL(USDHC_PAD_CTRL)), >>- IOMUX_PADS(PAD_SD1_DAT1__SD1_DATA1 | MUX_PAD_CTRL(USDHC_PAD_CTRL)), >>- IOMUX_PADS(PAD_SD1_DAT2__SD1_DATA2 | MUX_PAD_CTRL(USDHC_PAD_CTRL)), >>- IOMUX_PADS(PAD_SD1_DAT3__SD1_DATA3 | MUX_PAD_CTRL(USDHC_PAD_CTRL)), >>- IOMUX_PADS(PAD_GPIO_1__GPIO1_IO01 | MUX_PAD_CTRL(NO_PAD_CTRL)),/* CD */ >>-}; >>- >>-#ifdef CONFIG_FSL_ESDHC >>-#define USDHC1_CD_GPIOIMX_GPIO_NR(1, 1) >>- >>-struct fsl_esdhc_cfg usdhc_cfg[1] = { >>- {USDHC1_BASE_ADDR, 0, 4}, >>-}; >>- >>-int board_mmc_getcd(struct mmc *mmc) >>-{ >>- struct fsl_esdhc_cfg *cfg = (struct fsl_esdhc_cfg *)mmc->priv; >>- int ret = 0; >>- >>- switch (cfg->esdhc_base) { >>- case USDHC1_BASE_ADDR: >>- ret = !gpio_get_value(USDHC1_CD_GPIO); >>- break; >>- } >>- >>- return ret; >>-} >>- >>-int board_mmc_init(bd_t *bis) >>-{ >>- int i, ret; >>- >>- /* >>- * According to the board_mmc_init() the following map is done: >>- * (U-boot device node)(Physical Port) >>- * mmc0 USDHC1 >>- */ >>- for (i = 0; i < CONFIG_SYS_FSL_USDHC_NUM; i++) { >>- switch (i) { >>- case 0: >>- SETUP_IOMUX_PADS(usdhc1_pads); >>- gpio_direction_input(USDHC1_CD_GPIO); >>- usdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC_CLK); >>- break; >>- default: >>- printf("Warning - USDHC%d controller not supporting\n", >>- i + 1); >>- return 0; >>- } >>- >>- ret = fsl_esdhc_initialize(bis, _cfg[i]); >>- if (ret) { >>- printf("Warning: failed to initialize mmc dev %d\n", >>i); >>- return ret; >>- } >>- } >>- >>- return 0; >>-} >>-#endif >>- >> #ifdef CONFIG_FEC_MXC >> #define ENET_PHY_RST IMX_GPIO_NR(7, 12) >> static int setup_fec(void) >>@@ -200,6 +130,78 @@ int dram_init(void) >> #include >> #include >> >>+/* MMC board initialization is needed till adding DM support in SPL */ >>+#if defined(CONFIG_FSL_ESDHC) && !defined(CONFIG_DM_MMC) > > You could use "#ifdef CONFIG_SPL_BUILD" if this is only for SPL Yes this code already in #ifdefc CONFIG_SPL_BUILD blcok, please check it clearly. thanks! -- Jagan Teki Free Software Engineer | www.openedev.com U-Boot, Linux | Upstream Maintainer Hyderabad, India.
Re: [U-Boot] [PATCH v2 14/17] engicam: icorem6: Add DM_GPIO, DM_MMC support
Hi Jagan, On Sat, Sep 17, 2016 at 02:18:46AM +0530, Jagan Teki wrote: >Add DM_GPIO, DM_MMC support for u-boot and disable for SPL. > >Cc: Peng Fan>Cc: Stefano Babic >Cc: Fabio Estevam >Cc: Matteo Lisi >Cc: Michael Trimarchi >Signed-off-by: Jagan Teki >--- > arch/arm/cpu/armv7/mx6/Kconfig | 2 + > board/engicam/icorem6/icorem6.c | 142 > include/configs/imx6qdl_icore.h | 4 ++ > 3 files changed, 78 insertions(+), 70 deletions(-) > >diff --git a/arch/arm/cpu/armv7/mx6/Kconfig b/arch/arm/cpu/armv7/mx6/Kconfig >index e2431a8..762a581 100644 >--- a/arch/arm/cpu/armv7/mx6/Kconfig >+++ b/arch/arm/cpu/armv7/mx6/Kconfig >@@ -100,6 +100,8 @@ config TARGET_MX6Q_ICORE > select MX6QDL > select OF_CONTROL > select DM >+ select DM_GPIO I do not see MXC_GPIO defined. >+ select DM_MMC > select DM_THERMAL > select SUPPORT_SPL > >diff --git a/board/engicam/icorem6/icorem6.c b/board/engicam/icorem6/icorem6.c >index 4331ad3..2aa8a4e 100644 >--- a/board/engicam/icorem6/icorem6.c >+++ b/board/engicam/icorem6/icorem6.c >@@ -7,8 +7,6 @@ > */ > > #include >-#include >-#include > #include > #include > >@@ -29,10 +27,6 @@ DECLARE_GLOBAL_DATA_PTR; > PAD_CTL_PUS_100K_UP | PAD_CTL_SPEED_MED | \ > PAD_CTL_DSE_40ohm | PAD_CTL_SRE_FAST | PAD_CTL_HYS) > >-#define USDHC_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \ >- PAD_CTL_PUS_22K_UP | PAD_CTL_SPEED_LOW | \ >- PAD_CTL_DSE_80ohm | PAD_CTL_SRE_FAST | PAD_CTL_HYS) >- > #define ENET_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \ > PAD_CTL_PUS_100K_UP | PAD_CTL_SPEED_MED | \ > PAD_CTL_DSE_40ohm | PAD_CTL_HYS) >@@ -55,70 +49,6 @@ static iomux_v3_cfg_t const enet_pads[] = { > IOMUX_PADS(PAD_GPIO_17__GPIO7_IO12 | MUX_PAD_CTRL(NO_PAD_CTRL)), > }; > >-static iomux_v3_cfg_t const usdhc1_pads[] = { >- IOMUX_PADS(PAD_SD1_CLK__SD1_CLK | MUX_PAD_CTRL(USDHC_PAD_CTRL)), >- IOMUX_PADS(PAD_SD1_CMD__SD1_CMD | MUX_PAD_CTRL(USDHC_PAD_CTRL)), >- IOMUX_PADS(PAD_SD1_DAT0__SD1_DATA0 | MUX_PAD_CTRL(USDHC_PAD_CTRL)), >- IOMUX_PADS(PAD_SD1_DAT1__SD1_DATA1 | MUX_PAD_CTRL(USDHC_PAD_CTRL)), >- IOMUX_PADS(PAD_SD1_DAT2__SD1_DATA2 | MUX_PAD_CTRL(USDHC_PAD_CTRL)), >- IOMUX_PADS(PAD_SD1_DAT3__SD1_DATA3 | MUX_PAD_CTRL(USDHC_PAD_CTRL)), >- IOMUX_PADS(PAD_GPIO_1__GPIO1_IO01 | MUX_PAD_CTRL(NO_PAD_CTRL)),/* CD */ >-}; >- >-#ifdef CONFIG_FSL_ESDHC >-#define USDHC1_CD_GPIOIMX_GPIO_NR(1, 1) >- >-struct fsl_esdhc_cfg usdhc_cfg[1] = { >- {USDHC1_BASE_ADDR, 0, 4}, >-}; >- >-int board_mmc_getcd(struct mmc *mmc) >-{ >- struct fsl_esdhc_cfg *cfg = (struct fsl_esdhc_cfg *)mmc->priv; >- int ret = 0; >- >- switch (cfg->esdhc_base) { >- case USDHC1_BASE_ADDR: >- ret = !gpio_get_value(USDHC1_CD_GPIO); >- break; >- } >- >- return ret; >-} >- >-int board_mmc_init(bd_t *bis) >-{ >- int i, ret; >- >- /* >- * According to the board_mmc_init() the following map is done: >- * (U-boot device node)(Physical Port) >- * mmc0 USDHC1 >- */ >- for (i = 0; i < CONFIG_SYS_FSL_USDHC_NUM; i++) { >- switch (i) { >- case 0: >- SETUP_IOMUX_PADS(usdhc1_pads); >- gpio_direction_input(USDHC1_CD_GPIO); >- usdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC_CLK); >- break; >- default: >- printf("Warning - USDHC%d controller not supporting\n", >- i + 1); >- return 0; >- } >- >- ret = fsl_esdhc_initialize(bis, _cfg[i]); >- if (ret) { >- printf("Warning: failed to initialize mmc dev %d\n", i); >- return ret; >- } >- } >- >- return 0; >-} >-#endif >- > #ifdef CONFIG_FEC_MXC > #define ENET_PHY_RST IMX_GPIO_NR(7, 12) > static int setup_fec(void) >@@ -200,6 +130,78 @@ int dram_init(void) > #include > #include > >+/* MMC board initialization is needed till adding DM support in SPL */ >+#if defined(CONFIG_FSL_ESDHC) && !defined(CONFIG_DM_MMC) You could use "#ifdef CONFIG_SPL_BUILD" if this is only for SPL Regards, Peng. ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
[U-Boot] [PATCH v2 14/17] engicam: icorem6: Add DM_GPIO, DM_MMC support
Add DM_GPIO, DM_MMC support for u-boot and disable for SPL. Cc: Peng FanCc: Stefano Babic Cc: Fabio Estevam Cc: Matteo Lisi Cc: Michael Trimarchi Signed-off-by: Jagan Teki --- arch/arm/cpu/armv7/mx6/Kconfig | 2 + board/engicam/icorem6/icorem6.c | 142 include/configs/imx6qdl_icore.h | 4 ++ 3 files changed, 78 insertions(+), 70 deletions(-) diff --git a/arch/arm/cpu/armv7/mx6/Kconfig b/arch/arm/cpu/armv7/mx6/Kconfig index e2431a8..762a581 100644 --- a/arch/arm/cpu/armv7/mx6/Kconfig +++ b/arch/arm/cpu/armv7/mx6/Kconfig @@ -100,6 +100,8 @@ config TARGET_MX6Q_ICORE select MX6QDL select OF_CONTROL select DM + select DM_GPIO + select DM_MMC select DM_THERMAL select SUPPORT_SPL diff --git a/board/engicam/icorem6/icorem6.c b/board/engicam/icorem6/icorem6.c index 4331ad3..2aa8a4e 100644 --- a/board/engicam/icorem6/icorem6.c +++ b/board/engicam/icorem6/icorem6.c @@ -7,8 +7,6 @@ */ #include -#include -#include #include #include @@ -29,10 +27,6 @@ DECLARE_GLOBAL_DATA_PTR; PAD_CTL_PUS_100K_UP | PAD_CTL_SPEED_MED | \ PAD_CTL_DSE_40ohm | PAD_CTL_SRE_FAST | PAD_CTL_HYS) -#define USDHC_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \ - PAD_CTL_PUS_22K_UP | PAD_CTL_SPEED_LOW | \ - PAD_CTL_DSE_80ohm | PAD_CTL_SRE_FAST | PAD_CTL_HYS) - #define ENET_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE |\ PAD_CTL_PUS_100K_UP | PAD_CTL_SPEED_MED | \ PAD_CTL_DSE_40ohm | PAD_CTL_HYS) @@ -55,70 +49,6 @@ static iomux_v3_cfg_t const enet_pads[] = { IOMUX_PADS(PAD_GPIO_17__GPIO7_IO12 | MUX_PAD_CTRL(NO_PAD_CTRL)), }; -static iomux_v3_cfg_t const usdhc1_pads[] = { - IOMUX_PADS(PAD_SD1_CLK__SD1_CLK | MUX_PAD_CTRL(USDHC_PAD_CTRL)), - IOMUX_PADS(PAD_SD1_CMD__SD1_CMD | MUX_PAD_CTRL(USDHC_PAD_CTRL)), - IOMUX_PADS(PAD_SD1_DAT0__SD1_DATA0 | MUX_PAD_CTRL(USDHC_PAD_CTRL)), - IOMUX_PADS(PAD_SD1_DAT1__SD1_DATA1 | MUX_PAD_CTRL(USDHC_PAD_CTRL)), - IOMUX_PADS(PAD_SD1_DAT2__SD1_DATA2 | MUX_PAD_CTRL(USDHC_PAD_CTRL)), - IOMUX_PADS(PAD_SD1_DAT3__SD1_DATA3 | MUX_PAD_CTRL(USDHC_PAD_CTRL)), - IOMUX_PADS(PAD_GPIO_1__GPIO1_IO01 | MUX_PAD_CTRL(NO_PAD_CTRL)),/* CD */ -}; - -#ifdef CONFIG_FSL_ESDHC -#define USDHC1_CD_GPIO IMX_GPIO_NR(1, 1) - -struct fsl_esdhc_cfg usdhc_cfg[1] = { - {USDHC1_BASE_ADDR, 0, 4}, -}; - -int board_mmc_getcd(struct mmc *mmc) -{ - struct fsl_esdhc_cfg *cfg = (struct fsl_esdhc_cfg *)mmc->priv; - int ret = 0; - - switch (cfg->esdhc_base) { - case USDHC1_BASE_ADDR: - ret = !gpio_get_value(USDHC1_CD_GPIO); - break; - } - - return ret; -} - -int board_mmc_init(bd_t *bis) -{ - int i, ret; - - /* - * According to the board_mmc_init() the following map is done: - * (U-boot device node)(Physical Port) - * mmc0 USDHC1 - */ - for (i = 0; i < CONFIG_SYS_FSL_USDHC_NUM; i++) { - switch (i) { - case 0: - SETUP_IOMUX_PADS(usdhc1_pads); - gpio_direction_input(USDHC1_CD_GPIO); - usdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC_CLK); - break; - default: - printf("Warning - USDHC%d controller not supporting\n", - i + 1); - return 0; - } - - ret = fsl_esdhc_initialize(bis, _cfg[i]); - if (ret) { - printf("Warning: failed to initialize mmc dev %d\n", i); - return ret; - } - } - - return 0; -} -#endif - #ifdef CONFIG_FEC_MXC #define ENET_PHY_RST IMX_GPIO_NR(7, 12) static int setup_fec(void) @@ -200,6 +130,78 @@ int dram_init(void) #include #include +/* MMC board initialization is needed till adding DM support in SPL */ +#if defined(CONFIG_FSL_ESDHC) && !defined(CONFIG_DM_MMC) +#include +#include + +#define USDHC_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \ + PAD_CTL_PUS_22K_UP | PAD_CTL_SPEED_LOW | \ + PAD_CTL_DSE_80ohm | PAD_CTL_SRE_FAST | PAD_CTL_HYS) + +static iomux_v3_cfg_t const usdhc1_pads[] = { + IOMUX_PADS(PAD_SD1_CLK__SD1_CLK | MUX_PAD_CTRL(USDHC_PAD_CTRL)), + IOMUX_PADS(PAD_SD1_CMD__SD1_CMD | MUX_PAD_CTRL(USDHC_PAD_CTRL)), + IOMUX_PADS(PAD_SD1_DAT0__SD1_DATA0 | MUX_PAD_CTRL(USDHC_PAD_CTRL)), + IOMUX_PADS(PAD_SD1_DAT1__SD1_DATA1 | MUX_PAD_CTRL(USDHC_PAD_CTRL)), + IOMUX_PADS(PAD_SD1_DAT2__SD1_DATA2 | MUX_PAD_CTRL(USDHC_PAD_CTRL)), + IOMUX_PADS(PAD_SD1_DAT3__SD1_DATA3 | MUX_PAD_CTRL(USDHC_PAD_CTRL)), +