diff mbox series

[2/2] mx28evk: Convert to driver model

Message ID 20210218023928.386801-2-festevam@gmail.com
State Awaiting Upstream
Delegated to: Stefano Babic
Headers show
Series [1/2] imx28-evk: Import devicetree file from Linux | expand

Commit Message

Fabio Estevam Feb. 18, 2021, 2:39 a.m. UTC
Make the conversion to driver model as it is mandatory.

Successfully tested booting Linux from the SD card.

Dropped support for networking and splash screen as these need
to be properly converted to DM and tested.

Signed-off-by: Fabio Estevam <festevam@gmail.com>
---
I haven't had a chance to add DM_ETH and DM_VIDEO yet, but
these can be added later.

 arch/arm/dts/Makefile               |  1 +
 arch/arm/dts/imx28-evk-u-boot.dtsi  | 10 ++++
 board/freescale/mx28evk/MAINTAINERS |  1 +
 board/freescale/mx28evk/mx28evk.c   | 77 -----------------------------
 configs/mx28evk_defconfig           | 28 +++++------
 include/configs/mx28evk.h           |  7 ---
 6 files changed, 26 insertions(+), 98 deletions(-)
 create mode 100644 arch/arm/dts/imx28-evk-u-boot.dtsi

Comments

Tom Rini Feb. 20, 2021, 8:45 p.m. UTC | #1
On Wed, Feb 17, 2021 at 11:39:28PM -0300, Fabio Estevam wrote:

> Make the conversion to driver model as it is mandatory.
> 
> Successfully tested booting Linux from the SD card.
> 
> Dropped support for networking and splash screen as these need
> to be properly converted to DM and tested.
> 
> Signed-off-by: Fabio Estevam <festevam@gmail.com>
> ---
> I haven't had a chance to add DM_ETH and DM_VIDEO yet, but
> these can be added later.
> 
>  arch/arm/dts/Makefile               |  1 +
>  arch/arm/dts/imx28-evk-u-boot.dtsi  | 10 ++++
>  board/freescale/mx28evk/MAINTAINERS |  1 +
>  board/freescale/mx28evk/mx28evk.c   | 77 -----------------------------
>  configs/mx28evk_defconfig           | 28 +++++------

You're missing:
configs/mx28evk_auart_console_defconfig
configs/mx28evk_nand_defconfig
configs/mx28evk_spi_defconfig
in conversion here.
Fabio Estevam Feb. 20, 2021, 9:08 p.m. UTC | #2
On Sat, Feb 20, 2021 at 5:45 PM Tom Rini <trini@konsulko.com> wrote:

> You're missing:
> configs/mx28evk_auart_console_defconfig
> configs/mx28evk_nand_defconfig
> configs/mx28evk_spi_defconfig
> in conversion here.

I am OK to drop the support for these 3 targets.
Tom Rini Feb. 20, 2021, 10:09 p.m. UTC | #3
On Sat, Feb 20, 2021 at 06:08:19PM -0300, Fabio Estevam wrote:
> On Sat, Feb 20, 2021 at 5:45 PM Tom Rini <trini@konsulko.com> wrote:
> 
> > You're missing:
> > configs/mx28evk_auart_console_defconfig
> > configs/mx28evk_nand_defconfig
> > configs/mx28evk_spi_defconfig
> > in conversion here.
> 
> I am OK to drop the support for these 3 targets.

Can you please do that in a follow-up to your series, as you're taking
over the overall platform?  Thanks!
Fabio Estevam Feb. 21, 2021, 12:29 p.m. UTC | #4
Hi Tom,

On Sat, Feb 20, 2021 at 7:09 PM Tom Rini <trini@konsulko.com> wrote:

> Can you please do that in a follow-up to your series, as you're taking
> over the overall platform?  Thanks!

Sure, I will send a follow-up patch removing the 3 other targets after
this series gets applied.

Thanks
diff mbox series

Patch

diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
index 88f23e4ef41e..fefac899fb90 100644
--- a/arch/arm/dts/Makefile
+++ b/arch/arm/dts/Makefile
@@ -651,6 +651,7 @@  dtb-$(CONFIG_VF610) += vf500-colibri.dtb \
 	vf610-bk4r1.dtb
 
 dtb-$(CONFIG_MX28) += \
+	imx28-evk.dtb \
 	imx28-xea.dtb
 
 dtb-$(CONFIG_MX51) += \
