mbox series

[6.1.y-cip,00/85] soc: renesas: Add RZ/G3E support

Message ID 20250312112302.1605750-1-tommaso.merciai.xr@bp.renesas.com (mailing list archive)
Headers show
Series soc: renesas: Add RZ/G3E support | expand

Message

Tommaso Merciai March 12, 2025, 11:21 a.m. UTC
Dear All,

This series add support for RZ/G3E SoC to linux-6.1.y-cip kernel.
All patches are cherry-picked from mainline kernel.

base commit: 8da62141b20b (tag: v6.1.129-cip38, linux-cip/linux-6.1.y-cip)

Thanks & Regards,
Tommaso


Andy Shevchenko (1):
  pinctrl: renesas: rzg2l: Replace of_node_to_fwnode() with more
    suitable API

Biju Das (24):
  dt-bindings: soc: renesas: Document Renesas RZ/G3E SoC variants
  dt-bindings: soc: renesas: Document RZ/G3E SMARC SoM and Carrier-II
    EVK
  dt-bindings: clock: renesas: Document RZ/G3E SoC CPG
  clk: renesas: rzv2h: Add MSTOP support
  clk: renesas: rzv2h: Add support for RZ/G3E SoC
  clk: renesas: r9a09g047: Add CA55 core clocks
  clk: renesas: r9a09g047: Add I2C clocks/resets
  arm64: dts: renesas: Add initial DTSI for RZ/G3E SoC
  arm64: dts: renesas: r9a09g047: Add OPP table
  arm64: dts: renesas: Add initial support for RZ/G3E SMARC SoM
  arm64: dts: renesas: Add initial device tree for RZ/G3E SMARC EVK
    board
  soc: renesas: Add RZ/G3E (R9A09G047) config option
  arm64: defconfig: Enable R9A09G047 SoC
  dt-bindings: pinctrl: renesas: Add alpha-numerical port support for
    RZ/V2H
  dt-bindings: pinctrl: renesas: Document RZ/G3E SoC
  pinctrl: renesas: rzg2l: Use dev_err_probe()
  pinctrl: renesas: rzg2l: Fix missing return in
    rzg2l_pinctrl_register()
  pinctrl: renesas: rzg2l: Update r9a09g057_variable_pin_cfg table
  pinctrl: renesas: rzg2l: Add support for RZ/G3E SoC
  arm64: dts: renesas: r9a09g047: Add pincontrol node
  dt-bindings: serial: renesas: Document RZ/G3E (r9a09g047) scif
  arm64: dts: renesas: r9a09g047e57-smarc: Add SCIF pincontrol
  dt-bindings: i2c: renesas,riic: Document the R9A09G047 support
  arm64: dts: renesas: r9a09g047: Add I2C nodes

Claudiu Beznea (5):
  serial: sh-sci: Check if TX data was written to device in .tx_empty()
  serial: sh-sci: Move runtime PM enable to sci_probe_single()
  serial: sh-sci: Clean sci_ports[0] after at earlycon exit
  serial: sh-sci: Increment the runtime usage counter for the earlycon
    device
  dt-bindings: i2c: renesas,riic: Document the R9A08G045 support

Fabrizio Castro (2):
  clk: renesas: r9a09g057: Add clock and reset entries for ICU
  pinctrl: renesas: rzg2l: Remove RZG2L_TINT_IRQ_START_INDEX

Geert Uytterhoeven (1):
  serial: sh-sci: Use plain struct copy in early_console_setup()

Kartik (1):
  mm/util: Introduce kmemdup_array()

