mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Josua Mayer <josua@solid-run.com>
To: Geert Uytterhoeven <geert+renesas@glider.be>,
	Magnus Damm <magnus.damm@gmail.com>,
	Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Benjamin Bara <benjamin.bara@skidata.com>,
	Linus Walleij <linusw@kernel.org>,
	Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Cc: Jon Nettleton <jon@solid-run.com>,
	Mikhail Anikin <mikhail.anikin@solid-run.com>,
	Yazan Shhady <yazan.shhady@solid-run.com>,
	"linux-renesas-soc@vger.kernel.org"
	<linux-renesas-soc@vger.kernel.org>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-usb@vger.kernel.org" <linux-usb@vger.kernel.org>,
	"linux-gpio@vger.kernel.org" <linux-gpio@vger.kernel.org>
Subject: Re: [PATCH v9 11/11] arm64: dts: renesas: add support for solidrun rzg2ul som on hb-ripple
Date: Mon, 28 Sep 2026 16:32:30 +0000	[thread overview]
Message-ID: <ddac6f29-d791-41d7-abd2-fdd62c3b11fa@solid-run.com> (raw)
In-Reply-To: <20260928-rzg2-sr-boards-v9-11-5901e0fc9e44@solid-run.com>

Am 28.09.26 um 16:39 schrieb Josua Mayer:
> Add support for the SolidRun RZ/G2UL SoM [1] on HummingBoard Ripple [2].
>
> The SoM features:
> - 100Mbps Ethernet with PHY
> - eMMC
> - 512MB/1GB DDR
> - WiFi + Bluetooth
> - SDHI Mux switching between eMMC and Carrier Board
>
> The HummingBoard Ripple is a reduced version of HummingBoard Pulse,
> featuring:
> - 2x USB-2.0 Type-A connector
> - 1x 100Mbps RJ45 Ethernet
> - micro-HDMI connector (not usable with RZ/G2UL SoM)
> - microSD connector
> - mini-PCI-E connector with SIM slot supporting USB-2.0 interface
> - MIPI-CSI Camera Connector (not described without specific camera)
> - RTC with backup battery
>
> The carrier board is identical between RZ/G2L, RZ/G2LC, RZ/G2UL and
> RZ/V2L SoMs, yet only the RZ/G2LC combination has a product page [2].
>
> RZ/G2UL SoM shares SCIF2 pins between on-SoM Bluetooth and carrier
> board. Provide dt overlay changing pin function from uart to gpio led
> control.
>
> While the variant being supported here is named "Ripple", the overlay
> still carries the "pulse" suffix as it would fit all its variants.
>
> Descriptions for eMMC and microSD are shared with G2L SoM and
> HummingBoard IIoT.
>
> [1] https://www.solid-run.com/embedded-industrial-iot/renesas-rz-family/rz-g2ul-som/
> [2] https://www.solid-run.com/embedded-industrial-iot/renesas-rz-family/hummingboard-rz-series-sbcs/hummingboard-rz-g2lc-base/
>
> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
> Signed-off-by: Josua Mayer <josua@solid-run.com>
> ---
>   arch/arm64/boot/dts/renesas/Makefile               |  10 +
>   .../renesas/r9a07g043u12-hummingboard-ripple.dts   |  89 +++++
>   .../renesas/rzg2ul-hummingboard-pulse-leds.dtso    |  48 +++
>   arch/arm64/boot/dts/renesas/rzg2ul-sr-som.dtsi     | 437 +++++++++++++++++++++
>   4 files changed, 584 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/renesas/Makefile b/arch/arm64/boot/dts/renesas/Makefile
> index 83519d459ae80..2b6c7f63c44cd 100644
> --- a/arch/arm64/boot/dts/renesas/Makefile
> +++ b/arch/arm64/boot/dts/renesas/Makefile
> @@ -164,6 +164,16 @@ r9a07g043u11-smarc-du-adv7513-dtbs := r9a07g043u11-smarc.dtb r9a07g043u11-smarc-
>   dtb-$(CONFIG_ARCH_R9A07G043) += r9a07g043u11-smarc-du-adv7513.dtb
>   r9a07g043u11-smarc-pmod-dtbs := r9a07g043u11-smarc.dtb r9a07g043-smarc-pmod.dtbo
>   dtb-$(CONFIG_ARCH_R9A07G043) += r9a07g043u11-smarc-pmod.dtb
> +dtb-$(CONFIG_ARCH_R9A07G043) += r9a07g043u12-hummingboard-ripple.dtb
> +dtb-$(CONFIG_ARCH_R9A07G043) += rzg2l-sr-som-emmc.dtbo
> +r9a07g043u12-hummingboard-ripple-emmc-dtbs := r9a07g043u12-hummingboard-ripple.dtb rzg2l-sr-som-emmc.dtbo
> +dtb-$(CONFIG_ARCH_R9A07G043) += r9a07g043u12-hummingboard-ripple-emmc.dtb
> +dtb-$(CONFIG_ARCH_R9A07G043) += rzg2l-hummingboard-iiot-microsd.dtbo
> +dtb-$(CONFIG_ARCH_R9A07G043) += rzg2ul-hummingboard-pulse-leds.dtbo
> +r9a07g043u12-hummingboard-ripple-leds-dtbs := r9a07g043u12-hummingboard-ripple.dtb rzg2ul-hummingboard-pulse-leds.dtbo
> +dtb-$(CONFIG_ARCH_R9A07G043) += r9a07g043u12-hummingboard-ripple-leds.dtb
> +r9a07g043u12-hummingboard-ripple-microsd-dtbs := r9a07g043u12-hummingboard-ripple.dtb rzg2l-hummingboard-iiot-microsd.dtbo
> +dtb-$(CONFIG_ARCH_R9A07G043) += r9a07g043u12-hummingboard-ripple-microsd.dtb
>   
>   dtb-$(CONFIG_ARCH_R9A07G044) += r9a07g044c2-hummingboard-iiot.dtb
>   r9a07g044c2-hummingboard-iiot-emmc-dtbs := r9a07g044c2-hummingboard-iiot.dtb rzg2l-sr-som-emmc.dtbo
> diff --git a/arch/arm64/boot/dts/renesas/r9a07g043u12-hummingboard-ripple.dts b/arch/arm64/boot/dts/renesas/r9a07g043u12-hummingboard-ripple.dts
> new file mode 100644
> index 0000000000000..8ffa51dab56b2
> --- /dev/null
> +++ b/arch/arm64/boot/dts/renesas/r9a07g043u12-hummingboard-ripple.dts
> @@ -0,0 +1,89 @@
> +// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +/*
> + * Description for SolidRun RZ/G2UL Type-2 HummingBoard Ripple.
> + *
> + * Copyright 2025 Josua Mayer <josua@solid-run.com>
> + */
> +
> +/dts-v1/;
> +
> +#include "r9a07g043u.dtsi"
> +#include "rzg2ul-sr-som.dtsi"
> +#include "rzg2l-hummingboard-pulse-common.dtsi"
> +
> +/ {
> +	compatible = "solidrun,rzg2ul-hummingboard-ripple", "solidrun,rzg2ul-sr-som",
> +		     "renesas,r9a07g043u12", "renesas,r9a07g043";
> +	model = "SolidRun RZ/G2UL HummingBoard Ripple";
> +
> +	leds: leds {
> +		compatible = "gpio-leds";
> +
> +		led-0 {
> +			color = <LED_COLOR_ID_GREEN>;
> +			default-state = "on";
> +			gpios = <&pinctrl RZG2L_GPIO(12, 1) GPIO_ACTIVE_LOW>;
> +			label = "D30";
> +		};
> +	};
> +
> +	vbus1: regulator-vbus-1 {
> +		compatible = "regulator-fixed";
> +		regulator-name = "vbus1";
> +		regulator-max-microvolt = <5000000>;
> +		regulator-min-microvolt = <5000000>;
> +		gpios = <&pinctrl RZG2L_GPIO(5, 2) GPIO_ACTIVE_HIGH>;
> +		enable-active-high;
> +	};
> +};
> +
> +&hub_2_0 {
> +	reset-gpios = <&pinctrl RZG2L_GPIO(13, 3) GPIO_ACTIVE_LOW>;
> +};
> +
> +&pinctrl {
> +	hdmi_pd_hog: hdmi-pd-hog {
> +		/*
> +		 * RZ/G2UL does not have DSI output to feed DSI-to-HDMI
> +		 * bridge. Keep its shutdown signal asserted.
> +		 */
> +		gpio-hog;
> +		gpios = <RZG2L_GPIO(14, 2) GPIO_ACTIVE_LOW>;
> +		line-name = "hdmi-pd";
> +		output-high;
> +	};
> +
> +	mpcie_rst_hog: mpcie-reset-hog {
> +		gpio-hog;
> +		gpios = <RZG2L_GPIO(0, 3) GPIO_ACTIVE_LOW>;
> +		line-name = "mpcie-reset";
> +		output-low;
> +	};
> +
> +	mikro_uart_pins: pinctrl-mikro-uart-grp {
> +		pinmux = <RZG2L_PORT_PINMUX(14, 1, 1)>, /* SCIF1_RXD */
> +			 <RZG2L_PORT_PINMUX(14, 0, 1)>; /* SCIF1_TXD */
> +	};
> +
> +	usb0_vbus_pins: usb0-vbus {
> +		pinmux = <RZG2L_PORT_PINMUX(5, 0, 1)>; /* USB0_VBUSEN */
> +	};
> +};
> +
> +&usb2_phy1 {
> +	vbus-supply = <&vbus1>;
> +};
> +
> +&vmmc {
> +	gpios = <&pinctrl RZG2L_GPIO(0, 1) GPIO_ACTIVE_LOW>;
> +};
> +
> +&vmpcie {
> +	/*
> +	 * G2UL SoM v1.2 moved this IO from J7-28 (CON4-12)
> +	 * to J7-18 (this regulator).
> +	 * There are no known users of CON4-12 and thus no need
> +	 * to differentiate here between SoM v1.1 and v1.2.
> +	 */
> +	gpios = <&pinctrl RZG2L_GPIO(13, 4) GPIO_ACTIVE_HIGH>;
> +};
> diff --git a/arch/arm64/boot/dts/renesas/rzg2ul-hummingboard-pulse-leds.dtso b/arch/arm64/boot/dts/renesas/rzg2ul-hummingboard-pulse-leds.dtso
> new file mode 100644
> index 0000000000000..ab7f826c6e039
> --- /dev/null
> +++ b/arch/arm64/boot/dts/renesas/rzg2ul-hummingboard-pulse-leds.dtso
> @@ -0,0 +1,48 @@
> +// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +/*
> + * Overlay for SolidRun RZ/G2UL HummingBoard Pulse
> + * enabling LEDs D31-34 in exchange for on-SoM Bluetooth.
> + *
> + * Copyright 2025 Josua Mayer <josua@solid-run.com>
> + */
> +
> +/dts-v1/;
> +/plugin/;
> +
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/leds/common.h>
> +#include <dt-bindings/pinctrl/rzg2l-pinctrl.h>
> +
> +&leds {
> +	led-1 {
> +		label = "D31";
> +		color = <LED_COLOR_ID_GREEN>;
> +		gpios = <&pinctrl RZG2L_GPIO(5, 4) GPIO_ACTIVE_LOW>;
> +		default-state = "on";
> +	};
> +
> +	led-2 {
> +		label = "D32";
> +		color = <LED_COLOR_ID_GREEN>;
> +		gpios = <&pinctrl RZG2L_GPIO(5, 3) GPIO_ACTIVE_LOW>;
> +		default-state = "on";
> +	};
> +
> +	led-3 {
> +		label = "D33";
> +		color = <LED_COLOR_ID_GREEN>;
> +		gpios = <&pinctrl RZG2L_GPIO(6, 0) GPIO_ACTIVE_LOW>;
> +		default-state = "on";
> +	};
> +
> +	led-4 {
> +		label = "D34";
> +		color = <LED_COLOR_ID_GREEN>;
> +		gpios = <&pinctrl RZG2L_GPIO(6, 1) GPIO_ACTIVE_LOW>;
> +		default-state = "on";
> +	};
> +};
> +
> +&scif2 {
> +	status = "disabled";
> +};
> diff --git a/arch/arm64/boot/dts/renesas/rzg2ul-sr-som.dtsi b/arch/arm64/boot/dts/renesas/rzg2ul-sr-som.dtsi
> new file mode 100644
> index 0000000000000..c629688189270
> --- /dev/null
> +++ b/arch/arm64/boot/dts/renesas/rzg2ul-sr-som.dtsi
> @@ -0,0 +1,437 @@
> +// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +/*
> + * Device Tree Source for the RZ/G2UL Solidrun SOM
> + *
> + * Copyright 2025 Josua Mayer <josua@solid-run.com>
> + */
> +
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/pinctrl/rzg2l-pinctrl.h>
> +
> +/ {
> +	aliases {
> +		ethernet0 = &eth0;
> +		i2c0 = &i2c0;
> +		i2c1 = &i2c1;
> +		i2c2 = &i2c2;
> +		mmc0 = &sdhi0;
> +		mmc1 = &sdhi1;
> +		rtc0 = &pmic;
> +		serial0 = &scif0;
> +		serial1 = &scif1;
> +		serial2 = &scif2;
> +	};
> +
> +	chosen {
> +		stdout-path = "serial0:115200n8";
> +	};
> +
> +	memory@48000000 {
> +		/*
> +		 * Physical RAM starts at 0x40000000, but Renesas RZ/G2 BSPs
> +		 * reserve and hide the first 128MB for TrustZone by default.
> +		 *
> +		 * Minimum size for this SoM is 512MB, and the bootloader patches
> +		 * the dtb according to the actual RAM size and reservations.
> +		 */
> +		reg = <0x0 0x48000000 0x0 0x18000000>;
> +		device_type = "memory";
> +	};
> +
> +	sdhi0_mux: mux-controller-0 {
> +		compatible = "gpio-mux";
> +		#mux-control-cells = <0>;
> +		#mux-state-cells = <1>;
> +		/*
> +		 * Mux switches SD0_DATA[0-3], SD0_CMD & SD0_CLK between
> +		 * on-SoM eMMC and board-to-board connector using one gpio:
> +		 * High = connector, Low = eMMC.
> +		 * Define active-high for logical mux state 0 = eMMC, 1 = connector.
> +		 */
> +		mux-gpios = <&pinctrl RZG2L_GPIO(2, 1) GPIO_ACTIVE_HIGH>;
> +	};
> +
> +	reg_pmic_buck1: regulator-pmic-buck1 {
> +		compatible = "regulator-fixed";
> +		regulator-name = "pmic-buck1";
> +		regulator-always-on;
> +		regulator-boot-on;
> +		regulator-max-microvolt = <1100000>;
> +		regulator-min-microvolt = <1100000>;
> +	};
> +
> +	reg_pmic_buck3: regulator-pmic-buck3 {
> +		compatible = "regulator-fixed";
> +		regulator-name = "pmic-buck3";
> +		regulator-always-on;
> +		regulator-boot-on;
> +		regulator-max-microvolt = <1800000>;
> +		regulator-min-microvolt = <1800000>;
> +	};
> +
> +	reg_pmic_buck4: regulator-pmic-buck4 {
> +		compatible = "regulator-fixed";
> +		regulator-name = "pmic-buck4";
> +		regulator-always-on;
> +		regulator-boot-on;
> +		regulator-max-microvolt = <3300000>;
> +		regulator-min-microvolt = <3300000>;
> +	};
> +
> +	reg_pmic_ldo1: regulator-pmic-ldo1 {
> +		compatible = "regulator-gpio";
> +		regulator-name = "pmic-ldo1";
> +		gpios = <&pinctrl RZG2L_GPIO(13, 2) GPIO_ACTIVE_HIGH>;
> +		regulator-always-on;
> +		regulator-boot-on;
> +		regulator-max-microvolt = <3300000>;
> +		regulator-min-microvolt = <1800000>;
> +		states = <3300000 1>, <1800000 0>;
> +	};
> +
> +	reg_pmic_ldo2: regulator-pmic-ldo2 {
> +		compatible = "regulator-fixed";
> +		regulator-name = "pmic-ldo2";
> +		/*
> +		 * This ldo can switch mmc host controller io voltage between
> +		 * 1.8V and 3.3V by assembly option of pull-up / pull-dow.
> +		 * Default assembly is 3.3V.
> +		 */
> +		regulator-min-microvolt = <3300000>;
> +		regulator-always-on;
> +		regulator-boot-on;
> +		regulator-max-microvolt = <3300000>;
> +	};
> +
> +	reserved-memory {
> +		ranges;
> +		#address-cells = <2>;
> +		#size-cells = <2>;
> +
> +		global_cma: linux,cma@58000000 {
> +			compatible = "shared-dma-pool";
> +			reg = <0x0 0x58000000 0x0 0x10000000>;
> +			reusable;
> +			linux,cma-default;
> +		};
> +
> +		mmp_reserved: linux,multimedia@68000000 {
> +			compatible = "shared-dma-pool";
> +			reg = <0x0 0x68000000 0x0 0x8000000>;
> +			reusable;
> +		};
> +	};

Sashiko noticed that this exceeds 512MB RAM minimum size for the SoM.

In reality the whole reserved-memory node should be dropped,
it is an artifact inherited during development from G2LC.

The multimedia range is unnecessary because G2UL has no codecs.
The CMA range would only get used by the DU and CRUwhere
CONFIG_CMA_SIZE_MBYTES would suffice.

> +
> +	sdhi1_pwrseq: sdhi1-pwrseq {
> +		compatible = "mmc-pwrseq-simple";
> +		reset-gpios = <&pinctrl RZG2L_GPIO(2, 2) GPIO_ACTIVE_LOW>;
> +	};
> +
> +	/* 32.768kHz crystal */
> +	x2: x2-clock {
> +		compatible = "fixed-clock";
> +		#clock-cells = <0>;
> +		clock-frequency = <32768>;
> +	};
> +};
> +
> +&ehci0 {
> +	status = "okay";
> +};
> +
> +&ehci1 {
> +	status = "okay";
> +};
> +
> +&eth0 {
> +	phy-handle = <&phy0>;
> +	pinctrl-0 = <&eth0_pins>;
> +	pinctrl-names = "default";
> +	/*
> +	 * ravb driver does not configure mac internal delays for RZ/G2(UL/L/C),
> +	 * instead delays are added by the ADIN1200 phy driver.
> +	 */
> +	phy-mode = "rgmii-id";
> +	status = "okay";
> +
> +	phy0: ethernet-phy@0 {
> +		reg = <0>;
> +		/* Level interrupts are typical for phy but not supported on rz/g2l gpios. */
> +		interrupts-extended = <&pinctrl RZG2L_GPIO(4, 2) IRQ_TYPE_EDGE_FALLING>;
> +	};
> +};
> +
> +&extal_clk {
> +	clock-frequency = <24000000>;
> +};
> +
> +&i2c0 {
> +	clock-frequency = <400000>;
> +	pinctrl-0 = <&i2c0_pins>;
> +	pinctrl-names = "default";
> +	status = "okay";
> +
> +	eeprom: eeprom@50 {
> +		compatible = "atmel,24c01";
> +		reg = <0x50>;
> +		pagesize = <16>;
> +	};
> +};
> +
> +&i2c1 {
> +	clock-frequency = <400000>;
> +	pinctrl-0 = <&i2c1_pins>;
> +	pinctrl-names = "default";
> +	status = "okay";
> +};
> +
> +&i2c2 {
> +	clock-frequency = <400000>;
> +	pinctrl-0 = <&i2c2_pins>;
> +	pinctrl-names = "default";
> +	status = "okay";
> +
> +	pmic: pmic@12 {
> +		compatible = "renesas,raa215300";
> +		reg = <0x12>, <0x6f>;
> +		reg-names = "main", "rtc";
> +		clocks = <&x2>;
> +		clock-names = "xin";
> +	};
> +};
> +
> +&ohci0 {
> +	status = "okay";
> +};
> +
> +&ohci1 {
> +	status = "okay";
> +};
> +
> +&ostm1 {
> +	status = "okay";
> +};
> +
> +&ostm2 {
> +	status = "okay";
> +};
> +
> +&phyrst {
> +	status = "okay";
> +};
> +
> +&pinctrl {
> +	eth0_pins: eth0 {
> +		pinmux = <RZG2L_PORT_PINMUX(4, 5, 1)>, /* ET0_LINKSTA */
> +			 <RZG2L_PORT_PINMUX(4, 3, 1)>, /* ET0_MDC */
> +			 <RZG2L_PORT_PINMUX(4, 4, 1)>, /* ET0_MDIO */
> +			 <RZG2L_PORT_PINMUX(1, 0, 1)>, /* ET0_TXC */
> +			 <RZG2L_PORT_PINMUX(1, 1, 1)>, /* ET0_TX_CTL */
> +			 <RZG2L_PORT_PINMUX(1, 2, 1)>, /* ET0_TXD0 */
> +			 <RZG2L_PORT_PINMUX(1, 3, 1)>, /* ET0_TXD1 */
> +			 <RZG2L_PORT_PINMUX(1, 4, 1)>, /* ET0_TXD2 */
> +			 <RZG2L_PORT_PINMUX(2, 0, 1)>, /* ET0_TXD3 */
> +			 <RZG2L_PORT_PINMUX(3, 0, 1)>, /* ET0_RXC */
> +			 <RZG2L_PORT_PINMUX(3, 1, 1)>, /* ET0_RX_CTL */
> +			 <RZG2L_PORT_PINMUX(3, 2, 1)>, /* ET0_RXD0 */
> +			 <RZG2L_PORT_PINMUX(3, 3, 1)>, /* ET0_RXD1 */
> +			 <RZG2L_PORT_PINMUX(4, 0, 1)>, /* ET0_RXD2 */
> +			 <RZG2L_PORT_PINMUX(4, 1, 1)>; /* ET0_RXD3 */
> +	};
> +
> +	i2c0_pins: i2c0 {
> +		input-enable;
> +		pins = "RIIC0_SDA", "RIIC0_SCL";
> +	};
> +
> +	i2c1_pins: i2c1 {
> +		input-enable;
> +		pins = "RIIC1_SDA", "RIIC1_SCL";
> +	};
> +
> +	i2c2_pins: i2c2 {
> +		pinmux = <RZG2L_PORT_PINMUX(6, 3, 1)>, /* RIIC2_SDA */
> +			 <RZG2L_PORT_PINMUX(6, 4, 1)>; /* RIIC2_SCL */
> +	};
> +
> +	qspi0_pins: qspi0 {
> +		pins = "QSPI0_IO0", "QSPI0_IO1", "QSPI0_IO2", "QSPI0_IO3",
> +		       "QSPI0_SPCLK", "QSPI0_SSL";
> +		power-source = <1800>;
> +	};
> +
> +	scif0_pins: scif0 {
> +		pinmux = <RZG2L_PORT_PINMUX(13, 0, 1)>, /* SCIF0_TXD */
> +			 <RZG2L_PORT_PINMUX(13, 1, 1)>; /* SCIF0_RXD */
> +	};
> +
> +	scif2_pins: scif2 {
> +		pinmux = <RZG2L_PORT_PINMUX(6, 0, 4)>, /* SCIF2_TXD */
> +			 <RZG2L_PORT_PINMUX(6, 1, 4)>, /* SCIF2_RXD */
> +			 <RZG2L_PORT_PINMUX(5, 3, 2)>, /* SCIF2_CTS# */
> +			 <RZG2L_PORT_PINMUX(5, 4, 2)>; /* SCIF2_RTS# */
> +	};
> +
> +	sdhi0_4bit_pins: sdhi0-4bit {
> +		sd0_ctrl_dat03 {
> +			pins = "SD0_DATA0", "SD0_DATA1", "SD0_DATA2", "SD0_DATA3",
> +			       "SD0_CLK", "SD0_CMD";
> +			power-source = <3300>;
> +		};
> +
> +		/*
> +		 * Pins 4-7 are hard-wired to eMMC with 1.8V IO voltage,
> +		 * with all pins sharing a single voltage domain.
> +		 *
> +		 * These pins are fixed-function lacking independently configurable
> +		 * pull-up, pull-down or output-disable.
> +		 *
> +		 * While unused, disable the input buffers to avoid sampling the still
> +		 * physically connected but unused eMMC lines.
> +		 * For output direction rely on correct controller bus-width configuration
> +		 * to avoid over-voltage to eMMC e.g. when operating at 3.3V for a 4-bit microSD.
> +		 */
> +		sd0_dat47 {
> +			input-disable;
> +			pins = "SD0_DATA4", "SD0_DATA5", "SD0_DATA6", "SD0_DATA7";
> +		};
> +	};
> +
> +	sdhi0_4bit_uhs_pins: sdhi0-4bit-uhs {
> +		sd0_ctrl_dat03 {
> +			pins = "SD0_DATA0", "SD0_DATA1", "SD0_DATA2", "SD0_DATA3",
> +			       "SD0_CLK", "SD0_CMD";
> +			power-source = <1800>;
> +		};
> +
> +		/*
> +		 * Pins 4-7 are hard-wired to eMMC with 1.8V IO voltage,
> +		 * with all pins sharing a single voltage domain.
> +		 *
> +		 * These pins are fixed-function, lacking configurable pull-up, pull-down or
> +		 * output-disable, while sharing the voltage domain with all SD0_* pins.
> +		 *
> +		 * While unused, disable the input buffers to avoid sampling the still
> +		 * physically connected but unused eMMC lines.
> +		 * For output direction rely on correct controller bus-width configuration
> +		 * to avoid over-voltage to eMMC e.g. when operating at 3.3V for a 4-bit microSD.
> +		 */
> +		sd0_dat47 {
> +			input-disable;
> +			pins = "SD0_DATA4", "SD0_DATA5", "SD0_DATA6", "SD0_DATA7";
> +		};
> +	};
> +
> +	sdhi0_8bit_uhs_pins: sdhi0-8bit-uhs {
> +		sd0_ctrl {
> +			pins = "SD0_CLK", "SD0_CMD";
> +			power-source = <1800>;
> +		};
> +
> +		sd0_dat {
> +			input-enable;
> +			pins = "SD0_DATA0", "SD0_DATA1", "SD0_DATA2", "SD0_DATA3",
> +			       "SD0_DATA4", "SD0_DATA5", "SD0_DATA6", "SD0_DATA7";
> +		};
> +	};
> +
> +	sdhi0_cd_pins: sdhi0-cd {
> +		pinmux = <RZG2L_PORT_PINMUX(0, 0, 1)>; /* SD0_CD */
> +	};
> +
> +	/* SD0_RST is only routed to eMMC which uses fixed 1.8V IO voltage */
> +	sdhi0_rst_pins: sdhi0-rst {
> +		pins = "SD0_RST#";
> +		power-source = <1800>;
> +	};
> +
> +	sdhi1_pins: sdhi1 {
> +		pins = "SD1_DATA0", "SD1_DATA1", "SD1_DATA2", "SD1_DATA3",
> +		       "SD1_CLK", "SD1_CMD";
> +		power-source = <3300>;
> +	};
> +
> +	spi1_pins: spi1 {
> +		pinmux = <RZG2L_PORT_PINMUX(17, 2, 1)>, /* RSPI1_MISO */
> +			 <RZG2L_PORT_PINMUX(17, 1, 1)>, /* RSPI1_MOSI */
> +			 <RZG2L_PORT_PINMUX(17, 0, 1)>; /* RSPI1_CK */
> +	};
> +
> +	spi1_cs_pins: spi1-cs {
> +		pinmux = <RZG2L_PORT_PINMUX(17, 3, 1)>; /* RSPI1_SSL */
> +	};
> +};
> +
> +&sbc {
> +	pinctrl-0 = <&qspi0_pins>;
> +	pinctrl-names = "default";
> +	status = "okay";
> +
> +	flash@0 {
> +		compatible = "winbond,w25q80bl", "jedec,spi-nor";
> +		reg = <0>;
> +		spi-max-frequency = <50000000>;
> +		m25p,fast-read;
> +	};
> +};
> +
> +&scif0 {
> +	pinctrl-0 = <&scif0_pins>;
> +	pinctrl-names = "default";
> +	status = "okay";
> +};
> +
> +&scif2 {
> +	pinctrl-0 = <&scif2_pins>;
> +	pinctrl-names = "default";
> +	uart-has-rtscts;
> +	status = "okay";
> +
> +	bluetooth {
> +		/*
> +		 * The BT is based on BCM4343A2. Murata 1YN variant seems to
> +		 * require driving RTS on open.
> +		 * Use compatible bcm43438 to accomplish this.
> +		 */
> +		compatible = "brcm,bcm43438-bt";
> +		max-speed = <115200>;
> +		shutdown-gpios = <&pinctrl RZG2L_GPIO(2, 3) GPIO_ACTIVE_HIGH>;
> +		vbat-supply = <&reg_pmic_buck4>;
> +		vddio-supply = <&reg_pmic_buck4>;
> +	};
> +};
> +
> +/* WiFi */
> +&sdhi1 {
> +	/* Murata 1YN max rate is 50MHz */
> +	max-frequency = <50000000>;
> +	bus-width = <4>;
> +	cap-sdio-irq;
> +	mmc-pwrseq = <&sdhi1_pwrseq>;
> +	non-removable;
> +	no-1-8-v;
> +	no-sd;
> +	pinctrl-0 = <&sdhi1_pins>;
> +	pinctrl-names = "default";
> +	vmmc-supply = <&reg_pmic_buck4>;
> +	/*
> +	 * Host controller IO voltage is provided from reg_pmic_ldo2,
> +	 * WiFi module IO voltage from reg_pmic_buck4.
> +	 * Neither is configurable at run-time so either can be set here.
> +	 */
> +	vqmmc-supply = <&reg_pmic_ldo2>;
> +	status = "okay";
> +};
> +
> +&usb2_phy0 {
> +	vbus-supply = <&usb0_vbus_otg>;
> +	status = "okay";
> +};
> +
> +&usb2_phy1 {
> +	status = "okay";
> +};
> +
> +&wdt0 {
> +	status = "okay";
> +};
>


      reply	other threads:[~2026-09-28 16:32 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-28 14:39 [PATCH v9 00/11] arm64: dts: renesas: Add various SolidRun RZ/G2 based boards Josua Mayer
2026-09-28 14:39 ` [PATCH v9 01/11] dt-bindings: soc: " Josua Mayer
2026-09-28 14:39 ` [PATCH v9 02/11] dt-bindings: pinctrl: renesas,rzg2l-pinctrl: Allow input-/output-disable Josua Mayer
2026-09-28 14:39 ` [PATCH v9 03/11] dt-bindings: usb: cypress,hx3: make peer-hub property optional Josua Mayer
2026-09-28 14:39 ` [PATCH v9 04/11] arm64: dts: renesas: add support for solidrun rzg2l som and hb-iiot evb Josua Mayer
2026-09-28 16:14   ` Geert Uytterhoeven
2026-09-28 14:39 ` [PATCH v9 05/11] arm64: dts: renesas: add support for solidrun rzv2l " Josua Mayer
2026-09-28 14:39 ` [PATCH v9 06/11] arm64: dts: renesas: add support for solidrun rzg2lc " Josua Mayer
2026-09-28 14:39 ` [PATCH v9 07/11] arm64: dts: renesas: rzg2l(c)/rzv2l hb-iiot: add dsi panel dt overlay Josua Mayer
2026-09-28 14:39 ` [PATCH v9 08/11] arm64: dts: renesas: add support for solidrun hb-ripple with rzg2l som Josua Mayer
2026-09-28 16:10   ` Geert Uytterhoeven
2026-09-28 16:21     ` Josua Mayer
2026-09-28 17:00       ` Geert Uytterhoeven
2026-09-28 14:39 ` [PATCH v9 09/11] arm64: dts: renesas: add support for solidrun hb-ripple with rzv2l som Josua Mayer
2026-09-28 14:39 ` [PATCH v9 10/11] arm64: dts: renesas: add support for solidrun hb-ripple with rzg2lc som Josua Mayer
2026-09-28 14:39 ` [PATCH v9 11/11] arm64: dts: renesas: add support for solidrun rzg2ul som on hb-ripple Josua Mayer
2026-09-28 16:32   ` Josua Mayer [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ddac6f29-d791-41d7-abd2-fdd62c3b11fa@solid-run.com \
    --to=josua@solid-run.com \
    --cc=benjamin.bara@skidata.com \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=geert+renesas@glider.be \
    --cc=gregkh@linuxfoundation.org \
    --cc=jon@solid-run.com \
    --cc=krzk+dt@kernel.org \
    --cc=linusw@kernel.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-renesas-soc@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=magnus.damm@gmail.com \
    --cc=mikhail.anikin@solid-run.com \
    --cc=prabhakar.mahadev-lad.rj@bp.renesas.com \
    --cc=robh@kernel.org \
    --cc=yazan.shhady@solid-run.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®