diff --git a/arch/arm/dts/imx28-evk-u-boot.dtsi b/arch/arm/dts/imx28-evk-u-boot.dtsi
new file mode 100644
index 000000000000..6adbae68d2f8
--- /dev/null
+++ b/arch/arm/dts/imx28-evk-u-boot.dtsi
@@ -0,0 +1,10 @@ 
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2019
+ * Lukasz Majewski, DENX Software Engineering, lukma@denx.de
+ *
+ * SPDX-License-Identifier:     GPL-2.0+ or X11
+ */
+
+#include "imx28-u-boot.dtsi"
+
diff --git a/board/freescale/mx28evk/MAINTAINERS b/board/freescale/mx28evk/MAINTAINERS
index a98a70558a72..b6974c954046 100644
--- a/board/freescale/mx28evk/MAINTAINERS
+++ b/board/freescale/mx28evk/MAINTAINERS
@@ -2,6 +2,7 @@  MX28EVK BOARD
 M:	Fabio Estevam <fabio.estevam@nxp.com>
 S:	Maintained
 F:	board/freescale/mx28evk/
+F:	arch/arm/dts/imx28-evk.dts
 F:	include/configs/mx28evk.h
 F:	configs/mx28evk_defconfig
 F:	configs/mx28evk_auart_console_defconfig
diff --git a/board/freescale/mx28evk/mx28evk.c b/board/freescale/mx28evk/mx28evk.c
index a6b66d99ccb1..4fdd171a8a2f 100644
--- a/board/freescale/mx28evk/mx28evk.c
+++ b/board/freescale/mx28evk/mx28evk.c
@@ -71,80 +71,3 @@  int board_init(void)
 
 	return 0;
 }
-
-#ifdef	CONFIG_CMD_MMC
-static int mx28evk_mmc_wp(int id)
-{
-	if (id != 0) {
-		printf("MXS MMC: Invalid card selected (card id = %d)\n", id);
-		return 1;
-	}
-
-	return gpio_get_value(MX28_PAD_SSP1_SCK__GPIO_2_12);
-}
-
-int board_mmc_init(struct bd_info *bis)
-{
-	/* Configure WP as input */
-	gpio_direction_input(MX28_PAD_SSP1_SCK__GPIO_2_12);
-
-	/* Configure MMC0 Power Enable */
-	gpio_direction_output(MX28_PAD_PWM3__GPIO_3_28, 0);
-
-	return mxsmmc_initialize(bis, 0, mx28evk_mmc_wp, NULL);
-}
-#endif
-
-#ifdef	CONFIG_CMD_NET
-
-int board_eth_init(struct bd_info *bis)
-{
-	struct mxs_clkctrl_regs *clkctrl_regs =
-		(struct mxs_clkctrl_regs *)MXS_CLKCTRL_BASE;
-	struct eth_device *dev;
-	int ret;
-
-	ret = cpu_eth_init(bis);
-	if (ret)
-		return ret;
-
-	/* MX28EVK uses ENET_CLK PAD to drive FEC clock */
-	writel(CLKCTRL_ENET_TIME_SEL_RMII_CLK | CLKCTRL_ENET_CLK_OUT_EN,
-	       &clkctrl_regs->hw_clkctrl_enet);
-
-	/* Power-on FECs */
-	gpio_direction_output(MX28_PAD_SSP1_DATA3__GPIO_2_15, 0);
-
-	/* Reset FEC PHYs */
-	gpio_direction_output(MX28_PAD_ENET0_RX_CLK__GPIO_4_13, 0);
-	udelay(200);
-	gpio_set_value(MX28_PAD_ENET0_RX_CLK__GPIO_4_13, 1);
-
-	ret = fecmxc_initialize_multi(bis, 0, 0, MXS_ENET0_BASE);
-	if (ret) {
-		puts("FEC MXS: Unable to init FEC0\n");
-		return ret;
-	}
-
-	ret = fecmxc_initialize_multi(bis, 1, 3, MXS_ENET1_BASE);
-	if (ret) {
-		puts("FEC MXS: Unable to init FEC1\n");
-		return ret;
-	}
-
-	dev = eth_get_dev_by_name("FEC0");
-	if (!dev) {
-		puts("FEC MXS: Unable to get FEC0 device entry\n");
-		return -EINVAL;
-	}
-
-	dev = eth_get_dev_by_name("FEC1");
-	if (!dev) {
-		puts("FEC MXS: Unable to get FEC1 device entry\n");
-		return -EINVAL;
-	}
-
-	return ret;
-}
-
-#endif
diff --git a/configs/mx28evk_defconfig b/configs/mx28evk_defconfig
index 4f0ed83bc1f0..bae603309dbe 100644
--- a/configs/mx28evk_defconfig
+++ b/configs/mx28evk_defconfig
@@ -7,27 +7,25 @@  CONFIG_SPL_LIBGENERIC_SUPPORT=y
 CONFIG_NR_DRAM_BANKS=1
 CONFIG_ENV_SIZE=0x4000
 CONFIG_ENV_OFFSET=0x40000