Lad Prabhakar (46):
  dt-bindings: clock: renesas: Document RZ/V2H(P) SoC CPG
  clk: renesas: Add family-specific clock driver for RZ/V2H(P)
  clk: renesas: Add RZ/V2H(P) CPG driver
  clk: renesas: rzv2h: Add support for dynamic switching divider clocks
  clk: renesas: rzv2h: Add selective Runtime PM support for clocks
  clk: renesas: r9a09g057: Add clock and reset entries for
    GTM/RIIC/SDHI/WDT
  clk: renesas: r9a09g057: Add CA55 core clocks
  clk: renesas: r9a09g057: Add support for PLLVDO, CRU clocks, and
    resets
  dt-bindings: pinctrl: renesas,rzg2l-pinctrl: Allow 'input' and
    'output-enable' properties
  dt-bindings: pinctrl: renesas,rzg2l-pinctrl: Remove the check from the
    object
  dt-bindings: pinctrl: renesas: Document RZ/V2H(P) SoC
  dt-bindings: pinctrl: renesas,rzg2l-pinctrl: Allow schmitt and open
    drain properties
  pinctrl: renesas: rzg2l: Allow more bits for pin configuration
  pinctrl: renesas: rzg2l: Drop struct rzg2l_variable_pin_cfg
  pinctrl: renesas: rzg2l: Enable variable configuration for all
  pinctrl: renesas: rzg2l: Validate power registers for SD and ETH
  pinctrl: renesas: rzg2l: Add function pointer for PFC register locking
  pinctrl: renesas: rzg2l: Add function pointer for PMC register write
  pinctrl: renesas: rzg2l: Add function pointers for OEN register access
  pinctrl: renesas: rzg2l: Add support to configure slew-rate
  pinctrl: renesas: rzg2l: Add support for pull-up/down
  pinctrl: renesas: rzg2l: Pass pincontrol device to
    pinconf_generic_parse_dt_config()
  pinctrl: renesas: rzg2l: Add support for custom parameters
  pinctrl: renesas: rzg2l: Acquire lock in rzg2l_pinctrl_pm_setup_pfc()
  pinctrl: renesas: rzg2l: Add support for RZ/V2H SoC
  pinctrl: renesas: rzg2l: Update PIN_CFG_MASK() macro to be 32-bit wide
  pinctrl: renesas: rzg2l: Adjust bit masks for PIN_CFG_VARIABLE to use
    BIT(62)
  pinctrl: renesas: rzg2l: Move RZG2L_SINGLE_PIN definition to top of
    the file
  pinctrl: renesas: rzg2l: Reorganize variable configuration macro
  pinctrl: renesas: rzg2l: Return -EINVAL if the pin doesn't support
    PIN_CFG_OEN
  pinctrl: renesas: rzg2l: Introduce single macro for digital noise
    filter configuration
  pinctrl: renesas: rzg2l: Move pinconf_to_config_argument() call
    outside of switch cases
  pinctrl: renesas: rzg2l: Add support for enabling/disabling open-drain
    outputs
  pinctrl: renesas: rzg2l: Add support for configuring schmitt-trigger
  pinctrl: renesas: rzg2l: Use gpiochip_populate_parent_fwspec_twocell
    helper
  pinctrl: renesas: rzg2l: Fix PFC_MASK for RZ/V2H and RZ/G3E
  dt-bindings: serial: renesas,scif: Move ref for serial.yaml at the end
  dt-bindings: serial: renesas,scif: Validate 'interrupts' and
    'interrupt-names'
  dt-bindings: serial: renesas,scif: Make 'interrupt-names' property as
    required
  dt-bindings: serial: Add documentation for Renesas RZ/V2H(P)
    (R9A09G057) SCIF support
  serial: sh-sci: Add support for RZ/V2H(P) SoC
  dt-bindings: i2c: renesas,riic: Document RZ/Five SoC
  dt-bindings: i2c: renesas,riic: Document R9A09G057 support
  i2c: riic: Introduce helper functions for I2C read/write operations
  i2c: riic: Pass register offsets and chip details as OF data
  i2c: riic: Add support for R9A09G057 SoC

Paul Barker (3):
  pinctrl: renesas: rzg2l: Clarify OEN read/write support
  pinctrl: renesas: rzg2l: Clean up and refactor OEN read/write
    functions
  pinctrl: renesas: rzg2l: Support output enable on RZ/G2L

Shen Lichuan (1):
  pinctrl: renesas: Switch to use kmemdup_array()

