public inbox for linux-arm-kernel@lists.infradead.org
 help / color / mirror / Atom feed
From: Geert Uytterhoeven <geert@linux-m68k.org>
To: Marek Vasut <marek.vasut+renesas@mailbox.org>
Cc: linux-arm-kernel@lists.infradead.org,
	 Nguyen Tran <nguyen.tran.pz@bp.renesas.com>,
	Conor Dooley <conor+dt@kernel.org>,
	 David Airlie <airlied@gmail.com>,
	 Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>,
	 Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>,
	 Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>,
	 Magnus Damm <magnus.damm@gmail.com>,
	Maxime Ripard <mripard@kernel.org>,
	 Michael Turquette <mturquette@baylibre.com>,
	Rob Herring <robh@kernel.org>,  Simona Vetter <simona@ffwll.ch>,
	Stephen Boyd <sboyd@kernel.org>,
	 Thomas Zimmermann <tzimmermann@suse.de>,
	 Tomi Valkeinen <tomi.valkeinen+renesas@ideasonboard.com>,
	devicetree@vger.kernel.org,  dri-devel@lists.freedesktop.org,
	linux-clk@vger.kernel.org,  linux-kernel@vger.kernel.org,
	linux-renesas-soc@vger.kernel.org
Subject: Re: [PATCH 7/7] arm64: dts: renesas: r8a779md: Add support for R-Car M3Le R8A779MD Geist
Date: Wed, 29 Apr 2026 15:59:36 +0200	[thread overview]
Message-ID: <CAMuHMdX17D3n_5vxsvmaSmionjOqrEdPygjPdYuu6a0DR7b83w@mail.gmail.com> (raw)
In-Reply-To: <20260419193718.133174-8-marek.vasut+renesas@mailbox.org>

Hi Marek,

Thanks for your patch!

On Sun, 19 Apr 2026 at 21:38, Marek Vasut
<marek.vasut+renesas@mailbox.org> wrote:
> From: Nguyen Tran <nguyen.tran.pz@bp.renesas.com>
>
> Add support for the Geist board based on the Renesas R-Car R8A779MD (M3Le)
> SoC, a register-compatible variant of the R8A77965 (M3-N) with reduced set
> of peripherals. The Geist board design references the Renesas Salvator-X/XS
> boards, adapting their configuration for the R8A779MD SoC.

The latter is only true for the panel overlay, which should IMHO be
a separate patch.

> Signed-off-by: Nguyen Tran <nguyen.tran.pz@bp.renesas.com>
> Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>

> --- a/arch/arm64/boot/dts/renesas/Makefile
> +++ b/arch/arm64/boot/dts/renesas/Makefile
> @@ -60,6 +60,9 @@ r8a77965-salvator-xs-panel-aa104xd12-dtbs := r8a77965-salvator-xs.dtb salvator-p
>  dtb-$(CONFIG_ARCH_R8A77965) += r8a77965-salvator-xs-panel-aa104xd12.dtb
>  dtb-$(CONFIG_ARCH_R8A77965) += r8a77965-ulcb.dtb
>  dtb-$(CONFIG_ARCH_R8A77965) += r8a77965-ulcb-kf.dtb
> +dtb-$(CONFIG_ARCH_R8A77965) += r8a779md-geist.dtb
> +r8a779md-geist-panel-aa104xd12-dtbs := r8a779md-geist.dtb geist-panel-aa104xd12.dtbo
> +dtb-$(CONFIG_ARCH_R8A77965) += r8a779md-geist-panel-aa104xd12.dtb
>
>  dtb-$(CONFIG_ARCH_R8A77970) += r8a77970-eagle.dtb
>  dtb-$(CONFIG_ARCH_R8A77970) += r8a77970-eagle-function-expansion.dtbo
> diff --git a/arch/arm64/boot/dts/renesas/geist-panel-aa104xd12.dtso b/arch/arm64/boot/dts/renesas/geist-panel-aa104xd12.dtso
> new file mode 100644
> index 0000000000000..c8e39811eb051
> --- /dev/null
> +++ b/arch/arm64/boot/dts/renesas/geist-panel-aa104xd12.dtso
> @@ -0,0 +1,17 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * Device Tree overlay for the AA104XD12 panel connected to LVDS0 on a Geist board
> + *
> + * Copyright 2026 Marek Vasut
> + */
> +
> +/dts-v1/;
> +/plugin/;
> +
> +#include <dt-bindings/gpio/gpio.h>

This include is not needed?

