[U-Boot] [PATCH v2 11/22] colibri_vf: migrate fec, esdhc, nfc and usb to driver model

Igor Opaniuk
2019-03-28T14:43:09Z

Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

On Mon, Mar 25, 2019 at 6:30 PM Marcel Ziswiler <marcel@ziswiler.com> wrote:
>
> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
>
> Migrate FEC, ESDHC, NFC and USB to driver model.
>
> While at it also do no longer enable optional I2C clock in board file as
> the generic clock code now handles this. Note for space reason and as
> it is not required just for booting we do not enable I2C in U-Boot by
> default.
>
> While at it also update copyright period.
>
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
>
> ---
>
> Changes in v2: None
>
> board/toradex/colibri_vf/colibri_vf.c | 82 +--------------------------
> configs/colibri_vf_defconfig | 5 ++
> include/configs/colibri_vf.h | 13 +----
> 3 files changed, 7 insertions(+), 93 deletions(-)
>
> diff --git a/board/toradex/colibri_vf/colibri_vf.c b/board/toradex/colibri_vf/colibri_vf.c
> index 8e0dea2dc2..c4d05532fe 100644
> --- a/board/toradex/colibri_vf/colibri_vf.c
> +++ b/board/toradex/colibri_vf/colibri_vf.c
> @@ -16,23 +16,16 @@
> #include <asm/gpio.h>
> #include <asm/io.h>
> #include <fdt_support.h>
> -#include <fsl_esdhc.h>
> #include <fsl_dcu_fb.h>
> #include <g_dnl.h>
> -#include <i2c.h>
> #include <jffs2/load_kernel.h>
> -#include <miiphy.h>
> -#include <mmc.h>
> #include <mtd_node.h>
> -#include <netdev.h>
> #include <usb.h>
>
> #include "../common/tdx-common.h"
>
> DECLARE_GLOBAL_DATA_PTR;
>
> -#define USB_PEN_GPIO 83
> -#define USB_CDET_GPIO 102
> #define PTC0_GPIO_45 45
>
> static struct ddrmc_cr_setting colibri_vf_cr_settings[] = {
> @@ -239,25 +232,6 @@ static void setup_tcon(void)
> }
> #endif
>
> -#ifdef CONFIG_FSL_ESDHC
> -struct fsl_esdhc_cfg esdhc_cfg[1] = {
> - {ESDHC1_BASE_ADDR},
> -};
> -
> -int board_mmc_getcd(struct mmc *mmc)
> -{
> - /* eSDHC1 is always present */
> - return 1;
> -}
> -
> -int board_mmc_init(bd_t *bis)
> -{
> - esdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC_CLK);
> -
> - return fsl_esdhc_initialize(bis, &esdhc_cfg[0]);
> -}
> -#endif
> -
> static inline int is_colibri_vf61(void)
> {
> struct mscm *mscm = (struct mscm *)MSCM_BASE_ADDR;
> @@ -290,7 +264,7 @@ static void clock_init(void)
> CCM_CCGR3_ANADIG_CTRL_MASK | CCM_CCGR3_SCSC_CTRL_MASK);
> clrsetbits_le32(&ccm->ccgr4, CCM_REG_CTRL_MASK,
> CCM_CCGR4_WKUP_CTRL_MASK | CCM_CCGR4_CCM_CTRL_MASK |
> - CCM_CCGR4_GPC_CTRL_MASK | CCM_CCGR4_I2C0_CTRL_MASK);
> + CCM_CCGR4_GPC_CTRL_MASK);
> clrsetbits_le32(&ccm->ccgr6, CCM_REG_CTRL_MASK,
> CCM_CCGR6_OCOTP_CTRL_MASK | CCM_CCGR6_DDRMC_CTRL_MASK);
> clrsetbits_le32(&ccm->ccgr7, CCM_REG_CTRL_MASK,
> @@ -379,14 +353,6 @@ static void mscm_init(void)
> writew(MSCM_IRSPRC_CP0_EN, &mscmir->irsprc[i]);
> }
>
> -int board_phy_config(struct phy_device *phydev)
> -{
> - if (phydev->drv->config)
> - phydev->drv->config(phydev);
> -
> - return 0;
> -}
> -
> int board_early_init_f(void)
> {
> clock_init();
> @@ -433,13 +399,8 @@ int board_init(void)
> * so we must use the external oscillator in order
> * to maintain correct time in the hwclock
> */
> -
> setbits_le32(&scsc->sosc_ctr, SCSC_SOSC_CTR_SOSC_EN);
>
> -#ifdef CONFIG_USB_EHCI_VF
> - gpio_request(USB_CDET_GPIO, "usb-cdet-gpio");
> -#endif
> -
> return 0;
> }
>
> @@ -476,47 +437,6 @@ int ft_board_setup(void *blob, bd_t *bd)
> }
> #endif
>
> -#ifdef CONFIG_USB_EHCI_VF
> -int board_ehci_hcd_init(int port)
> -{
> - switch (port) {
> - case 0:
> - /* USBC does not have PEN, also configured as USB client only */
> - break;
> - case 1:
> - gpio_request(USB_PEN_GPIO, "usb-pen-gpio");
> - gpio_direction_output(USB_PEN_GPIO, 0);
> - break;
> - }
> - return 0;
> -}
> -
> -int board_usb_phy_mode(int port)
> -{
> - switch (port) {
> - case 0:
> - /*
> - * Port 0 is used only in client mode on Colibri Vybrid modules
> - * Check for state of USB client gpio pin and accordingly return
> - * USB_INIT_DEVICE or USB_INIT_HOST.
> - */
> - if (gpio_get_value(USB_CDET_GPIO))
> - return USB_INIT_DEVICE;
> - else
> - return USB_INIT_HOST;
> - case 1:
> - /* Port 1 is used only in host mode on Colibri Vybrid modules */
> - return USB_INIT_HOST;
> - default:
> - /*
> - * There are only two USB controllers on Vybrid. Ideally we will
> - * not reach here. However return USB_INIT_HOST if we do.
> - */
> - return USB_INIT_HOST;
> - }
> -}
> -#endif
> -
> /*
> * Backlight off before OS handover
> */
> diff --git a/configs/colibri_vf_defconfig b/configs/colibri_vf_defconfig
> index 9a91cb4b82..344fe77234 100644
> --- a/configs/colibri_vf_defconfig
> +++ b/configs/colibri_vf_defconfig
> @@ -56,13 +56,18 @@ CONFIG_DM=y
> CONFIG_DFU_NAND=y
> CONFIG_DM_GPIO=y
> CONFIG_VYBRID_GPIO=y
> +CONFIG_DM_MMC=y
> # CONFIG_MMC_HW_PARTITIONING is not set
> CONFIG_FSL_ESDHC=y
> +CONFIG_MTD=y
> CONFIG_NAND_VF610_NFC=y
> +CONFIG_NAND_VF610_NFC_DT=y
> CONFIG_SYS_NAND_VF610_NFC_60_ECC_BYTES=y
> CONFIG_MTD_UBI_FASTMAP=y
> CONFIG_PHYLIB=y
> CONFIG_PHY_MICREL=y
> +CONFIG_DM_ETH=y
> +CONFIG_FEC_MXC=y
> CONFIG_MII=y
> CONFIG_PINCTRL=y
> CONFIG_PINCTRL_VYBRID=y
> diff --git a/include/configs/colibri_vf.h b/include/configs/colibri_vf.h
> index e7b786e48b..1acc6e5056 100644
> --- a/include/configs/colibri_vf.h
> +++ b/include/configs/colibri_vf.h
> @@ -1,6 +1,6 @@
> /* SPDX-License-Identifier: GPL-2.0+ */
> /*
> - * Copyright 2015-2016 Toradex, Inc.
> + * Copyright 2015-2019 Toradex, Inc.
> *
> * Configuration settings for the Toradex VF50/VF61 modules.
> *
> @@ -36,17 +36,6 @@
> /* NAND support */
> #define CONFIG_SYS_NAND_ONFI_DETECTION
> #define CONFIG_SYS_MAX_NAND_DEVICE 1
> -#define CONFIG_SYS_NAND_BASE NFC_BASE_ADDR
> -
> -/* Dynamic MTD partition support */
> -
> -#define CONFIG_SYS_FSL_ESDHC_ADDR 0
> -#define CONFIG_SYS_FSL_ESDHC_NUM 1
> -
> -#define CONFIG_FEC_MXC
> -#define IMX_FEC_BASE ENET1_BASE_ADDR
> -#define CONFIG_FEC_XCV_TYPE RMII
> -#define CONFIG_FEC_MXC_PHYADDR 0
>
> #define CONFIG_IPADDR 192.168.10.2
> #define CONFIG_NETMASK 255.255.255.0
> --
> 2.20.1
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot