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