> +
> +#include "salvator-panel-aa104xd12.dtso"
> +
> +&{/panel} {
> +       data-mapping = "jeida-24";

Is there any specific reason Geist needs "jeida-24", while all other
boards use "jeida-18"?

It looks like the major difference between Salvator-X(S) and Geist vs.
Draak and Ebisu is that the former connect to lvds0, and the latter to lvds1.
So what about renaming
salvator-panel-aa104xd12.dtso to lvds0-panel-aa104xd12.dtso, and
draak-ebisu-panel-aa104xd12.dtso to lvds1-panel-aa104xd12.dtso?

> +};

> --- /dev/null
> +++ b/arch/arm64/boot/dts/renesas/r8a779md-geist.dts
> @@ -0,0 +1,832 @@
> +// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +/*
> + * Device Tree Source for the Geist board with R-Car M3Le
> + *
> + * Copyright (C) 2025-2026 Renesas Electronics Corp.
> + */
> +
> +/dts-v1/;
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/input/input.h>
> +#include "r8a779md.dtsi"
> +
> +/ {
> +       model = "Renesas Geist board based on r8a779md";
> +       compatible = "renesas,geist", "renesas,r8a779md", "renesas,r8a77965";
> +
> +       aliases {
> +               serial0 = &scif2;
> +               serial1 = &hscif1;
> +               ethernet0 = &avb;
> +               mmc0 = &sdhi2;
> +               mmc1 = &sdhi0;
> +       };
> +
> +       chosen {
> +               bootargs = "ignore_loglevel rw root=/dev/nfs ip=on";
> +               stdout-path = "serial0:115200n8";
> +       };
> +
> +       memory@48000000 {
> +               device_type = "memory";
> +               /* first 128MB is reserved for secure area. */
> +               reg = <0x0 0x48000000 0x0 0x78000000>;

MT53E1G32D2FW-046 is a 32 Gib part, so there should be 4 GiB of RAM
in total.

> +       };
> +
> +       reserved-memory {
> +               #address-cells = <2>;
> +               #size-cells = <2>;
> +               ranges;
> +
> +               /* Device specific region for Lossy Decompression */
> +               lossy_decompress: linux,lossy_decompress@54000000 {
> +                       no-map;
> +                       reg = <0x00000000 0x54000000 0x0 0x03000000>;
> +               };

Please drop this node.  It should be added by the firmware stack
when needed.

> +       };
> +
> +       audio_clkout: audio-clkout {

Please sort nodes without unit address by name (everywhere).

> +               /*
> +                * FIXME

Please drop the literal "FIXME".

> +                * This is same as <&rcar_sound 0>
> +                * but needed to avoid cs2500/rcar_sound probe dead-lock
> +                */
> +               compatible = "fixed-clock";
> +               #clock-cells = <0>;
> +               clock-frequency = <12288000>;
> +       };
> +
> +       backlight: backlight {
> +               compatible = "pwm-backlight";
> +               pwms = <&pwm1 0 50000>;
> +
> +               brightness-levels = <256 128 64 16 8 4 0>;
> +               default-brightness-level = <6>;
> +
> +               power-supply = <&reg_12v>;
> +               enable-gpios = <&gpio6 7 GPIO_ACTIVE_HIGH>;
> +       };
> +
> +       cvbs-in {
> +               compatible = "composite-video-connector";
> +               label = "CVBS IN";
> +
> +               port {
> +                       cvbs_con: endpoint {
> +                               remote-endpoint = <&adv7482_ain7>;
> +                       };
> +               };
> +       };
> +
> +       hdmi-in {
> +               compatible = "hdmi-connector";
> +               label = "HDMI IN";
> +               type = "a";
> +
> +               port {
> +                       hdmi_in_con: endpoint {
> +                               remote-endpoint = <&adv7482_hdmi>;
> +                       };
> +               };
> +       };
> +
> +       keys {
> +               compatible = "gpio-keys";
> +
> +               pinctrl-0 = <&keys_pins>;
> +               pinctrl-names = "default";
> +
> +               key-1 {
> +                       gpios = <&gpio5 17 GPIO_ACTIVE_LOW>;
> +                       linux,code = <KEY_1>;
> +                       label = "SW4-1";
> +                       wakeup-source;
> +                       debounce-interval = <20>;
> +               };
> +
> +               key-2 {
> +                       gpios = <&gpio5 20 GPIO_ACTIVE_LOW>;
> +                       linux,code = <KEY_2>;
> +                       label = "SW4-2";
> +                       wakeup-source;
> +                       debounce-interval = <20>;
> +               };
> +
> +               key-3 {
> +                       gpios = <&gpio5 22 GPIO_ACTIVE_LOW>;
> +                       linux,code = <KEY_3>;
> +                       label = "SW4-3";
> +                       wakeup-source;
> +                       debounce-interval = <20>;
> +               };
> +
> +               key-4 {
> +                       gpios = <&gpio5 23 GPIO_ACTIVE_LOW>;
> +                       linux,code = <KEY_4>;
> +                       label = "SW4-4";
> +                       wakeup-source;
> +                       debounce-interval = <20>;
> +               };
> +
> +               key-a {
> +                       gpios = <&gpio6 11 GPIO_ACTIVE_LOW>;
> +                       linux,code = <KEY_A>;
> +                       label = "TSW0";
> +                       wakeup-source;
> +                       debounce-interval = <20>;
> +               };
> +
> +               key-b {
> +                       gpios = <&gpio6 12 GPIO_ACTIVE_LOW>;
> +                       linux,code = <KEY_B>;
> +                       label = "TSW1";
> +                       wakeup-source;
> +                       debounce-interval = <20>;
> +               };
> +
> +               key-c {
> +                       gpios = <&gpio6 13 GPIO_ACTIVE_LOW>;
> +                       linux,code = <KEY_C>;
> +                       label = "TSW2";
> +                       wakeup-source;
> +                       debounce-interval = <20>;
> +               };
> +       };
> +
> +       reg_1p8v: regulator0 {

Please no indexed regulators (everywhere), as they cause conflicts:
regulator-1p8v.

> +               compatible = "regulator-fixed";
> +               regulator-name = "fixed-1.8V";
> +               regulator-min-microvolt = <1800000>;
> +               regulator-max-microvolt = <1800000>;
> +               regulator-boot-on;
> +               regulator-always-on;
> +       };
> +
> +       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;
> +       };
> +
> +       reg_12v: regulator2 {
> +               compatible = "regulator-fixed";
> +               regulator-name = "fixed-12V";
> +               regulator-min-microvolt = <12000000>;
> +               regulator-max-microvolt = <12000000>;
> +               regulator-boot-on;
> +               regulator-always-on;
> +       };
> +
> +       sound_card: sound {
> +               compatible = "audio-graph-card";
> +
> +               label = "rcar-sound";
> +               dais = <&rsnd_port0>; /* AK4619 Audio Codec */
> +       };
> +
> +       vbus0_usb2: regulator-vbus0-usb2 {
> +               compatible = "regulator-fixed";
> +
> +               regulator-name = "USB20_VBUS0";
> +               regulator-min-microvolt = <5000000>;
> +               regulator-max-microvolt = <5000000>;
> +
> +               gpio = <&gpio6 16 GPIO_ACTIVE_HIGH>;
> +               enable-active-high;
> +       };
> +
> +       vcc_sdhi0: regulator-vcc-sdhi0 {
> +               compatible = "regulator-fixed";
> +
> +               regulator-name = "SDHI0 Vcc";
> +               regulator-min-microvolt = <3300000>;
> +               regulator-max-microvolt = <3300000>;
> +
> +               gpio = <&gpio5 2 GPIO_ACTIVE_HIGH>;
> +               enable-active-high;
> +       };
> +
> +       vccq_sdhi0: regulator-vccq-sdhi0 {
> +               compatible = "regulator-gpio";
> +
> +               regulator-name = "SDHI0 VccQ";
> +               regulator-min-microvolt = <1800000>;
> +               regulator-max-microvolt = <3300000>;
> +
> +               gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>;
> +               gpios-states = <1>;
> +               states = <3300000 1>, <1800000 0>;
> +       };
> +
> +       vga {
> +               compatible = "vga-connector";
> +
> +               port {
> +                       vga_in: endpoint {
> +                               remote-endpoint = <&adv7123_out>;
> +                       };
> +               };
> +       };
> +
> +       vga-encoder {
> +               compatible = "adi,adv7123";
> +
> +               ports {
> +                       #address-cells = <1>;
> +                       #size-cells = <0>;
> +
> +                       port@0 {
> +                               reg = <0>;
> +                               adv7123_in: endpoint {
> +                                       remote-endpoint = <&du_out_rgb>;
> +                               };
> +                       };
> +                       port@1 {
> +                               reg = <1>;
> +                               adv7123_out: endpoint {
> +                                       remote-endpoint = <&vga_in>;
> +                               };
> +                       };
> +               };
> +       };
> +
> +       x12_clk: x12 {

x12-clock

> +               compatible = "fixed-clock";
> +               #clock-cells = <0>;
> +               clock-frequency = <24576000>;
> +       };
> +
> +       /* External DU dot clocks */
> +       x21_clk: x21-clock {
> +               compatible = "fixed-clock";
> +               #clock-cells = <0>;
> +               clock-frequency = <33000000>;
> +       };
> +
> +       x22_clk: x22-clock {
> +               compatible = "fixed-clock";
> +               #clock-cells = <0>;
> +               clock-frequency = <33000000>;
> +       };