Wolfram Sang (1):
  serial: sh-sci: describe locking requirements for invalidating RXDMA

 .../devicetree/bindings/arm/renesas.yaml      |   17 +
 .../bindings/clock/renesas,rzv2h-cpg.yaml     |   83 ++
 .../devicetree/bindings/i2c/renesas,riic.yaml |   26 +-
 .../pinctrl/renesas,rzg2l-pinctrl.yaml        |   61 +-
 .../bindings/serial/renesas,scif.yaml         |  141 +-
 arch/arm64/boot/dts/renesas/Makefile          |    2 +
 arch/arm64/boot/dts/renesas/r9a09g047.dtsi    |  387 ++++++
 arch/arm64/boot/dts/renesas/r9a09g047e37.dtsi |   18 +
 .../boot/dts/renesas/r9a09g047e57-smarc.dts   |   31 +
 arch/arm64/boot/dts/renesas/r9a09g047e57.dtsi |   13 +
 .../boot/dts/renesas/renesas-smarc2.dtsi      |   24 +
 .../boot/dts/renesas/rzg3e-smarc-som.dtsi     |   28 +
 arch/arm64/configs/defconfig                  |    1 +
 drivers/clk/renesas/Kconfig                   |   14 +
 drivers/clk/renesas/Makefile                  |    3 +
 drivers/clk/renesas/r9a09g047-cpg.c           |  150 ++
 drivers/clk/renesas/r9a09g057-cpg.c           |  280 ++++
 drivers/clk/renesas/rzv2h-cpg.c               |  999 ++++++++++++++
 drivers/clk/renesas/rzv2h-cpg.h               |  224 +++
 drivers/i2c/busses/i2c-riic.c                 |  125 +-
 drivers/pinctrl/renesas/Kconfig               |    1 +
 drivers/pinctrl/renesas/pinctrl-rzg2l.c       | 1229 +++++++++++++----
 drivers/pinctrl/renesas/pinctrl-rzv2m.c       |    3 +-
 drivers/pinctrl/renesas/pinctrl.c             |    3 +-
 drivers/soc/renesas/Kconfig                   |    5 +
 drivers/tty/serial/sh-sci.c                   |  160 ++-
 .../dt-bindings/clock/renesas,r9a09g047-cpg.h |   21 +
 .../dt-bindings/clock/renesas,r9a09g057-cpg.h |   21 +
 .../pinctrl/renesas,r9a09g047-pinctrl.h       |   41 +
 .../pinctrl/renesas,r9a09g057-pinctrl.h       |   31 +
 include/linux/serial_sci.h                    |    1 +
 include/linux/string.h                        |    1 +
 mm/util.c                                     |   17 +
 33 files changed, 3747 insertions(+), 414 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/clock/renesas,rzv2h-cpg.yaml
 create mode 100644 arch/arm64/boot/dts/renesas/r9a09g047.dtsi
 create mode 100644 arch/arm64/boot/dts/renesas/r9a09g047e37.dtsi
 create mode 100644 arch/arm64/boot/dts/renesas/r9a09g047e57-smarc.dts
 create mode 100644 arch/arm64/boot/dts/renesas/r9a09g047e57.dtsi
 create mode 100644 arch/arm64/boot/dts/renesas/renesas-smarc2.dtsi
 create mode 100644 arch/arm64/boot/dts/renesas/rzg3e-smarc-som.dtsi
 create mode 100644 drivers/clk/renesas/r9a09g047-cpg.c
 create mode 100644 drivers/clk/renesas/r9a09g057-cpg.c
 create mode 100644 drivers/clk/renesas/rzv2h-cpg.c
 create mode 100644 drivers/clk/renesas/rzv2h-cpg.h
 create mode 100644 include/dt-bindings/clock/renesas,r9a09g047-cpg.h
 create mode 100644 include/dt-bindings/clock/renesas,r9a09g057-cpg.h
 create mode 100644 include/dt-bindings/pinctrl/renesas,r9a09g047-pinctrl.h
 create mode 100644 include/dt-bindings/pinctrl/renesas,r9a09g057-pinctrl.h

Comments

Pavel Machek March 13, 2025, 10:51 a.m. UTC | #1
Hi!

> This series add support for RZ/G3E SoC to linux-6.1.y-cip kernel.
> All patches are cherry-picked from mainline kernel.

85 patches, 3000+ lines of code. So we deserve so back story here:

What is RZ/G3E? Is it new generation of something? Is it used
somewhere?

Why is it important? Why is it important for -cip?

Does this add complete support? Or just enough to boot?

Is it in 6.12? If not, what will we do with 6.12-cip?

Do you have it in lab running tests somewhere? When was it released?
What was first mainline kernel to work there?

I'm curious, and, dunno, 50 lines of explanation what this is would
not be out of place for 3000 lines of patches.

Best regards,
								Pavel
Tommaso Merciai March 13, 2025, 11:53 a.m. UTC | #2
Hi Pavel,

Thanks for your comments.

On Thu, Mar 13, 2025 at 11:51:29AM +0100, Pavel Machek wrote:
> Hi!
> 
> > This series add support for RZ/G3E SoC to linux-6.1.y-cip kernel.
> > All patches are cherry-picked from mainline kernel.
> 
> 85 patches, 3000+ lines of code. So we deserve so back story here:

You are completely right.
Let me share with you some details:

> 
> What is RZ/G3E? Is it new generation of something? Is it used
> somewhere?

The RZ/G3E device is a general-purpose microprocessor with a quad-core CA-55,
single core CM-33, Ethos-U55 NPU, Mali-G52 3-D Graphics and other peripherals.

Here the first introduction to the kernel: [1]

> 
> Why is it important? Why is it important for -cip?
> 
> Does this add complete support? Or just enough to boot?

At the moment mainline supports only boot. So same backported here.
Going foward will add complete support.

> 
> Is it in 6.12? If not, what will we do with 6.12-cip?

We have a plan to port to 6.12, once cip releases 6.12 kernel.

> 
> Do you have it in lab running tests somewhere? When was it released?
> What was first mainline kernel to work there?

We have one on the lavalab, but is not up as mainline doesn't have ethernet support.
Eventually RZ/G3E board will be added in lava lab for testing once ethernet support added to mainline.

Does it answers all your questions?

> 
> I'm curious, and, dunno, 50 lines of explanation what this is would
> not be out of place for 3000 lines of patches.
> 
> Best regards,
> 								Pavel
> 
> -- 
> DENX Software Engineering GmbH,        Managing Director: Erika Unter
> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany

[1] https://patchwork.kernel.org/project/linux-clk/cover/20241122124558.149827-1-biju.das.jz@bp.renesas.com/

Thanks & Regards,
Tommaso