
Hello Qiang Zhao,
Am 09.04.2020 um 10:00 schrieb Qiang Zhao:
On 2020/4/9 13:20, Heiko Schocher hs@denx.de wrote:
-----Original Message----- From: Heiko Schocher hs@denx.de Sent: 2020年4月9日 13:19 To: Priyanka Jain priyanka.jain@nxp.com Cc: U-Boot Mailing List u-boot@lists.denx.de; Holger Brunck holger.brunck@ch.abb.com; Joe Hershberger joe.hershberger@ni.com; Mario Six mario.six@gdsys.cc; Qiang Zhao qiang.zhao@nxp.com Subject: Re: [RFC PATCH] net, qe: add DM support for QE UEC ethernet
Hello Priyanka,
Am 18.02.2020 um 10:05 schrieb Heiko Schocher:
add DM/DTS suppor for the UEC ethernet on QUICC Engine Block.
Signed-off-by: Heiko Schocher hs@denx.de
Travis build:
https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftrav
is-ci.org%2Fhsdenx%2Fu-boot-test%2Fbuilds%2F651400509&data=02%7C 01
%7Cqiang.zhao%40nxp.com%7C51477945d03e4b72383708d7dc458e7e%7C
686ea1d3b
c2b4c6fa92cd99c5c301635%7C0%7C0%7C637220063612830833&sdata =MALxWjN
kO0lgq1b0gmk646eEI8HWZUXRqTHt6zaOQPk%3D&reserved=0
I let the old none DM based implementation in code so boards should work with old implementation. This Code should be removed if all boards are converted to DM/DTS.
add the DM based qe uec driver under drivers/net/qe
Therefore copied the files uccf.c uccf.h uec.h from drivers/qe. So there are a lot of Codingstyle problems currently. I fix them in next version if this RFC patch is OK or it needs some changes.
The dm based driver code is now under drivers/net/qe/dm_qe_uec.c Used a lot of functions from drivers/qe/uec.c
seperated the PHY specific code into seperate file drivers/net/qe/dm_qe_uec_phy.c
There are so much duplicated codes.
Yes, as I do not want to break other boards, as I said in comment.
If all boards are moved to this new driver, we can remove the old code.
And what the dts node looks like? Could you please give an example?
Uh, indeed, I did not add an entry in "doc/device-tree-bindings/"
I add this in next version.
Same as in linux:
MDIO: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch...
mdio@3320 { #address-cells = <1>; #size-cells = <0>; reg = <0x3320 0x18>; compatible = "fsl,ucc-mdio";
/* Piggy2 (UCC4, MDIO 0x00, RMII) */ phy_piggy2: ethernet-phy@0 { reg = <0x0>; }; [...]
Ethernet: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch...
/* Eth-3 (UCC7, MDIO 0x0a, RMII) */ enet_eth3: ucc@2600 { device_type = "network"; compatible = "ucc_geth"; cell-index = <7>; reg = <0x2600 0x200>; interrupts = <42>; interrupt-parent = <&qeic>; local-mac-address = [ 00 00 00 00 00 00 ]; rx-clock-name = "none"; tx-clock-name = "clk16"; phy-handle = <&phy_eth3>; phy-connection-type = "rmii"; pio-handle = <&pio_ucc7>; };
(And yes, compatible entry is ancient...)
drivers/net/Kconfig | 2 + drivers/net/Makefile | 1 + drivers/net/qe/Kconfig | 9 + drivers/net/qe/Makefile | 5 + drivers/net/qe/dm_qe_uec.c | 1161
++++++++++++++++++++++++++++++++
drivers/net/qe/dm_qe_uec.h | 22 + drivers/net/qe/dm_qe_uec_phy.c | 161 +++++ drivers/net/qe/uccf.c | 388 +++++++++++ drivers/net/qe/uccf.h | 117 ++++ drivers/net/qe/uec.h | 742 ++++++++++++++++++++ drivers/qe/uccf.c | 2 + drivers/qe/uec.c | 2 + drivers/qe/uec_phy.c | 3 + 13 files changed, 2615 insertions(+) create mode 100644 drivers/net/qe/Kconfig create mode 100644 drivers/net/qe/Makefile create mode 100644 drivers/net/qe/dm_qe_uec.c create mode 100644 drivers/net/qe/dm_qe_uec.h create mode 100644 drivers/net/qe/dm_qe_uec_phy.c create mode 100644 drivers/net/qe/uccf.c create mode 100644 drivers/net/qe/uccf.h create mode 100644 drivers/net/qe/uec.h
Any comments?
Thanks!
bye, Heiko -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-52 Fax: +49-8142-66989-80 Email: hs@denx.de
Best Regards Qiang Zhao
bye, Heiko