X22 is not wired to anything; should we keep it?

> +
> +       x23_clk: x23-clock {
> +               compatible = "fixed-clock";
> +               #clock-cells = <0>;
> +               clock-frequency = <25000000>;
> +       };
> +
> +       x3013_clk: x3013-clock {
> +               compatible = "fixed-clock";
> +               #clock-cells = <0>;
> +               clock-frequency = <25000000>;
> +       };
> +};
> +
> +&audio_clk_a {
> +       clock-frequency = <22579200>;
> +};
> +
> +&avb {
> +       pinctrl-0 = <&avb_pins>;
> +       pinctrl-names = "default";
> +       phy-handle = <&phy0>;
> +       tx-internal-delay-ps = <2000>;
> +       status = "okay";
> +
> +       phy0: ethernet-phy@0 {

compatible = "ethernet-phy-id0022.1622";

> +               rxc-skew-ps = <1500>;
> +               reg = <0>;
> +               interrupt-parent = <&gpio2>;
> +               interrupts = <11 IRQ_TYPE_LEVEL_LOW>;

interrupts-extended = <&gpio2 11 IRQ_TYPE_LEVEL_LOW>;

> +               reset-gpios = <&gpio2 10 GPIO_ACTIVE_LOW>;
> +               reset-assert-us = <100>;
> +               reset-deassert-us = <100>;

Do we need these two? We don't have them in e.g.
arch/arm64/boot/dts/renesas/salvator-common.dtsi

> +       };
> +};
> +
> +&csi40 {
> +       status = "okay";
> +
> +       ports {
> +               port@0 {
> +                       csi40_in: endpoint {
> +                               clock-lanes = <0>;
> +                               data-lanes = <1 2 3 4>;
> +                               remote-endpoint = <&adv7482_txa>;
> +                       };
> +               };
> +       };
> +};
> +
> +&du {
> +       pinctrl-0 = <&du_pins>;
> +       pinctrl-names = "default";
> +       clocks = <&cpg CPG_MOD 724>,
> +                <&cpg CPG_MOD 723>,
> +                <&cpg CPG_MOD 721>,
> +                <&versaclock5 1>,
> +                <&x21_clk>,
> +                <&versaclock5 2>;
> +       clock-names = "du.0", "du.1", "du.3",
> +                     "dclkin.0", "dclkin.1", "dclkin.3";
> +       status = "okay";
> +
> +       ports {
> +               port@0 {
> +                       du_out_rgb: endpoint {
> +                               remote-endpoint = <&adv7123_in>;
> +                       };
> +               };
> +       };
> +};
> +
> +&ehci0 {
> +       dr_mode = "otg";
> +       status = "okay";
> +};
> +
> +&ehci1 {
> +       status = "okay";
> +};

