[PATCH 4/4] arm64: dts: renesas: Add initial device tree for Yuridenki-Shokai Kakip board

Nobuhiro Iwamatsu posted 4 patches 1 year ago
There is a newer version of this series
[PATCH 4/4] arm64: dts: renesas: Add initial device tree for Yuridenki-Shokai Kakip board
Posted by Nobuhiro Iwamatsu 1 year ago
Add basic support for Yuridenki-Shokai Kakip board based on R9A09G057H48.
This commit supports the following:

  - Memory
  - Input clocks
  - Pin Control
  - SCIF
  - OSTM0 - OSTM7
  - SDHI0

Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
---
 arch/arm64/boot/dts/renesas/Makefile          |   1 +
 .../boot/dts/renesas/r9a09g057h48-kakip.dts   | 138 ++++++++++++++++++
 2 files changed, 139 insertions(+)
 create mode 100644 arch/arm64/boot/dts/renesas/r9a09g057h48-kakip.dts

diff --git a/arch/arm64/boot/dts/renesas/Makefile b/arch/arm64/boot/dts/renesas/Makefile
index 928635f2e76bbb..698f790bd42524 100644
--- a/arch/arm64/boot/dts/renesas/Makefile
+++ b/arch/arm64/boot/dts/renesas/Makefile
@@ -149,6 +149,7 @@ dtb-$(CONFIG_ARCH_R9A09G011) += r9a09g011-v2mevk2.dtb
 dtb-$(CONFIG_ARCH_R9A09G047) += r9a09g047e57-smarc.dtb
 
 dtb-$(CONFIG_ARCH_R9A09G057) += r9a09g057h44-rzv2h-evk.dtb
+dtb-$(CONFIG_ARCH_R9A09G057) += r9a09g057h48-kakip.dtb
 
 dtb-$(CONFIG_ARCH_RCAR_GEN3) += draak-ebisu-panel-aa104xd12.dtbo
 dtb-$(CONFIG_ARCH_RCAR_GEN3) += salvator-panel-aa104xd12.dtbo
