[PATCH v2 00/10] Ambarella CV75 SoC minimal bring-up

Long Zhao via B4 Relay <[email protected]> Thu, 06 Aug 2026 17:34:08 +0800
Newsgroups org.kernel.vger.linux-serial,dev.linux.lists.soc,org.infradead.lists.linux-arm-kernel,org.kernel.feeds.b4-sent,org.kernel.vger.linux-clk,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-gpio,org.kernel.vger.linux-kernel
Message-ID <20260806-longzhao-upstream-cv75-v2-v2-0-6b09707c5fe9@ambarella.com>
This series adds minimal Ambarella CV75 support sufficient for early
bring-up with a serial console.

It introduces DT bindings and drivers for the RCT clock controller,
pinctrl, and UART, plus ARCH_AMBARELLA, a minimal CV75 EVK device tree,
arm64 defconfig entries, and a MAINTAINERS entry.

The goal remains a small, reviewable console-capable baseline. Further
SoC peripherals can follow in later series.

This is v2. Link to v1:
https://lore.kernel.org/r/[email protected]

Changes since v1:
- pinctrl: parent node only describes IOMUX; GPIO bank MMIO and IRQs
  live in gpio child nodes (Rob)
- pinctrl: switch DT/bindings to function + groups; keep pinmux data in
  the driver; drop include/dt-bindings/pinctrl/ambarella,pinctrl.h
  (Linus)
- pinctrl: split CV75 static data into pinctrl-ambarella-cv75.c
- clock binding: drop syscon-common and redundant assigned-clock*
  properties from the schema (Rob)
- serial: keep only SoC-specific compatible ambarella,cv75-uart
  (Krzysztof)
- scratchpad: drop generic ambarella,sec-scratchpad compatible
  (Krzysztof)
- bindings: rename ambarella,uart.yaml and ambarella,sec-scratchpad.yaml
  to SoC-specific ambarella,cv75-*.yaml names
- dts: fix GIC unit-address; add EL2 virtual timer PPI (Marc)
- uart: use container_of and guarded locks; keep break_ctl under the
  port lock; split earlycon putchar from the console path (Jiri)
- uart: convert console to nbcon; stop toggling IER around console
  writes; drain RBR before uart_handle_break()
- misc binding/DTS cleanups from review

Testing:
- Booted to console on CV75 EVK with initramfs
- scripts/checkpatch.pl --strict
- make dt_binding_check DT_SCHEMA_FILES=ambarella
- W=1 arm64 Image build for the new drivers/DTS

Signed-off-by: Long Zhao <[email protected]>
---
Long Zhao (10):
      dt-bindings: arm: add Ambarella CV75 platforms
      dt-bindings: soc: add Ambarella secure scratchpad
      dt-bindings: clock: add Ambarella CV75 RCT clock controller
      dt-bindings: pinctrl: add Ambarella CV75 pinctrl
      dt-bindings: serial: add Ambarella UART
      clk: ambarella: add CV75 CCU driver
      pinctrl: ambarella: add Ambarella pin controller
      serial: ambarella: add Ambarella UART driver
      arm64: ambarella: add ARCH_AMBARELLA and CV75 EVK DT
      MAINTAINERS: add ARM/AMBARELLA SoC support

 .../devicetree/bindings/arm/ambarella.yaml         |   23 +
 .../bindings/clock/ambarella,cv75-rct.yaml         |   66 +
 .../bindings/pinctrl/ambarella,cv75-pinctrl.yaml   |  175 +++
 .../bindings/serial/ambarella,cv75-uart.yaml       |   45 +
 .../ambarella/ambarella,cv75-sec-scratchpad.yaml   |   39 +
 .../devicetree/bindings/vendor-prefixes.yaml       |    2 +
 MAINTAINERS                                        |   17 +
 arch/arm64/Kconfig.platforms                       |    9 +
 arch/arm64/boot/dts/Makefile                       |    1 +
 arch/arm64/boot/dts/ambarella/Makefile             |    3 +
 arch/arm64/boot/dts/ambarella/cv75-evk.dts         |   30 +
 arch/arm64/boot/dts/ambarella/cv75.dtsi            |  166 +++
 arch/arm64/configs/defconfig                       |    3 +
 drivers/clk/Kconfig                                |    1 +
 drivers/clk/Makefile                               |    1 +
 drivers/clk/ambarella/Kconfig                      |   16 +
 drivers/clk/ambarella/Makefile                     |    6 +
 drivers/clk/ambarella/ccu-cv75.c                   |  296 ++++
 drivers/clk/ambarella/ccu_common.c                 |   60 +
 drivers/clk/ambarella/ccu_common.h                 |   25 +
 drivers/clk/ambarella/ccu_mux_div.c                |  223 +++
 drivers/clk/ambarella/ccu_mux_div.h                |   35 +
 drivers/clk/ambarella/ccu_pll.c                    |  374 +++++
 drivers/clk/ambarella/ccu_pll.h                    |   70 +
 drivers/pinctrl/Kconfig                            |   15 +
 drivers/pinctrl/Makefile                           |    2 +
 drivers/pinctrl/pinctrl-ambarella-cv75.c           |   68 +
 drivers/pinctrl/pinctrl-ambarella.c                | 1510 ++++++++++++++++++++
 drivers/pinctrl/pinctrl-ambarella.h                |   48 +
 drivers/tty/serial/Kconfig                         |   21 +
 drivers/tty/serial/Makefile                        |    1 +
 drivers/tty/serial/ambarella_uart.c                | 1001 +++++++++++++
 include/dt-bindings/clock/ambarella,cv75-clock.h   |   17 +
 33 files changed, 4369 insertions(+)
---
base-commit: 34cf6dafc47441dfb6b356a095b89c3585a93714
change-id: 20260804-longzhao-upstream-cv75-v2-c2597cb996ce

Best regards,
--  
Long Zhao <[email protected]>