From patchwork Sat Jan 25 12:22:42 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Amit Tomer X-Patchwork-Id: 240084 List-Id: U-Boot discussion From: amittomer25 at gmail.com (Amit Singh Tomar) Date: Sat, 25 Jan 2020 17:52:42 +0530 Subject: [PATCH v3 00/21] Actions S700 SoC support Message-ID: <1579954983-11329-1-git-send-email-amittomer25@gmail.com> Hi, This is continuation of work[1], submitted(v2) almost a year back. It adds Cubieboard7[1] support based on Action Semi's S700 SoC[2], It's Quad-core ARMv8 SoC with Cortex-A53 cores. Peripheral like UART seems to be compatible with S900 SoC(basic support for it is alreay present in u-boot). First few patches(from 1/21 to 3/21) consolidates Actions Semiconductor SoCs support in u-boot(mostly insprired by SUXNI as suggested by Andre). Idea is to move every bit out from board/ucRobotics into arch/arm/mach-owl. It allows different SoCs to be driven by single "soc and Kconfig" file. It also includes common clock driver for S700 and S900. Patches(from 4/21 to 6/21 and 10/21 to 12/21) enables S700 SoC support alongwith Cubieboard7 board. While at it, took the opportunity to sync S900 DT sources and bindings(patches from 7/21 to 8/21) with Linux(tag v5.5-rc6) and it is compiled-tested. Patch(9/21) uses same name for ethernet clock binding and if it's ok, would like to send it to LKML as well. Patches(from 13/21 to 14/21) adds support for RTL 8201F PHY module and introduce configuration option "RTL8201F_PHY_S700_RMII_TIMINGS" to fulfill specific timing requirements for S700. Patches(from 15/21 to 17/21) adds support for generic reset controller, originally used for NEXELL[3] series but never gets merged and it can be used for S700. Patches(from 18/21 to 21/21) are there to enable Ethenet support in S700, MAC is based on Designware IP These patches re-uses the existing driver(drivers/net/designware.c) and programs SoC specific bits to enable ethernet. SoC specific glue code is kept in dwmac_s700.c file, did it this way as found it more cleaner(but having said that I am not really sure, if it's bit of a overkill to have it) or we can keep this glue code somewhere in machine file? S700 support is tested[4] on Cubieboard7 board and S900 support is just compiled tested. Also, patches are rebased upon following commit: 2c871f9e084b2c03d1961884228a6901387ab8d6 Merge branch '2020-01-22-master-imports' Thanks -Amit [1]: https://patchwork.ozlabs.org/cover/1020286/ [2]: http://www.actions-semi.com/en/productview.aspx?id=225 [3]: https://lists.denx.de/pipermail/u-boot/2017-November/313135.html [4]: https://paste.ubuntu.com/p/GkFPn2xJfn/ Amit Singh Tomar (21): arm: actions: Add common framework for Actions Semi SoCs arm: actions: rename sysmap-s900 to sysmap-owl clk: actions: Add common clock driver arm: add support Actions Semi S700 arm: actions: add S700 SoC device tree actions:s700: add u-boot specific dts file arm: dts: sync dts for Action Semi S900 actions: s900: add u-boot specific dts file arm: dts: Use consistent name "CLK_ETHERNET" for the Ethernet clock binding serial: actions: add uart support for s700 arm: add Cubieboard7 board support actions: add Cubieboard7 README net: phy: realtek: Add support for RTL8201F PHY module. net: phy: realtek: Introduce PHY_RTL8201F_S700_RMII_TIMINGS to adjust rx/tx timings reset: add driver for generic reset controllers arm: dts: s700: add node for reset controller owl: Kconfig: Enable dm reset and generic reset net: designware: s700: Add glue code for S700 mac arm: dts: s700: add node for ethernet controller owl: Kconfig: Enable dm eth for OWL platform configs: Enable mac and phy configs MAINTAINERS | 2 + arch/arm/Kconfig | 8 +- arch/arm/dts/Makefile | 6 +- arch/arm/dts/s700-cubieboard7.dts | 39 +++ arch/arm/dts/s700-u-boot.dtsi | 39 +++ arch/arm/dts/s700.dtsi | 248 +++++++++++++++++++ arch/arm/dts/s900-u-boot.dtsi | 17 ++ arch/arm/dts/s900.dtsi | 322 +++++++++++++++++++++++-- arch/arm/include/asm/arch-owl/clk_s900.h | 57 ----- arch/arm/include/asm/arch-owl/regs_s700.h | 62 +++++ arch/arm/mach-owl/Kconfig | 35 +-- arch/arm/mach-owl/Makefile | 3 +- arch/arm/mach-owl/README.cubieboard7 | 88 +++++++ arch/arm/mach-owl/soc.c | 57 +++++ arch/arm/mach-owl/sysmap-owl.c | 32 +++ arch/arm/mach-owl/sysmap-s900.c | 32 --- board/ucRobotics/bubblegum_96/Kconfig | 15 -- board/ucRobotics/bubblegum_96/MAINTAINERS | 6 - board/ucRobotics/bubblegum_96/Makefile | 3 - board/ucRobotics/bubblegum_96/bubblegum_96.c | 57 ----- configs/bubblegum_96_defconfig | 7 +- configs/cubieboard7_defconfig | 20 ++ drivers/clk/owl/Kconfig | 8 +- drivers/clk/owl/Makefile | 2 +- drivers/clk/owl/clk_owl.c | 159 ++++++++++++ drivers/clk/owl/clk_owl.h | 65 +++++ drivers/clk/owl/clk_s900.c | 137 ----------- drivers/net/Kconfig | 7 + drivers/net/Makefile | 1 + drivers/net/dwmac_s700.c | 66 +++++ drivers/net/phy/Kconfig | 9 + drivers/net/phy/realtek.c | 55 +++++ drivers/reset/Kconfig | 6 + drivers/reset/Makefile | 1 + drivers/reset/reset-generic.c | 111 +++++++++ drivers/serial/serial_owl.c | 1 + include/configs/bubblegum_96.h | 40 --- include/configs/owl-common.h | 40 +++ include/configs/s700.h | 13 + include/configs/s900.h | 16 ++ include/dt-bindings/clock/actions,s700-cmu.h | 118 +++++++++ include/dt-bindings/clock/actions,s900-cmu.h | 129 ++++++++++ include/dt-bindings/clock/s900_cmu.h | 77 ------ include/dt-bindings/reset/actions,s700-reset.h | 34 +++ include/dt-bindings/reset/actions,s900-reset.h | 65 +++++ 45 files changed, 1835 insertions(+), 480 deletions(-) create mode 100644 arch/arm/dts/s700-cubieboard7.dts create mode 100644 arch/arm/dts/s700-u-boot.dtsi create mode 100644 arch/arm/dts/s700.dtsi create mode 100644 arch/arm/dts/s900-u-boot.dtsi delete mode 100644 arch/arm/include/asm/arch-owl/clk_s900.h create mode 100644 arch/arm/include/asm/arch-owl/regs_s700.h create mode 100644 arch/arm/mach-owl/README.cubieboard7 create mode 100644 arch/arm/mach-owl/soc.c create mode 100644 arch/arm/mach-owl/sysmap-owl.c delete mode 100644 arch/arm/mach-owl/sysmap-s900.c delete mode 100644 board/ucRobotics/bubblegum_96/Kconfig delete mode 100644 board/ucRobotics/bubblegum_96/MAINTAINERS delete mode 100644 board/ucRobotics/bubblegum_96/Makefile delete mode 100644 board/ucRobotics/bubblegum_96/bubblegum_96.c create mode 100644 configs/cubieboard7_defconfig create mode 100644 drivers/clk/owl/clk_owl.c create mode 100644 drivers/clk/owl/clk_owl.h delete mode 100644 drivers/clk/owl/clk_s900.c create mode 100644 drivers/net/dwmac_s700.c create mode 100644 drivers/reset/reset-generic.c delete mode 100644 include/configs/bubblegum_96.h create mode 100644 include/configs/owl-common.h create mode 100644 include/configs/s700.h create mode 100644 include/configs/s900.h create mode 100644 include/dt-bindings/clock/actions,s700-cmu.h create mode 100644 include/dt-bindings/clock/actions,s900-cmu.h delete mode 100644 include/dt-bindings/clock/s900_cmu.h create mode 100644 include/dt-bindings/reset/actions,s700-reset.h create mode 100644 include/dt-bindings/reset/actions,s900-reset.h