R-Car M3Le does not have the second USB2 channel.

> +
> +&extalr_clk {
> +       clock-frequency = <32768>;
> +};
> +
> +&extal_clk {
> +       clock-frequency = <16666666>;
> +};
> +
> +&hscif1 {
> +       pinctrl-0 = <&hscif1_pins>;
> +       pinctrl-names = "default";
> +
> +       uart-has-rtscts;
> +       /* Please only enable hscif1 or scif1 */
> +       status = "okay";
> +};
> +
> +&hsusb {
> +       dr_mode = "otg";
> +       status = "okay";
> +};
> +
> +&i2c2 {
> +       pinctrl-0 = <&i2c2_pins>;
> +       pinctrl-names = "default";
> +       clock-frequency = <100000>;
> +       status = "okay";
> +
> +       ak4619: codec@10 {
> +               compatible = "asahi-kasei,ak4619";
> +               reg = <0x10>;
> +               clocks = <&rcar_sound 3>;
> +               clock-names = "mclk";
> +               #sound-dai-cells = <0>;
> +
> +               port {
> +                       ak4619_endpoint: endpoint {
> +                               remote-endpoint = <&rsnd_endpoint0>;
> +                       };
> +               };
> +       };
> +
> +       /* Pin-to-pin, register map, and control compatible with CS2000 and CS2200 */
> +       cs2500: clk_multiplier@4f {

clock-controller

> +               #clock-cells = <0>;
> +               compatible = "cirrus,cs2500-cp", "cirrus,cs2000-cp";

probably the "-cp" should be dropped from the first compatible value,
cfr. my comment on the DT bindings patch.

> +               reg = <0x4f>;
> +               clocks = <&audio_clkout>, <&x12_clk>;
> +               clock-names = "clk_in", "ref_clk";
> +
> +               assigned-clocks = <&cs2500>;
> +               assigned-clock-rates = <24576000>; /* 1/1 divide */
> +       };
> +};
> +
> +&i2c4 {
> +       clock-frequency = <400000>;
> +       status = "okay";
> +
> +       versaclock3: clock-generator@68 {

clock-controller?

> +               compatible = "renesas,5p35023";
> +               reg = <0x68>;
> +               #clock-cells = <1>;
> +               clocks = <&x3013_clk>;
> +               assigned-clocks = <&versaclock3 4>, <&versaclock3 5>;
> +               assigned-clock-rates = <100000000>, <100000000>;
> +       };
> +
> +       versaclock5: clock-generator@6a {

clock-controller?

> +               compatible = "idt,5p49v5923";
> +               reg = <0x6a>;
> +               #clock-cells = <1>;
> +               clocks = <&x23_clk>;
> +               clock-names = "xin";
> +       };
> +
> +       video-receiver@70 {
> +               compatible = "adi,adv7482";
> +               reg = <0x70 0x71 0x72 0x73 0x74 0x75
> +                      0x60 0x61 0x62 0x63 0x64 0x65>;
> +               reg-names = "main", "dpll", "cp", "hdmi", "edid", "repeater",
> +                           "infoframe", "cbus", "cec", "sdp", "txa", "txb" ;
> +
> +               interrupt-parent = <&gpio6>;
> +               interrupts = <30 IRQ_TYPE_LEVEL_LOW>,
> +                            <31 IRQ_TYPE_LEVEL_LOW>;

interrupts-extended = <&gpio6 30 IRQ_TYPE_LEVEL_LOW>,
                      <&gpio6 31 IRQ_TYPE_LEVEL_LOW>;

> +               interrupt-names = "intrq1", "intrq2";
> +
> +               ports {
> +                       #address-cells = <1>;
> +                       #size-cells = <0>;
> +
> +                       port@7 {
> +                               reg = <7>;
> +
> +                               adv7482_ain7: endpoint {
> +                                       remote-endpoint = <&cvbs_con>;
> +                               };
> +                       };
> +
> +                       port@8 {
> +                               reg = <8>;
> +
> +                               adv7482_hdmi: endpoint {
> +                                       remote-endpoint = <&hdmi_in_con>;
> +                               };
> +                       };
> +
> +                       port@a {
> +                               reg = <10>;
> +
> +                               adv7482_txa: endpoint {
> +                                       clock-lanes = <0>;
> +                                       data-lanes = <1 2 3 4>;
> +                                       remote-endpoint = <&csi40_in>;
> +                               };
> +                       };
> +               };
> +       };
> +
> +       csa_vdd: adc@7c {
> +               compatible = "maxim,max9611";
> +               reg = <0x7c>;
> +
> +               shunt-resistor-micro-ohms = <5000>;
> +       };
> +
> +       csa_dvfs: adc@7f {
> +               compatible = "maxim,max9611";
> +               reg = <0x7f>;
> +
> +               shunt-resistor-micro-ohms = <5000>;
> +       };
> +};
> +
> +&i2c_dvfs {
> +       status = "okay";
> +
> +       clock-frequency = <400000>;
> +
> +       eeprom@50 {
> +               compatible = "rohm,br24t01", "atmel,24c01";
> +               reg = <0x50>;
> +               pagesize = <8>;
> +       };
> +};
> +
> +&ohci0 {
> +       dr_mode = "otg";
> +       status = "okay";
> +};
> +
> +&ohci1 {
> +       status = "okay";
> +};

