[U-Boot] [PATCH 6/8] arm: ls1021atwr: Convert to use driver model TSEC driver
Joe Hershberger
joe.hershberger at ni.com
Fri Jul 12 20:46:05 UTC 2019
On Sun, Jun 23, 2019 at 12:53 PM Vladimir Oltean <olteanv at gmail.com> wrote:
>
> From: Bin Meng <bmeng.cn at gmail.com>
>
> Now that we have added driver model support to the TSEC driver,
> convert ls1021atwr board to use it.
>
> This depends on previous DM series for ls1021atwr:
> http://patchwork.ozlabs.org/patch/561855/
>
> Signed-off-by: Bin Meng <bmeng.cn at gmail.com>
Generally looks good, but a few nits below...
Acked-by: Joe Hershberger <joe.hershberger at ni.com>
> [Vladimir] Made the following changes:
> - Added 'status = "disabled";' for all Ethernet ports in ls1021a.dtsi
> - Fixed the confusion between the SGMII/TBI PCS for enet0 and enet1 -
> a mistake ported over from Linux. Each SGMII PCS lies on the private
> MDIO bus of the interface (and the RGMII enet2 has no SGMII PCS).
>
> Signed-off-by: Vladimir Oltean <olteanv at gmail.com>
> ---
> arch/arm/cpu/armv7/ls102xa/cpu.c | 2 +-
> arch/arm/cpu/armv7/ls102xa/fdt.c | 10 ++++++++
> arch/arm/dts/ls1021a-twr.dtsi | 32 +++++++++++++++++++++++++
> arch/arm/dts/ls1021a.dtsi | 28 ++++++++++++++++++++--
> board/freescale/ls1021atwr/ls1021atwr.c | 2 +-
> configs/ls1021atwr_nor_defconfig | 1 +
> configs/ls1021atwr_nor_lpuart_defconfig | 1 +
> include/configs/ls1021atwr.h | 4 ++++
> 8 files changed, 76 insertions(+), 4 deletions(-)
>
> diff --git a/arch/arm/cpu/armv7/ls102xa/cpu.c b/arch/arm/cpu/armv7/ls102xa/cpu.c
> index ecf9e869855e..9ccfe1042ce5 100644
> --- a/arch/arm/cpu/armv7/ls102xa/cpu.c
> +++ b/arch/arm/cpu/armv7/ls102xa/cpu.c
> @@ -296,7 +296,7 @@ int cpu_mmc_init(bd_t *bis)
>
> int cpu_eth_init(bd_t *bis)
> {
> -#ifdef CONFIG_TSEC_ENET
> +#if defined(CONFIG_TSEC_ENET) && !defined(CONFIG_DM_ETH)
> tsec_standard_init(bis);
> #endif
>
> diff --git a/arch/arm/cpu/armv7/ls102xa/fdt.c b/arch/arm/cpu/armv7/ls102xa/fdt.c
> index 8bf9c42b2260..90cf7958f257 100644
> --- a/arch/arm/cpu/armv7/ls102xa/fdt.c
> +++ b/arch/arm/cpu/armv7/ls102xa/fdt.c
> @@ -16,12 +16,17 @@
> #include <tsec.h>
> #include <asm/arch/immap_ls102xa.h>
> #include <fsl_sec.h>
> +#include <dm.h>
>
> DECLARE_GLOBAL_DATA_PTR;
>
> void ft_fixup_enet_phy_connect_type(void *fdt)
> {
> +#ifndef CONFIG_DM_ETH
Please use positive logic where convenient. I.e. #ifdef CONFIG_DM_ETH
and swap cases.
> struct eth_device *dev;
> +#else
> + struct udevice *dev;
> +#endif
> struct tsec_private *priv;
> const char *enet_path, *phy_path;
> char enet[16];
> @@ -29,7 +34,12 @@ void ft_fixup_enet_phy_connect_type(void *fdt)
> int phy_node;
> int i = 0;
> uint32_t ph;
> +#ifndef CONFIG_DM_ETH
Use positive logic.
> char *name[3] = { "eTSEC1", "eTSEC2", "eTSEC3" };
> +#else
> + char *name[3] = { "ethernet at 2d10000", "ethernet at 2d50000",
> + "ethernet at 2d90000" };
> +#endif
>
> for (; i < ARRAY_SIZE(name); i++) {
> dev = eth_get_dev_by_name(name[i]);
> diff --git a/arch/arm/dts/ls1021a-twr.dtsi b/arch/arm/dts/ls1021a-twr.dtsi
> index 5d3275ced913..27c96f95400a 100644
> --- a/arch/arm/dts/ls1021a-twr.dtsi
> +++ b/arch/arm/dts/ls1021a-twr.dtsi
> @@ -51,6 +51,26 @@
> };
> };
>
> +&enet0 {
> + tbi-handle = <&tbi0>;
> + phy-handle = <&sgmii_phy2>;
> + phy-connection-type = "sgmii";
> + status = "okay";
> +};
> +
> +&enet1 {
> + tbi-handle = <&tbi1>;
> + phy-handle = <&sgmii_phy0>;
> + phy-connection-type = "sgmii";
> + status = "okay";
> +};
> +
> +&enet2 {
> + phy-handle = <&rgmii_phy1>;
> + phy-connection-type = "rgmii-id";
> + status = "okay";
> +};
> +
> &i2c0 {
> status = "okay";
> };
> @@ -84,12 +104,24 @@
> sgmii_phy0: ethernet-phy at 0 {
> reg = <0x0>;
> };
> +
> rgmii_phy1: ethernet-phy at 1 {
> reg = <0x1>;
> };
> +
> sgmii_phy2: ethernet-phy at 2 {
> reg = <0x2>;
> };
> +
> + /* SGMII PCS for enet0 */
> + tbi0: tbi-phy at 1f {
> + reg = <0x1f>;
> + device_type = "tbi-phy";
> + };
> +};
> +
> +&mdio1 {
> + /* SGMII PCS for enet1 */
> tbi1: tbi-phy at 1f {
> reg = <0x1f>;
> device_type = "tbi-phy";
> diff --git a/arch/arm/dts/ls1021a.dtsi b/arch/arm/dts/ls1021a.dtsi
> index 8a0f473e25ca..c274a302d358 100644
> --- a/arch/arm/dts/ls1021a.dtsi
> +++ b/arch/arm/dts/ls1021a.dtsi
> @@ -350,14 +350,38 @@
> <&platform_clk 1>;
> };
>
> + enet0: ethernet at 2d10000 {
> + compatible = "fsl,tsec";
> + reg = <0x2d10000 0x1000>;
> + status = "disabled";
> + };
> +
> + enet1: ethernet at 2d50000 {
> + compatible = "fsl,tsec";
> + reg = <0x2d50000 0x1000>;
> + status = "disabled";
> + };
> +
> + enet2: ethernet at 2d90000 {
> + compatible = "fsl,tsec";
> + reg = <0x2d90000 0x1000>;
> + status = "disabled";
> + };
> +
> mdio0: mdio at 2d24000 {
> - compatible = "gianfar";
> - device_type = "mdio";
> + compatible = "fsl,tsec-mdio";
> #address-cells = <1>;
> #size-cells = <0>;
> reg = <0x2d24000 0x4000>;
> };
>
> + mdio1: mdio at 2d64000 {
> + compatible = "fsl,tsec-mdio";
> + #address-cells = <1>;
> + #size-cells = <0>;
> + reg = <0x2d64000 0x4000>;
> + };
> +
> usb at 8600000 {
> compatible = "fsl-usb2-dr-v2.5", "fsl-usb2-dr";
> reg = <0x8600000 0x1000>;
> diff --git a/board/freescale/ls1021atwr/ls1021atwr.c b/board/freescale/ls1021atwr/ls1021atwr.c
> index 01ba1bc96213..a4ff0b7bc7eb 100644
> --- a/board/freescale/ls1021atwr/ls1021atwr.c
> +++ b/board/freescale/ls1021atwr/ls1021atwr.c
> @@ -248,7 +248,7 @@ int board_mmc_init(bd_t *bis)
>
> int board_eth_init(bd_t *bis)
> {
> -#ifdef CONFIG_TSEC_ENET
> +#if defined(CONFIG_TSEC_ENET) && !defined(CONFIG_DM_ETH)
> struct fsl_pq_mdio_info mdio_info;
> struct tsec_info_struct tsec_info[4];
> int num = 0;
> diff --git a/configs/ls1021atwr_nor_defconfig b/configs/ls1021atwr_nor_defconfig
> index 9d8c2024c04e..3c9cf9a8c909 100644
> --- a/configs/ls1021atwr_nor_defconfig
> +++ b/configs/ls1021atwr_nor_defconfig
> @@ -40,6 +40,7 @@ CONFIG_SYS_FLASH_CFI=y
> CONFIG_PHY_GIGE=y
> CONFIG_E1000=y
> CONFIG_MII=y
> +CONFIG_DM_ETH=y
> CONFIG_TSEC_ENET=y
> CONFIG_PCI=y
> CONFIG_DM_PCI=y
> diff --git a/configs/ls1021atwr_nor_lpuart_defconfig b/configs/ls1021atwr_nor_lpuart_defconfig
> index b9cfdb6fd69e..762af87b0dd3 100644
> --- a/configs/ls1021atwr_nor_lpuart_defconfig
> +++ b/configs/ls1021atwr_nor_lpuart_defconfig
> @@ -42,6 +42,7 @@ CONFIG_SYS_FLASH_CFI=y
> CONFIG_PHY_GIGE=y
> CONFIG_E1000=y
> CONFIG_MII=y
> +CONFIG_DM_ETH=y
> CONFIG_TSEC_ENET=y
> CONFIG_PCI=y
> CONFIG_DM_PCI=y
> diff --git a/include/configs/ls1021atwr.h b/include/configs/ls1021atwr.h
> index de0c9c7f26af..c967be3a6fce 100644
> --- a/include/configs/ls1021atwr.h
> +++ b/include/configs/ls1021atwr.h
> @@ -260,6 +260,7 @@
> */
>
> #ifdef CONFIG_TSEC_ENET
> +#ifndef CONFIG_DM_ETH
Use positive logic
> #define CONFIG_MII_DEFAULT_TSEC 1
> #define CONFIG_TSEC1 1
> #define CONFIG_TSEC1_NAME "eTSEC1"
> @@ -287,6 +288,9 @@
> #define CONFIG_HAS_ETH0
> #define CONFIG_HAS_ETH1
> #define CONFIG_HAS_ETH2
> +#else
> +#define CONFIG_ETHPRIME "ethernet at 2d10000"
> +#endif
> #endif
>
> /* PCIe */
> --
> 2.17.1
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot
More information about the U-Boot
mailing list