mbox series

[v3,00/21] Actions S700 SoC support

Message ID 1579954983-11329-1-git-send-email-amittomer25@gmail.com
Headers show
Series Actions S700 SoC support | expand

Message

Amit Tomer Jan. 25, 2020, 12:22 p.m. UTC
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