R-Car M3Le does not have the second USB2 channel.

> +
> +&pcie_bus_clk {
> +       status = "disabled";
> +};
> +
> +&pciec0 {
> +       clocks = <&cpg CPG_MOD 319>, <&versaclock3 4>;
> +       status = "okay";
> +};
> +
> +&pciec0_rp {
> +       clocks = <&versaclock3 5>;
> +};
> +
> +&pfc {
> +       pinctrl-0 = <&scif_clk_pins>;
> +       pinctrl-names = "default";
> +
> +       avb_pins: avb {
> +               mux {
> +                       groups = "avb_link", "avb_mdio", "avb_mii";
> +                       function = "avb";
> +               };
> +
> +               pins_mdio {
> +                       groups = "avb_mdio";
> +                       drive-strength = <24>;
> +               };
> +
> +               pins_mii_tx {
> +                       pins = "PIN_AVB_TX_CTL", "PIN_AVB_TXC", "PIN_AVB_TD0",
> +                              "PIN_AVB_TD1", "PIN_AVB_TD2", "PIN_AVB_TD3";
> +                       drive-strength = <12>;
> +               };
> +       };
> +
> +       du_pins: du {
> +               groups = "du_rgb888", "du_sync", "du_oddf", "du_clk_out_0";
> +               function = "du";
> +       };
> +
> +       hscif1_pins: hscif1 {
> +               groups = "hscif1_data_a", "hscif1_ctrl_a";
> +               function = "hscif1";
> +       };
> +
> +       i2c2_pins: i2c2 {
> +               groups = "i2c2_a";
> +               function = "i2c2";
> +       };
> +
> +       irq0_pins: irq0 {
> +               groups = "intc_ex_irq0";
> +               function = "intc_ex";
> +       };
> +
> +       keys_pins: keys {
> +               pins = "GP_5_17", "GP_5_20", "GP_5_22";
> +               bias-pull-up;
> +       };
> +
> +       pwm1_pins: pwm1 {
> +               groups = "pwm1_a";
> +               function = "pwm1";
> +       };
> +
> +       pwm2_pins: pwm2 {
> +               groups = "pwm2_a";
> +               function = "pwm2";
> +       };

What is pwm2 used for?

> +
> +       scif1_pins: scif1 {
> +               groups = "scif1_data_a", "scif1_ctrl";
> +               function = "scif1";
> +       };
> +
> +       scif2_pins: scif2 {
> +               groups = "scif2_data_a";
> +               function = "scif2";
> +       };
> +
> +       scif_clk_pins: scif_clk {
> +               groups = "scif_clk_a";
> +               function = "scif_clk";
> +       };
> +
> +       sdhi0_pins: sd0 {
> +               groups = "sdhi0_data4", "sdhi0_ctrl";
> +               function = "sdhi0";
> +               power-source = <3300>;
> +       };
> +
> +       sdhi0_pins_uhs: sd0_uhs {
> +               groups = "sdhi0_data4", "sdhi0_ctrl";
> +               function = "sdhi0";
> +               power-source = <1800>;
> +       };
> +
> +       sdhi2_pins: sd2 {
> +               groups = "sdhi2_data8", "sdhi2_ctrl", "sdhi2_ds";
> +               function = "sdhi2";
> +               power-source = <1800>;
> +       };
> +
> +       sound_pins: sound {
> +               groups = "ssi01239_ctrl", "ssi0_data", "ssi1_data_a";
> +               function = "ssi";
> +       };
> +
> +       sound_clk_pins: sound_clk {
> +               groups = "audio_clk_a_a", "audio_clk_b_a", "audio_clk_c_a",
> +                        "audio_clkout_a", "audio_clkout3_a";
> +               function = "audio_clk";
> +       };
> +
> +       usb0_pins: usb0 {
> +               groups = "usb0";
> +               function = "usb0";
> +       };
> +
> +       usb1_pins: usb1 {
> +               mux {
> +                       groups = "usb1";
> +                       function = "usb1";
> +               };
> +
> +               ovc {
> +                       pins = "GP_6_27";
> +                       bias-pull-up;
> +               };
> +
> +               pwen {
> +                       pins = "GP_6_26";
> +                       bias-pull-down;
> +               };
> +       };

R-Car M3Le does not have the second USB2 channel.

> +};
> +
> +&pwm1 {
> +       pinctrl-0 = <&pwm1_pins>;
> +       pinctrl-names = "default";
> +
> +       status = "okay";
> +};
> +
> +&pwm2 {
> +       pinctrl-0 = <&pwm2_pins>;
> +       pinctrl-names = "default";
> +
> +       status = "okay";
> +};

