[PATCH v3 00/25] ARM: Initial Actions Semi S500 and S900 enablement

From: Andreas FÃrber
Date: Tue Feb 28 2017 - 01:56:53 EST


Hello,

This series adds initial support for Actions Semiconductor S500 (ARMv7) and
S900 (ARMv8) SoCs.

v3 has the serial driver working almost equally for both, still glitch on S900.
SMP support and power-gating for S500 are implemented, so both get 4 CPUs up.

https://github.com/afaerber/linux/commits/bg96-next

Booting from U-Boot is straightforward on both boards:

https://en.opensuse.org/HCL:Guitar
https://en.opensuse.org/HCL:Bubblegum-96

Have a lot of fun!

Cheers,
Andreas

v2 -> v3:
* Clocksource fix
* Clocksource cleanups (Daniel)
* Serial cleanups
* Add S500 CPU enable-method
* Add power domain driver
* Rework clocksource for S900 compatibility

v1 -> v2:
* S900 DT fixes (Mark)
* Kconfig name changes (Arnd)
* Bubblegum-96 .dts rename
* Vendor prefix rename
* Minor cleanups
* Add serial driver
* Add MAINTAINERS section
* Use SPDX-License-Identifier in DT (Rob)
* Add clocksource driver

Cc: Mark Rutland <mark.rutland@xxxxxxx>
Cc: Arnd Bergmann <arnd@xxxxxxxx>
Cc: Rob Herring <robh@xxxxxxxxxx>
Cc: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx>
Cc: mp-cs@xxxxxxxxxxxxxxxx
Cc: 96boards@xxxxxxxxxxxxxx
Cc: support@xxxxxxxxxxx
Cc: linux-serial@xxxxxxxxxxxxxxx
Cc: linux-doc@xxxxxxxxxxxxxxx
Cc: devicetree@xxxxxxxxxxxxxxx

Andreas FÃrber (25):
dt-bindings: Add vendor prefix for Actions Semi
dt-bindings: arm: Document Actions Semi S500
dt-bindings: timer: Document Owl timer
clocksource: Add Owl timer
clocksource: owl: Add S900 support
ARM: Prepare Actions Semi S500
ARM64: Prepare Actions Semi S900
dt-bindings: serial: Document Actions Semi Owl UARTs
tty: serial: Add Actions Semi Owl UART earlycon
Documentation: kernel-parameters: Document owl earlycon
ARM: dts: Add Actions Semi S500 and LeMaker Guitar
dt-bindings: Add vendor prefix for uCRobotics
dt-bindings: arm: Document Actions Semi S900
ARM64: dts: Add Actions Semi S900 and Bubblegum-96
MAINTAINERS: Add Actions Semi Owl section
tty: serial: owl: Implement console driver
ARM64: dts: actions: s900-bubblegum-96: Add fake uart5 clock
ARM: dts: s500-guitar-bb-rev-b: Add fake uart3 clock
dt-bindings: arm: cpus: Add S500 enable-method
ARM: owl: Implement CPU enable-method for S500
ARM: dts: s500: Set CPU enable-method
dt-bindings: power: Add Owl SPS power domains
soc: actions: Add Owl SPS
ARM: dts: s500: Add SPS node
ARM: owl: smp: Reimplement SPS power-gating for CPU2 and CPU3

Documentation/admin-guide/kernel-parameters.txt | 6 +
Documentation/devicetree/bindings/arm/actions.txt | 39 ++
Documentation/devicetree/bindings/arm/cpus.txt | 1 +
.../devicetree/bindings/power/actions,owl-sps.txt | 17 +
.../bindings/serial/actions,owl-uart.txt | 16 +
.../bindings/timer/actions,owl-timer.txt | 20 +
.../devicetree/bindings/vendor-prefixes.txt | 2 +
MAINTAINERS | 10 +
arch/arm/Kconfig | 2 +
arch/arm/Makefile | 1 +
arch/arm/boot/dts/Makefile | 2 +
arch/arm/boot/dts/s500-guitar-bb-rev-b.dts | 33 +
arch/arm/boot/dts/s500-guitar.dtsi | 24 +
arch/arm/boot/dts/s500.dtsi | 183 ++++++
arch/arm/mach-actions/Kconfig | 15 +
arch/arm/mach-actions/Makefile | 2 +
arch/arm/mach-actions/headsmp.S | 68 ++
arch/arm/mach-actions/owl.c | 28 +
arch/arm/mach-actions/platsmp.c | 229 +++++++
arch/arm64/Kconfig.platforms | 6 +
arch/arm64/boot/dts/Makefile | 1 +
arch/arm64/boot/dts/actions/Makefile | 5 +
arch/arm64/boot/dts/actions/s900-bubblegum-96.dts | 42 ++
arch/arm64/boot/dts/actions/s900.dtsi | 164 +++++
drivers/clocksource/Kconfig | 7 +
drivers/clocksource/Makefile | 1 +
drivers/clocksource/owl-timer.c | 205 ++++++
drivers/soc/Kconfig | 1 +
drivers/soc/Makefile | 1 +
drivers/soc/actions/Kconfig | 12 +
drivers/soc/actions/Makefile | 1 +
drivers/soc/actions/owl-sps.c | 245 +++++++
drivers/tty/serial/Kconfig | 19 +
drivers/tty/serial/Makefile | 1 +
drivers/tty/serial/owl-uart.c | 724 +++++++++++++++++++++
include/dt-bindings/power/s500-powergate.h | 19 +
include/uapi/linux/serial_core.h | 3 +
37 files changed, 2155 insertions(+)
create mode 100644 Documentation/devicetree/bindings/arm/actions.txt
create mode 100644 Documentation/devicetree/bindings/power/actions,owl-sps.txt
create mode 100644 Documentation/devicetree/bindings/serial/actions,owl-uart.txt
create mode 100644 Documentation/devicetree/bindings/timer/actions,owl-timer.txt
create mode 100644 arch/arm/boot/dts/s500-guitar-bb-rev-b.dts
create mode 100644 arch/arm/boot/dts/s500-guitar.dtsi
create mode 100644 arch/arm/boot/dts/s500.dtsi
create mode 100644 arch/arm/mach-actions/Kconfig
create mode 100644 arch/arm/mach-actions/Makefile
create mode 100644 arch/arm/mach-actions/headsmp.S
create mode 100644 arch/arm/mach-actions/owl.c
create mode 100644 arch/arm/mach-actions/platsmp.c
create mode 100644 arch/arm64/boot/dts/actions/Makefile
create mode 100644 arch/arm64/boot/dts/actions/s900-bubblegum-96.dts
create mode 100644 arch/arm64/boot/dts/actions/s900.dtsi
create mode 100644 drivers/clocksource/owl-timer.c
create mode 100644 drivers/soc/actions/Kconfig
create mode 100644 drivers/soc/actions/Makefile
create mode 100644 drivers/soc/actions/owl-sps.c
create mode 100644 drivers/tty/serial/owl-uart.c
create mode 100644 include/dt-bindings/power/s500-powergate.h

--
2.10.2