diff --git a/arch/arm64/boot/dts/renesas/r9a09g057h48-kakip.dts b/arch/arm64/boot/dts/renesas/r9a09g057h48-kakip.dts
new file mode 100644
index 00000000000000..4046b87a1f3bd6
--- /dev/null
+++ b/arch/arm64/boot/dts/renesas/r9a09g057h48-kakip.dts
@@ -0,0 +1,138 @@
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+/*
+ * Device Tree Source for Yuridenki-Shokai the Kakip board
+ *
+ * Copyright (C) 2024 Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/pinctrl/renesas,r9a09g057-pinctrl.h>
+#include <dt-bindings/gpio/gpio.h>
+#include "r9a09g057.dtsi"
+
+/ {
+	model = "Yuridenki-Shokai Kakip Board based on r9a09g057h48";
+	compatible = "yuridenki,kakip", "renesas,r9a09g057h48", "renesas,r9a09g057";
+
+	aliases {
+		serial0 = &scif;
+		mmc0 = &sdhi0;
+	};
+
+	chosen {
+		bootargs = "ignore_loglevel";
+		stdout-path = "serial0:115200n8";
+	};
+
+	memory@48000000 {
+		device_type = "memory";
+		/* first 128MB is reserved for secure area. */
+		reg = <0x0 0x48000000 0x1 0xF8000000>;
+	};
+
+	reg_3p3v: regulator1 {
+		compatible = "regulator-fixed";
+
+		regulator-name = "fixed-3.3V";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		regulator-boot-on;
+		regulator-always-on;
+	};
+
+	vqmmc_sdhi0: regulator-vccq-sdhi0 {
+		compatible = "regulator-gpio";
+		regulator-name = "SDHI0 VccQ";
+		gpios = <&pinctrl RZV2H_GPIO(A, 0) GPIO_ACTIVE_HIGH>;
+		regulator-min-microvolt = <1800000>;
+		regulator-max-microvolt = <3300000>;
+		gpios-states = <0>;
+		states = <3300000 0 1800000 1>;
+	};
+};
+
+&qextal_clk {
+	clock-frequency = <24000000>;
+};
+
+&pinctrl {
+	scif_pins: scif {
+		pins =  "SCIF_RXD", "SCIF_TXD";
+	};
+
+	sd0-pwr-en-hog {
+		gpio-hog;
+		gpios = <RZV2H_GPIO(A, 1) GPIO_ACTIVE_HIGH>;
+		output-high;
+		line-name = "sd0_pwr_en";
+	};
+
+	sdhi0_pins: sd0 {
+		sd0_data {
+			pins = "SD0DAT0", "SD0DAT1", "SD0DAT2", "SD0DAT3", "SD0CMD";
+			input-enable;
+			renesas,output-impedance = <3>;
+			slew-rate = <0>;
+		};
+
+		sd0_clk {
+			pins = "SD0CLK";
+			renesas,output-impedance = <3>;
+			slew-rate = <0>;
+		};
+
+		sd0_mux {
+			pinmux = <RZV2H_PORT_PINMUX(A, 5, 15)>; /* SD0_CD */
+		};
+	};
+};
+
+&scif {
+	pinctrl-0 = <&scif_pins>;
+	pinctrl-names = "default";
+
+	status = "okay";
+};
+
+&ostm0 {
+	status = "okay";
+};
+
+&ostm1 {
+	status = "okay";
+};
+
+&ostm2 {
+	status = "okay";
+};
+
+&ostm3 {
+	status = "okay";
+};
+
+&ostm4 {
+	status = "okay";
+};
+
+&ostm5 {
+	status = "okay";
+};
+
+&ostm6 {
+	status = "okay";
+};
+
+&ostm7 {
+	status = "okay";
+};
+
+&sdhi0 {
+	pinctrl-0 = <&sdhi0_pins>;
+	pinctrl-names = "default";
+	vmmc-supply = <&reg_3p3v>;
+	vqmmc-supply = <&vqmmc_sdhi0>;
+	bus-width = <4>;
+
+	status = "okay";
+};
-- 
2.45.2
Re: [PATCH 4/4] arm64: dts: renesas: Add initial device tree for Yuridenki-Shokai Kakip board
Posted by Krzysztof Kozlowski 1 year ago
On 11/01/2025 09:09, Nobuhiro Iwamatsu wrote:
> +++ b/arch/arm64/boot/dts/renesas/r9a09g057h48-kakip.dts
> @@ -0,0 +1,138 @@
> +// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +/*
> + * Device Tree Source for Yuridenki-Shokai the Kakip board
> + *
> + * Copyright (C) 2024 Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
> + */
> +
> +/dts-v1/;
> +
> +#include <dt-bindings/pinctrl/renesas,r9a09g057-pinctrl.h>
> +#include <dt-bindings/gpio/gpio.h>
> +#include "r9a09g057.dtsi"
> +
> +/ {
> +	model = "Yuridenki-Shokai Kakip Board based on r9a09g057h48";
> +	compatible = "yuridenki,kakip", "renesas,r9a09g057h48", "renesas,r9a09g057";
> +
> +	aliases {
> +		serial0 = &scif;
> +		mmc0 = &sdhi0;
> +	};
> +
> +	chosen {
> +		bootargs = "ignore_loglevel";

Not really suitable for mainline DTS. This is just debugging, so drop.
Just like earlycon - not suitable for mainline usage.

> +		stdout-path = "serial0:115200n8";
> +	};
> +
> +	memory@48000000 {
> +		device_type = "memory";
> +		/* first 128MB is reserved for secure area. */
> +		reg = <0x0 0x48000000 0x1 0xF8000000>;
> +	};
> +
> +	reg_3p3v: regulator1 {

Keep consistent naming. regulator-1 or the name as in bindings:
'regulator-[0-9]v[0-9]'

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/regulator/fixed-regulator.yaml?h=v6.11-rc1#n46

> +		compatible = "regulator-fixed";
> +
> +		regulator-name = "fixed-3.3V";
> +		regulator-min-microvolt = <3300000>;
> +		regulator-max-microvolt = <3300000>;
> +		regulator-boot-on;
> +		regulator-always-on;
> +	};
> +
> +	vqmmc_sdhi0: regulator-vccq-sdhi0 {

regulator-2? Why different styles of names?

> +		compatible = "regulator-gpio";
> +		regulator-name = "SDHI0 VccQ";
> +		gpios = <&pinctrl RZV2H_GPIO(A, 0) GPIO_ACTIVE_HIGH>;
> +		regulator-min-microvolt = <1800000>;
> +		regulator-max-microvolt = <3300000>;
> +		gpios-states = <0>;
> +		states = <3300000 0 1800000 1>;
> +	};
> +};
> +
> +&qextal_clk {
> +	clock-frequency = <24000000>;
> +};
> +
> +&pinctrl {
> +	scif_pins: scif {
> +		pins =  "SCIF_RXD", "SCIF_TXD";
> +	};
> +
> +	sd0-pwr-en-hog {
> +		gpio-hog;
> +		gpios = <RZV2H_GPIO(A, 1) GPIO_ACTIVE_HIGH>;
> +		output-high;
> +		line-name = "sd0_pwr_en";
> +	};
> +
> +	sdhi0_pins: sd0 {
> +		sd0_data {


No underscores in node names. Please follow DTS coding style.


Best regards,
Krzysztof
Re: [PATCH 4/4] arm64: dts: renesas: Add initial device tree for Yuridenki-Shokai Kakip board
Posted by Geert Uytterhoeven 1 year ago
Hi Krzysztof,

On Sat, Jan 11, 2025 at 10:35 AM Krzysztof Kozlowski <krzk@kernel.org> wrote:
> On 11/01/2025 09:09, Nobuhiro Iwamatsu wrote:
> > +++ b/arch/arm64/boot/dts/renesas/r9a09g057h48-kakip.dts
> > +             stdout-path = "serial0:115200n8";
> > +     };
> > +
> > +     memory@48000000 {
> > +             device_type = "memory";
> > +             /* first 128MB is reserved for secure area. */
> > +             reg = <0x0 0x48000000 0x1 0xF8000000>;
> > +     };
> > +
> > +     reg_3p3v: regulator1 {
>
> Keep consistent naming. regulator-1 or the name as in bindings:
> 'regulator-[0-9]v[0-9]'

Please use the latter...

>
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/regulator/fixed-regulator.yaml?h=v6.11-rc1#n46
>
> > +             compatible = "regulator-fixed";
> > +
> > +             regulator-name = "fixed-3.3V";
> > +             regulator-min-microvolt = <3300000>;
> > +             regulator-max-microvolt = <3300000>;
> > +             regulator-boot-on;
> > +             regulator-always-on;
> > +     };
> > +
> > +     vqmmc_sdhi0: regulator-vccq-sdhi0 {
>
> regulator-2? Why different styles of names?

... i.e. no numbered regulators, as these tend to cause hard-to-debug
conflicts.

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
Re: [PATCH 4/4] arm64: dts: renesas: Add initial device tree for Yuridenki-Shokai Kakip board
Posted by Nobuhiro Iwamatsu 1 year ago
Hi,

Thanks for your comment.

2025年1月14日(火) 22:44 Geert Uytterhoeven <geert@linux-m68k.org>:
>
> Hi Krzysztof,
>
> On Sat, Jan 11, 2025 at 10:35 AM Krzysztof Kozlowski <krzk@kernel.org> wrote:
> > On 11/01/2025 09:09, Nobuhiro Iwamatsu wrote:
> > > +++ b/arch/arm64/boot/dts/renesas/r9a09g057h48-kakip.dts
> > > +             stdout-path = "serial0:115200n8";
> > > +     };
> > > +
> > > +     memory@48000000 {
> > > +             device_type = "memory";
> > > +             /* first 128MB is reserved for secure area. */
> > > +             reg = <0x0 0x48000000 0x1 0xF8000000>;
> > > +     };
> > > +
> > > +     reg_3p3v: regulator1 {
> >
> > Keep consistent naming. regulator-1 or the name as in bindings:
> > 'regulator-[0-9]v[0-9]'
>
> Please use the latter...

OK, I will use 'regulator-3v3'.
>
> >
> > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/regulator/fixed-regulator.yaml?h=v6.11-rc1#n46
> >
> > > +             compatible = "regulator-fixed";
> > > +
> > > +             regulator-name = "fixed-3.3V";
> > > +             regulator-min-microvolt = <3300000>;
> > > +             regulator-max-microvolt = <3300000>;
> > > +             regulator-boot-on;
> > > +             regulator-always-on;
> > > +     };
> > > +
> > > +     vqmmc_sdhi0: regulator-vccq-sdhi0 {
> >
> > regulator-2? Why different styles of names?
>
> ... i.e. no numbered regulators, as these tend to cause hard-to-debug
> conflicts.

OK, I will keep regulator-vccq-sdhi0 .

Best regards,
  Nobuhiro

-- 
Nobuhiro Iwamatsu
   iwamatsu at {nigauri.org / debian.org / kernel.org}
   GPG ID: 32247FBB40AD1FA6
Re: [PATCH 4/4] arm64: dts: renesas: Add initial device tree for Yuridenki-Shokai Kakip board
Posted by Krzysztof Kozlowski 1 year ago
On 14/01/2025 14:44, Geert Uytterhoeven wrote:
>>
>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/regulator/fixed-regulator.yaml?h=v6.11-rc1#n46
>>
>>> +             compatible = "regulator-fixed";
>>> +
>>> +             regulator-name = "fixed-3.3V";
>>> +             regulator-min-microvolt = <3300000>;
>>> +             regulator-max-microvolt = <3300000>;
>>> +             regulator-boot-on;
>>> +             regulator-always-on;
>>> +     };
>>> +
>>> +     vqmmc_sdhi0: regulator-vccq-sdhi0 {
>>
>> regulator-2? Why different styles of names?
> 
> ... i.e. no numbered regulators, as these tend to cause hard-to-debug
> conflicts.
"regulator-vccq-sdhi0" also works for me, because the recommended
pattern might have name conflicts, but then please keep the style across
all of them in this patch.

Best regards,
Krzysztof
Re: [PATCH 4/4] arm64: dts: renesas: Add initial device tree for Yuridenki-Shokai Kakip board
Posted by Nobuhiro Iwamatsu 1 year ago
Hi,

Thanks for your review.

2025年1月11日(土) 18:34 Krzysztof Kozlowski <krzk@kernel.org>:
>
> On 11/01/2025 09:09, Nobuhiro Iwamatsu wrote:
> > +++ b/arch/arm64/boot/dts/renesas/r9a09g057h48-kakip.dts
> > @@ -0,0 +1,138 @@
> > +// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > +/*
> > + * Device Tree Source for Yuridenki-Shokai the Kakip board
> > + *
> > + * Copyright (C) 2024 Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
> > + */
> > +
> > +/dts-v1/;
> > +
> > +#include <dt-bindings/pinctrl/renesas,r9a09g057-pinctrl.h>
> > +#include <dt-bindings/gpio/gpio.h>
> > +#include "r9a09g057.dtsi"
> > +
> > +/ {
> > +     model = "Yuridenki-Shokai Kakip Board based on r9a09g057h48";
> > +     compatible = "yuridenki,kakip", "renesas,r9a09g057h48", "renesas,r9a09g057";
> > +
> > +     aliases {
> > +             serial0 = &scif;
> > +             mmc0 = &sdhi0;
> > +     };
> > +
> > +     chosen {
> > +             bootargs = "ignore_loglevel";
>
> Not really suitable for mainline DTS. This is just debugging, so drop.
> Just like earlycon - not suitable for mainline usage.

OK, I will drop this.
>
> > +             stdout-path = "serial0:115200n8";
> > +     };
> > +
> > +     memory@48000000 {
> > +             device_type = "memory";
> > +             /* first 128MB is reserved for secure area. */
> > +             reg = <0x0 0x48000000 0x1 0xF8000000>;
> > +     };
> > +
> > +     reg_3p3v: regulator1 {
>
> Keep consistent naming. regulator-1 or the name as in bindings:
> 'regulator-[0-9]v[0-9]'
>
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/regulator/fixed-regulator.yaml?h=v6.11-rc1#n46
>

Thanks, I will fix naming and use regulator-*.

> > +             compatible = "regulator-fixed";
> > +
> > +             regulator-name = "fixed-3.3V";
> > +             regulator-min-microvolt = <3300000>;
> > +             regulator-max-microvolt = <3300000>;
> > +             regulator-boot-on;
> > +             regulator-always-on;
> > +     };
> > +
> > +     vqmmc_sdhi0: regulator-vccq-sdhi0 {
>
> regulator-2? Why different styles of names?
>
> > +             compatible = "regulator-gpio";
> > +             regulator-name = "SDHI0 VccQ";
> > +             gpios = <&pinctrl RZV2H_GPIO(A, 0) GPIO_ACTIVE_HIGH>;
> > +             regulator-min-microvolt = <1800000>;
> > +             regulator-max-microvolt = <3300000>;
> > +             gpios-states = <0>;
> > +             states = <3300000 0 1800000 1>;
> > +     };
> > +};
> > +
> > +&qextal_clk {
> > +     clock-frequency = <24000000>;
> > +};
> > +
> > +&pinctrl {
> > +     scif_pins: scif {
> > +             pins =  "SCIF_RXD", "SCIF_TXD";
> > +     };
> > +
> > +     sd0-pwr-en-hog {
> > +             gpio-hog;
> > +             gpios = <RZV2H_GPIO(A, 1) GPIO_ACTIVE_HIGH>;
> > +             output-high;
> > +             line-name = "sd0_pwr_en";
> > +     };
> > +
> > +     sdhi0_pins: sd0 {
> > +             sd0_data {
>
>
> No underscores in node names. Please follow DTS coding style.
>

OK, I will fix these.

>
> Best regards,
> Krzysztof

Best regards,
  Nobuhiro

-- 
Nobuhiro Iwamatsu
   iwamatsu at {nigauri.org / debian.org / kernel.org}
   GPG ID: 32247FBB40AD1FA6