What is pwm2 used for?

> +
> +&rcar_sound {
> +       pinctrl-0 = <&sound_pins>, <&sound_clk_pins>;
> +       pinctrl-names = "default";
> +
> +       /* Single DAI */
> +       #sound-dai-cells = <0>;
> +
> +       /* audio_clkout0/1/2/3 */
> +       #clock-cells = <1>;
> +       clock-frequency = <12288000 11289600>;
> +
> +       status = "okay";
> +
> +       /* update <audio_clk_b> to <cs2500> */
> +       clocks = <&cpg CPG_MOD 1005>,
> +                <&cpg CPG_MOD 1006>, <&cpg CPG_MOD 1007>,
> +                <&cpg CPG_MOD 1008>, <&cpg CPG_MOD 1009>,
> +                <&cpg CPG_MOD 1010>, <&cpg CPG_MOD 1011>,
> +                <&cpg CPG_MOD 1012>, <&cpg CPG_MOD 1013>,
> +                <&cpg CPG_MOD 1014>, <&cpg CPG_MOD 1015>,
> +                <&cpg CPG_MOD 1022>, <&cpg CPG_MOD 1023>,
> +                <&cpg CPG_MOD 1024>, <&cpg CPG_MOD 1025>,
> +                <&cpg CPG_MOD 1026>, <&cpg CPG_MOD 1027>,
> +                <&cpg CPG_MOD 1028>, <&cpg CPG_MOD 1029>,
> +                <&cpg CPG_MOD 1030>, <&cpg CPG_MOD 1031>,
> +                <&cpg CPG_MOD 1020>, <&cpg CPG_MOD 1021>,
> +                <&cpg CPG_MOD 1020>, <&cpg CPG_MOD 1021>,
> +                <&cpg CPG_MOD 1019>, <&cpg CPG_MOD 1018>,
> +                <&audio_clk_a>, <&cs2500>,
> +                <&audio_clk_c>,
> +                <&cpg CPG_MOD 922>;
> +
> +       ports {
> +               #address-cells = <1>;
> +               #size-cells = <0>;
> +
> +               rsnd_port0: port {

port@0 {
        reg = <0>;

> +                       rsnd_endpoint0: endpoint {
> +                               remote-endpoint = <&ak4619_endpoint>;
> +                               dai-format = "left_j";
> +                               bitclock-master = <&rsnd_endpoint0>;
> +                               frame-master = <&rsnd_endpoint0>;
> +                               playback = <&ssi0>, <&src0>, <&dvc0>;
> +                               capture = <&ssi1>, <&src1>, <&dvc1>;
> +                       };
> +               };
> +       };
> +};
> +
> +&rwdt {
> +       timeout-sec = <60>;
> +       status = "okay";
> +};
> +
> +&scif1 {
> +       pinctrl-0 = <&scif1_pins>;
> +       pinctrl-names = "default";
> +
> +       uart-has-rtscts;
> +       /* Please only enable hscif1 or scif1 */
> +       /* status = "okay"; */
> +};
> +
> +&scif2 {
> +       pinctrl-0 = <&scif2_pins>;
> +       pinctrl-names = "default";
> +
> +       status = "okay";
> +};
> +
> +&scif_clk {
> +       clock-frequency = <14745600>;
> +};
> +
> +&sdhi0 {
> +       pinctrl-0 = <&sdhi0_pins>;
> +       pinctrl-1 = <&sdhi0_pins_uhs>;
> +       pinctrl-names = "default", "state_uhs";
> +
> +       vmmc-supply = <&vcc_sdhi0>;
> +       vqmmc-supply = <&vccq_sdhi0>;
> +       cd-gpios = <&gpio3 12 GPIO_ACTIVE_LOW>;
> +       wp-gpios = <&gpio3 13 GPIO_ACTIVE_HIGH>;
> +       bus-width = <4>;
> +       sd-uhs-sdr50;
> +       sd-uhs-sdr104;
> +       status = "okay";
> +};
> +
> +&sdhi2 {
> +       /* used for on-board 8bit eMMC */
> +       pinctrl-0 = <&sdhi2_pins>;
> +       pinctrl-1 = <&sdhi2_pins>;
> +       pinctrl-names = "default", "state_uhs";
> +
> +       iommus = <&ipmmu_ds1 34>;

This belongs in the .dtsi file, and it is already there.

> +
> +       vmmc-supply = <&reg_3p3v>;
> +       vqmmc-supply = <&reg_1p8v>;
> +       bus-width = <8>;
> +       mmc-hs200-1_8v;
> +       no-sd;
> +       no-sdio;
> +       non-removable;
> +       fixed-emmc-driver-type = <1>;
> +       full-pwr-cycle-in-suspend;
> +       status = "okay";
> +};
> +
> +&ssi1 {
> +       shared-pin;
> +};
> +
> +&usb_extal_clk {
> +       clock-frequency = <50000000>;
> +};
> +
> +&usb2_phy0 {
> +       pinctrl-0 = <&usb0_pins>;
> +       pinctrl-names = "default";
> +
> +       vbus-supply = <&vbus0_usb2>;
> +       status = "okay";
> +};
> +
> +&usb2_phy1 {
> +       pinctrl-0 = <&usb1_pins>;
> +       pinctrl-names = "default";
> +
> +       status = "okay";
> +};

R-Car M3Le does not have the second USB2 channel.


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


  reply	other threads:[~2026-04-29 14:00 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-19 19:35 [PATCH 0/7] arm64: dts: renesas: r8a779md: Add support for R-Car M3Le R8A779MD SoC and Geist board Marek Vasut
2026-04-19 19:35 ` [PATCH 1/7] dt-bindings: display: renesas,du: Document Renesas R-Car R8A779MD M3Le Marek Vasut
2026-04-20 16:17   ` Conor Dooley
2026-04-29  9:57   ` Geert Uytterhoeven
2026-05-02 21:17     ` Marek Vasut
2026-05-05 22:21       ` Laurent Pinchart
2026-05-05 22:30         ` Laurent Pinchart
2026-04-19 19:35 ` [PATCH 2/7] drm/rcar-du: Add support for " Marek Vasut
2026-04-29 10:10   ` Geert Uytterhoeven
2026-05-02 21:25     ` Marek Vasut
2026-04-19 19:35 ` [PATCH 3/7] dt-bindings: clock: cs2000-cp: document CS2500 Marek Vasut
2026-04-20 16:13   ` Conor Dooley
2026-04-20 18:38   ` Stephen Boyd
2026-04-29 11:32   ` Geert Uytterhoeven
2026-05-02 19:23     ` Marek Vasut
2026-04-19 19:35 ` [PATCH 4/7] dt-bindings: soc: renesas: Document Renesas R-Car R8A779MD Geist Marek Vasut
2026-04-20 16:14   ` Conor Dooley
2026-04-29 11:44   ` Geert Uytterhoeven
2026-04-19 19:35 ` [PATCH 5/7] soc: renesas: Identify Renesas R-Car R8A779MD M3Le SoC Marek Vasut
2026-04-29 11:46   ` Geert Uytterhoeven
2026-04-19 19:35 ` [PATCH 6/7] arm64: dts: renesas: r8a779md: Add Renesas R-Car R8A779MD M3Le DTs Marek Vasut
2026-04-29 12:16   ` Geert Uytterhoeven
2026-05-03  0:11     ` Marek Vasut
2026-04-29 22:11   ` Laurent Pinchart
2026-05-02 23:39     ` Marek Vasut
2026-05-05 22:03       ` Laurent Pinchart
2026-04-19 19:35 ` [PATCH 7/7] arm64: dts: renesas: r8a779md: Add support for R-Car M3Le R8A779MD Geist Marek Vasut
2026-04-29 13:59   ` Geert Uytterhoeven [this message]
2026-05-03  1:25     ` Marek Vasut
2026-05-04  9:24       ` Geert Uytterhoeven
2026-05-04 22:53         ` Marek Vasut

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=CAMuHMdX17D3n_5vxsvmaSmionjOqrEdPygjPdYuu6a0DR7b83w@mail.gmail.com \
    --to=geert@linux-m68k.org \
    --cc=airlied@gmail.com \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=kieran.bingham+renesas@ideasonboard.com \
    --cc=krzk+dt@kernel.org \
    --cc=kuninori.morimoto.gx@renesas.com \
    --cc=laurent.pinchart+renesas@ideasonboard.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-renesas-soc@vger.kernel.org \
    --cc=magnus.damm@gmail.com \
    --cc=marek.vasut+renesas@mailbox.org \
    --cc=mripard@kernel.org \
    --cc=mturquette@baylibre.com \
    --cc=nguyen.tran.pz@bp.renesas.com \
    --cc=robh@kernel.org \
    --cc=sboyd@kernel.org \
    --cc=simona@ffwll.ch \
    --cc=tomi.valkeinen+renesas@ideasonboard.com \
    --cc=tzimmermann@suse.de \
    /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