+CONFIG_DM_GPIO=y
 CONFIG_SPL_TEXT_BASE=0x00001000
 CONFIG_TARGET_MX28EVK=y
 CONFIG_SPL_SERIAL_SUPPORT=y
 CONFIG_SPL=y
+CONFIG_DEFAULT_DEVICE_TREE="imx28-evk"
 CONFIG_FIT=y
-# CONFIG_CONSOLE_MUX is not set
 CONFIG_SYS_CONSOLE_IS_IN_ENV=y
 # CONFIG_DISPLAY_BOARDINFO is not set
 CONFIG_ARCH_MISC_INIT=y
 # CONFIG_SPL_FRAMEWORK is not set
 CONFIG_HUSH_PARSER=y
 CONFIG_CMD_BOOTZ=y
+CONFIG_CMD_DM=y
 # CONFIG_CMD_FLASH is not set
 CONFIG_CMD_GPIO=y
 CONFIG_CMD_MMC=y
 CONFIG_CMD_NAND_TRIMFFS=y
 CONFIG_CMD_USB=y
-CONFIG_CMD_DHCP=y
-CONFIG_CMD_MII=y
-CONFIG_CMD_PING=y
-CONFIG_CMD_BMP=y
 CONFIG_CMD_CACHE=y
 CONFIG_CMD_DATE=y
 CONFIG_CMD_EXT4=y
@@ -38,26 +36,28 @@  CONFIG_CMD_MTDPARTS=y
 CONFIG_MTDIDS_DEFAULT="nand0=gpmi-nand"
 CONFIG_MTDPARTS_DEFAULT="mtdparts=gpmi-nand:3m(bootloader)ro,512k(environment),512k(redundant-environment),4m(kernel),512k(fdt),8m(ramdisk),-(filesystem)"
 CONFIG_CMD_UBI=y
+CONFIG_OF_CONTROL=y
 CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_MMC=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_VERSION_VARIABLE=y
+# CONFIG_NET is not set
+CONFIG_DM=y
+CONFIG_SPL_DM=y
 CONFIG_MXS_GPIO=y
+CONFIG_DM_MMC=y
 CONFIG_MMC_MXS=y
 CONFIG_MTD=y
 CONFIG_MTD_RAW_NAND=y
 CONFIG_NAND_MXS=y
-CONFIG_MII=y
+CONFIG_PINCTRL=y
+CONFIG_PINCTRL_MXS=y
+CONFIG_DM_REGULATOR=y
+CONFIG_DM_REGULATOR_FIXED=y
+CONFIG_DM_REGULATOR_GPIO=y
 CONFIG_CONS_INDEX=0
 CONFIG_SPI=y
 CONFIG_USB=y
+CONFIG_DM_USB=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_STORAGE=y
-CONFIG_USB_HOST_ETHER=y
-CONFIG_USB_ETHER_ASIX=y
-CONFIG_USB_ETHER_SMSC95XX=y
-CONFIG_VIDEO=y
-CONFIG_SPLASH_SCREEN=y
-CONFIG_VIDEO_BMP_GZIP=y
-CONFIG_VIDEO_BMP_RLE8=y
-CONFIG_OF_LIBFDT=y
diff --git a/include/configs/mx28evk.h b/include/configs/mx28evk.h
index a65df4860810..21f3277d5c43 100644
--- a/include/configs/mx28evk.h
+++ b/include/configs/mx28evk.h
@@ -31,13 +31,6 @@ 
 
 /* UBI and NAND partitioning */
 
-/* FEC Ethernet on SoC */
-#ifdef	CONFIG_CMD_NET
-#define CONFIG_FEC_MXC
-#define CONFIG_FEC_MXC_MDIO_BASE MXS_ENET0_BASE
-#define CONFIG_MX28_FEC_MAC_IN_OCOTP
-#endif
-
 /* RTC */
 #ifdef	CONFIG_CMD_DATE
 #define	CONFIG_RTC_MXS