// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) /* * Device Tree Source for the RZ/G3E SoC * * Copyright (C) 2024 Renesas Electronics Corp. */ #include #include / { compatible = "renesas,r9a09g047"; #address-cells = <2>; #size-cells = <2>; interrupt-parent = <&gic>; audio_extal_clk: audio-clk { compatible = "fixed-clock"; #clock-cells = <0>; /* This value must be overridden by the board */ clock-frequency = <0>; }; /* * The default cluster table is based on the assumption that the PLLCA55 clock * frequency is set to 1.7GHz. The PLLCA55 clock frequency can be set to * 1.7/1.6/1.5/1.1 GHz based on the BOOTPLLCA_0/1 pins (and additionally can be * clocked to 1.8GHz as well). The table below should be overridden in the board * DTS based on the PLLCA55 clock frequency. */ cluster0_opp: opp-table-0 { compatible = "operating-points-v2"; opp-1700000000 { opp-hz = /bits/ 64 <1700000000>; opp-microvolt = <900000>; clock-latency-ns = <300000>; }; opp-850000000 { opp-hz = /bits/ 64 <850000000>; opp-microvolt = <800000>; clock-latency-ns = <300000>; }; opp-425000000 { opp-hz = /bits/ 64 <425000000>; opp-microvolt = <800000>; clock-latency-ns = <300000>; }; opp-212500000 { opp-hz = /bits/ 64 <212500000>; opp-microvolt = <800000>; clock-latency-ns = <300000>; opp-suspend; }; }; cpus { #address-cells = <1>; #size-cells = <0>; cpu0: cpu@0 { compatible = "arm,cortex-a55"; reg = <0>; device_type = "cpu"; next-level-cache = <&L3_CA55>; enable-method = "psci"; clocks = <&cpg CPG_CORE R9A09G047_CA55_0_CORECLK0>; #cooling-cells = <2>; operating-points-v2 = <&cluster0_opp>; }; cpu1: cpu@100 { compatible = "arm,cortex-a55"; reg = <0x100>; device_type = "cpu"; next-level-cache = <&L3_CA55>; enable-method = "psci"; clocks = <&cpg CPG_CORE R9A09G047_CA55_0_CORECLK1>; #cooling-cells = <2>; operating-points-v2 = <&cluster0_opp>; }; cpu2: cpu@200 { compatible = "arm,cortex-a55"; reg = <0x200>; device_type = "cpu"; next-level-cache = <&L3_CA55>; enable-method = "psci"; clocks = <&cpg CPG_CORE R9A09G047_CA55_0_CORECLK2>; #cooling-cells = <2>; operating-points-v2 = <&cluster0_opp>; }; cpu3: cpu@300 { compatible = "arm,cortex-a55"; reg = <0x300>; device_type = "cpu"; next-level-cache = <&L3_CA55>; enable-method = "psci"; clocks = <&cpg CPG_CORE R9A09G047_CA55_0_CORECLK3>; #cooling-cells = <2>; operating-points-v2 = <&cluster0_opp>; }; L3_CA55: cache-controller-0 { compatible = "cache"; cache-unified; cache-size = <0x100000>; cache-level = <3>; }; }; gpu_opp_table: opp-table-1 { compatible = "operating-points-v2"; opp-630000000 { opp-hz = /bits/ 64 <630000000>; opp-microvolt = <800000>; }; opp-315000000 { opp-hz = /bits/ 64 <315000000>; opp-microvolt = <800000>; }; opp-157500000 { opp-hz = /bits/ 64 <157500000>; opp-microvolt = <800000>; }; opp-78750000 { opp-hz = /bits/ 64 <78750000>; opp-microvolt = <800000>; }; opp-19687500 { opp-hz = /bits/ 64 <19687500>; opp-microvolt = <800000>; }; }; psci { compatible = "arm,psci-1.0", "arm,psci-0.2"; method = "smc"; }; qextal_clk: qextal-clk { compatible = "fixed-clock"; #clock-cells = <0>; /* This value must be overridden by the board */ clock-frequency = <0>; }; rtxin_clk: rtxin-clk { compatible = "fixed-clock"; #clock-cells = <0>; /* This value must be overridden by the board */ clock-frequency = <0>; }; soc: soc { compatible = "simple-bus"; #address-cells = <2>; #size-cells = <2>; ranges; icu: interrupt-controller@10400000 { compatible = "renesas,r9a09g047-icu"; reg = <0 0x10400000 0 0x10000>; #interrupt-cells = <2>; #address-cells = <0>; interrupt-controller; interrupts = , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ; interrupt-names = "nmi", "port_irq0", "port_irq1", "port_irq2", "port_irq3", "port_irq4", "port_irq5", "port_irq6", "port_irq7", "port_irq8", "port_irq9", "port_irq10", "port_irq11", "port_irq12", "port_irq13", "port_irq14", "port_irq15", "tint0", "tint1", "tint2", "tint3", "tint4", "tint5", "tint6", "tint7", "tint8", "tint9", "tint10", "tint11", "tint12", "tint13", "tint14", "tint15", "tint16", "tint17", "tint18", "tint19", "tint20", "tint21", "tint22", "tint23", "tint24", "tint25", "tint26", "tint27", "tint28", "tint29", "tint30", "tint31", "int-ca55-0", "int-ca55-1", "int-ca55-2", "int-ca55-3", "icu-error-ca55", "gpt-u0-gtciada", "gpt-u0-gtciadb", "gpt-u1-gtciada", "gpt-u1-gtciadb"; clocks = <&cpg CPG_MOD 0x5>; power-domains = <&cpg>; resets = <&cpg 0x36>; }; pinctrl: pinctrl@10410000 { compatible = "renesas,r9a09g047-pinctrl"; reg = <0 0x10410000 0 0x10000>; clocks = <&cpg CPG_CORE R9A09G047_IOTOP_0_SHCLK>; gpio-controller; #gpio-cells = <2>; gpio-ranges = <&pinctrl 0 0 232>; #interrupt-cells = <2>; interrupt-controller; interrupt-parent = <&icu>; power-domains = <&cpg>; resets = <&cpg 0xa5>, <&cpg 0xa6>; reset-names = "main", "error"; }; cpg: clock-controller@10420000 { compatible = "renesas,r9a09g047-cpg"; reg = <0 0x10420000 0 0x10000>; clocks = <&audio_extal_clk>, <&rtxin_clk>, <&qextal_clk>; clock-names = "audio_extal", "rtxin", "qextal"; #clock-cells = <2>; #reset-cells = <1>; #power-domain-cells = <0>; }; sys: system-controller@10430000 { compatible = "renesas,r9a09g047-sys"; reg = <0 0x10430000 0 0x10000>; clocks = <&cpg CPG_CORE R9A09G047_SYS_0_PCLK>; resets = <&cpg 0x30>; }; xspi: spi@11030000 { compatible = "renesas,r9a09g047-xspi"; reg = <0 0x11030000 0 0x10000>, <0 0x20000000 0 0x10000000>; reg-names = "regs", "dirmap"; interrupts = , ; interrupt-names = "pulse", "err_pulse"; clocks = <&cpg CPG_MOD 0x9f>, <&cpg CPG_MOD 0xa0>, <&cpg CPG_CORE R9A09G047_SPI_CLK_SPI>, <&cpg CPG_MOD 0xa1>; clock-names = "ahb", "axi", "spi", "spix2"; resets = <&cpg 0xa3>, <&cpg 0xa4>; reset-names = "hresetn", "aresetn"; power-domains = <&cpg>; #address-cells = <1>; #size-cells = <0>; status = "disabled"; }; dmac0: dma-controller@11400000 { compatible = "renesas,r9a09g047-dmac", "renesas,r9a09g057-dmac"; reg = <0 0x11400000 0 0x10000>; interrupts = , , , , , , , , , , , , , , , , ; interrupt-names = "error", "ch0", "ch1", "ch2", "ch3", "ch4", "ch5", "ch6", "ch7", "ch8", "ch9", "ch10", "ch11", "ch12", "ch13", "ch14", "ch15"; clocks = <&cpg CPG_MOD 0x0>; power-domains = <&cpg>; resets = <&cpg 0x31>; #dma-cells = <1>; dma-channels = <16>; renesas,icu = <&icu 4>; }; dmac1: dma-controller@14830000 { compatible = "renesas,r9a09g047-dmac", "renesas,r9a09g057-dmac"; reg = <0 0x14830000 0 0x10000>; interrupts = , , , , , , , , , , , , , , , , ; interrupt-names = "error", "ch0", "ch1", "ch2", "ch3", "ch4", "ch5", "ch6", "ch7", "ch8", "ch9", "ch10", "ch11", "ch12", "ch13", "ch14", "ch15"; clocks = <&cpg CPG_MOD 0x1>; power-domains = <&cpg>; resets = <&cpg 0x32>; #dma-cells = <1>; dma-channels = <16>; renesas,icu = <&icu 0>; }; dmac2: dma-controller@14840000 { compatible = "renesas,r9a09g047-dmac", "renesas,r9a09g057-dmac"; reg = <0 0x14840000 0 0x10000>; interrupts = , , , , , , , , , , , , , , , , ; interrupt-names = "error", "ch0", "ch1", "ch2", "ch3", "ch4", "ch5", "ch6", "ch7", "ch8", "ch9", "ch10", "ch11", "ch12", "ch13", "ch14", "ch15"; clocks = <&cpg CPG_MOD 0x2>; power-domains = <&cpg>; resets = <&cpg 0x33>; #dma-cells = <1>; dma-channels = <16>; renesas,icu = <&icu 1>; }; dmac3: dma-controller@12000000 { compatible = "renesas,r9a09g047-dmac", "renesas,r9a09g057-dmac"; reg = <0 0x12000000 0 0x10000>; interrupts = , , , , , , , , , , , , , , , , ; interrupt-names = "error", "ch0", "ch1", "ch2", "ch3", "ch4", "ch5", "ch6", "ch7", "ch8", "ch9", "ch10", "ch11", "ch12", "ch13", "ch14", "ch15"; clocks = <&cpg CPG_MOD 0x3>; power-domains = <&cpg>; resets = <&cpg 0x34>; #dma-cells = <1>; dma-channels = <16>; renesas,icu = <&icu 2>; }; dmac4: dma-controller@12010000 { compatible = "renesas,r9a09g047-dmac", "renesas,r9a09g057-dmac"; reg = <0 0x12010000 0 0x10000>; interrupts = , , , , , , , , , , , , , , , , ; interrupt-names = "error", "ch0", "ch1", "ch2", "ch3", "ch4", "ch5", "ch6", "ch7", "ch8", "ch9", "ch10", "ch11", "ch12", "ch13", "ch14", "ch15"; clocks = <&cpg CPG_MOD 0x4>; power-domains = <&cpg>; resets = <&cpg 0x35>; #dma-cells = <1>; dma-channels = <16>; renesas,icu = <&icu 3>; }; scif0: serial@11c01400 { compatible = "renesas,scif-r9a09g047", "renesas,scif-r9a09g057"; reg = <0 0x11c01400 0 0x400>; interrupts = , , , , , , , , ; interrupt-names = "eri", "rxi", "txi", "bri", "dri", "tei", "tei-dri", "rxi-edge", "txi-edge"; clocks = <&cpg CPG_MOD 0x8f>; clock-names = "fck"; power-domains = <&cpg>; resets = <&cpg 0x95>; status = "disabled"; }; i3c: i3c@12400000 { compatible = "renesas,r9a09g047-i3c"; reg = <0 0x12400000 0 0x10000>; clocks = <&cpg CPG_MOD 0x91>, <&cpg CPG_MOD 0x92>, <&cpg CPG_MOD 0x90>; clock-names = "pclk", "tclk", "pclkrw"; interrupts = , , , , , , , , , , , , , , , ; interrupt-names = "ierr", "terr", "abort", "resp", "cmd", "ibi", "rx", "tx", "rcv", "st", "sp", "tend", "nack", "al", "tmo", "wu"; resets = <&cpg 0x96>, <&cpg 0x97>; reset-names = "presetn", "tresetn"; power-domains = <&cpg>; #address-cells = <3>; #size-cells = <0>; status = "disabled"; }; canfd: can@12440000 { compatible = "renesas,r9a09g047-canfd"; reg = <0 0x12440000 0 0x40000>; interrupts = , , , , , , , , , , , , , , , , , , , ; interrupt-names = "g_err", "g_recc", "ch0_err", "ch0_rec", "ch0_trx", "ch1_err", "ch1_rec", "ch1_trx", "ch2_err", "ch2_rec", "ch2_trx", "ch3_err", "ch3_rec", "ch3_trx", "ch4_err", "ch4_rec", "ch4_trx", "ch5_err", "ch5_rec", "ch5_trx"; clocks = <&cpg CPG_MOD 0x9c>, <&cpg CPG_MOD 0x9d>, <&cpg CPG_MOD 0x9e>; clock-names = "fck", "ram_clk", "can_clk"; assigned-clocks = <&cpg CPG_MOD 0x9e>; assigned-clock-rates = <80000000>; resets = <&cpg 0xa1>, <&cpg 0xa2>; reset-names = "rstp_n", "rstc_n"; power-domains = <&cpg>; status = "disabled"; channel0 { status = "disabled"; }; channel1 { status = "disabled"; }; channel2 { status = "disabled"; }; channel3 { status = "disabled"; }; channel4 { status = "disabled"; }; channel5 { status = "disabled"; }; }; rspi0: spi@12800000 { compatible = "renesas,r9a09g047-rspi", "renesas,r9a09g057-rspi"; reg = <0x0 0x12800000 0x0 0x400>; interrupts = , , , , ; interrupt-names = "idle", "error", "end", "rx", "tx"; clocks = <&cpg CPG_MOD 0x54>, <&cpg CPG_MOD 0x55>, <&cpg CPG_MOD 0x56>; clock-names = "pclk", "pclk_sfr", "tclk"; resets = <&cpg 0x7b>, <&cpg 0x7c>; reset-names = "presetn", "tresetn"; dmas = <&dmac0 0x448c>, <&dmac0 0x448d>, <&dmac1 0x448c>, <&dmac1 0x448d>, <&dmac2 0x448c>, <&dmac2 0x448d>, <&dmac3 0x448c>, <&dmac3 0x448d>, <&dmac4 0x448c>, <&dmac4 0x448d>; dma-names = "rx", "tx", "rx", "tx", "rx", "tx", "rx", "tx", "rx", "tx"; power-domains = <&cpg>; #address-cells = <1>; #size-cells = <0>; status = "disabled"; }; rspi1: spi@12800400 { compatible = "renesas,r9a09g047-rspi", "renesas,r9a09g057-rspi"; reg = <0x0 0x12800400 0x0 0x400>; interrupts = , , , , ; interrupt-names = "idle", "error", "end", "rx", "tx"; clocks = <&cpg CPG_MOD 0x57>, <&cpg CPG_MOD 0x58>, <&cpg CPG_MOD 0x59>; clock-names = "pclk", "pclk_sfr", "tclk"; resets = <&cpg 0x7d>, <&cpg 0x7e>; reset-names = "presetn", "tresetn"; dmas = <&dmac0 0x448e>, <&dmac0 0x448f>, <&dmac1 0x448e>, <&dmac1 0x448f>, <&dmac2 0x448e>, <&dmac2 0x448f>, <&dmac3 0x448e>, <&dmac3 0x448f>, <&dmac4 0x448e>, <&dmac4 0x448f>; dma-names = "rx", "tx", "rx", "tx", "rx", "tx", "rx", "tx", "rx", "tx"; power-domains = <&cpg>; #address-cells = <1>; #size-cells = <0>; status = "disabled"; }; rspi2: spi@12800800 { compatible = "renesas,r9a09g047-rspi", "renesas,r9a09g057-rspi"; reg = <0x0 0x12800800 0x0 0x400>; interrupts = , , , , ; interrupt-names = "idle", "error", "end", "rx", "tx"; clocks = <&cpg CPG_MOD 0x5a>, <&cpg CPG_MOD 0x5b>, <&cpg CPG_MOD 0x5c>; clock-names = "pclk", "pclk_sfr", "tclk"; resets = <&cpg 0x7f>, <&cpg 0x80>; reset-names = "presetn", "tresetn"; dmas = <&dmac0 0x4490>, <&dmac0 0x4491>, <&dmac1 0x4490>, <&dmac1 0x4491>, <&dmac2 0x4490>, <&dmac2 0x4491>, <&dmac3 0x4490>, <&dmac3 0x4491>, <&dmac4 0x4490>, <&dmac4 0x4491>; dma-names = "rx", "tx", "rx", "tx", "rx", "tx", "rx", "tx", "rx", "tx"; power-domains = <&cpg>; #address-cells = <1>; #size-cells = <0>; status = "disabled"; }; rsci0: serial@12800c00 { compatible = "renesas,r9a09g047-rsci"; reg = <0 0x12800c00 0 0x400>; interrupts = , , , , , ; interrupt-names = "eri", "rxi", "txi", "tei", "aed", "bfd"; clocks = <&cpg CPG_MOD 0x5d>, <&cpg CPG_MOD 0x5e>, <&cpg CPG_MOD 0x61>, <&cpg CPG_MOD 0x60>, <&cpg CPG_MOD 0x5f>; clock-names = "pclk", "tclk", "tclk_div4", "tclk_div16", "tclk_div64"; power-domains = <&cpg>; resets = <&cpg 0x81>, <&cpg 0x82>; reset-names = "presetn", "tresetn"; status = "disabled"; }; rsci1: serial@12801000 { compatible = "renesas,r9a09g047-rsci"; reg = <0 0x12801000 0 0x400>; interrupts = , , , , , ; interrupt-names = "eri", "rxi", "txi", "tei", "aed", "bfd"; clocks = <&cpg CPG_MOD 0x62>, <&cpg CPG_MOD 0x63>, <&cpg CPG_MOD 0x66>, <&cpg CPG_MOD 0x65>, <&cpg CPG_MOD 0x64>; clock-names = "pclk", "tclk", "tclk_div4", "tclk_div16", "tclk_div64"; power-domains = <&cpg>; resets = <&cpg 0x83>, <&cpg 0x84>; reset-names = "presetn", "tresetn"; status = "disabled"; }; rsci2: serial@12801400 { compatible = "renesas,r9a09g047-rsci"; reg = <0 0x12801400 0 0x400>; interrupts = , , , , , ; interrupt-names = "eri", "rxi", "txi", "tei", "aed", "bfd"; clocks = <&cpg CPG_MOD 0x67>, <&cpg CPG_MOD 0x68>, <&cpg CPG_MOD 0x6b>, <&cpg CPG_MOD 0x6a>, <&cpg CPG_MOD 0x69>; clock-names = "pclk", "tclk", "tclk_div4", "tclk_div16", "tclk_div64"; power-domains = <&cpg>; resets = <&cpg 0x85>, <&cpg 0x86>; reset-names = "presetn", "tresetn"; status = "disabled"; }; rsci3: serial@12801800 { compatible = "renesas,r9a09g047-rsci"; reg = <0 0x12801800 0 0x400>; interrupts = , , , , , ; interrupt-names = "eri", "rxi", "txi", "tei", "aed", "bfd"; clocks = <&cpg CPG_MOD 0x6c>, <&cpg CPG_MOD 0x6d>, <&cpg CPG_MOD 0x70>, <&cpg CPG_MOD 0x6f>, <&cpg CPG_MOD 0x6e>; clock-names = "pclk", "tclk", "tclk_div4", "tclk_div16", "tclk_div64"; power-domains = <&cpg>; resets = <&cpg 0x87>, <&cpg 0x88>; reset-names = "presetn", "tresetn"; status = "disabled"; }; rsci4: serial@12801c00 { compatible = "renesas,r9a09g047-rsci"; reg = <0 0x12801c00 0 0x400>; interrupts = , , , , , ; interrupt-names = "eri", "rxi", "txi", "tei", "aed", "bfd"; clocks = <&cpg CPG_MOD 0x71>, <&cpg CPG_MOD 0x72>, <&cpg CPG_MOD 0x75>, <&cpg CPG_MOD 0x74>, <&cpg CPG_MOD 0x73>; clock-names = "pclk", "tclk", "tclk_div4", "tclk_div16", "tclk_div64"; power-domains = <&cpg>; resets = <&cpg 0x89>, <&cpg 0x8a>; reset-names = "presetn", "tresetn"; status = "disabled"; }; rsci5: serial@12802000 { compatible = "renesas,r9a09g047-rsci"; reg = <0 0x12802000 0 0x400>; interrupts = , , , , , ; interrupt-names = "eri", "rxi", "txi", "tei", "aed", "bfd"; clocks = <&cpg CPG_MOD 0x76>, <&cpg CPG_MOD 0x77>, <&cpg CPG_MOD 0x7a>, <&cpg CPG_MOD 0x79>, <&cpg CPG_MOD 0x78>; clock-names = "pclk", "tclk", "tclk_div4", "tclk_div16", "tclk_div64"; power-domains = <&cpg>; resets = <&cpg 0x8b>, <&cpg 0x8c>; reset-names = "presetn", "tresetn"; status = "disabled"; }; rsci6: serial@12802400 { compatible = "renesas,r9a09g047-rsci"; reg = <0 0x12802400 0 0x400>; interrupts = , , , , , ; interrupt-names = "eri", "rxi", "txi", "tei", "aed", "bfd"; clocks = <&cpg CPG_MOD 0x7b>, <&cpg CPG_MOD 0x7c>, <&cpg CPG_MOD 0x7f>, <&cpg CPG_MOD 0x7e>, <&cpg CPG_MOD 0x7d>; clock-names = "pclk", "tclk", "tclk_div4", "tclk_div16", "tclk_div64"; power-domains = <&cpg>; resets = <&cpg 0x8d>, <&cpg 0x8e>; reset-names = "presetn", "tresetn"; status = "disabled"; }; rsci7: serial@12802800 { compatible = "renesas,r9a09g047-rsci"; reg = <0 0x12802800 0 0x400>; interrupts = , , , , , ; interrupt-names = "eri", "rxi", "txi", "tei", "aed", "bfd"; clocks = <&cpg CPG_MOD 0x80>, <&cpg CPG_MOD 0x81>, <&cpg CPG_MOD 0x84>, <&cpg CPG_MOD 0x83>, <&cpg CPG_MOD 0x82>; clock-names = "pclk", "tclk", "tclk_div4", "tclk_div16", "tclk_div64"; power-domains = <&cpg>; resets = <&cpg 0x8f>, <&cpg 0x90>; reset-names = "presetn", "tresetn"; status = "disabled"; }; rsci8: serial@12802c00 { compatible = "renesas,r9a09g047-rsci"; reg = <0 0x12802c00 0 0x400>; interrupts = , , , , , ; interrupt-names = "eri", "rxi", "txi", "tei", "aed", "bfd"; clocks = <&cpg CPG_MOD 0x85>, <&cpg CPG_MOD 0x86>, <&cpg CPG_MOD 0x89>, <&cpg CPG_MOD 0x88>, <&cpg CPG_MOD 0x87>; clock-names = "pclk", "tclk", "tclk_div4", "tclk_div16", "tclk_div64"; power-domains = <&cpg>; resets = <&cpg 0x91>, <&cpg 0x92>; reset-names = "presetn", "tresetn"; status = "disabled"; }; rsci9: serial@12803000 { compatible = "renesas,r9a09g047-rsci"; reg = <0 0x12803000 0 0x400>; interrupts = , , , , , ; interrupt-names = "eri", "rxi", "txi", "tei", "aed", "bfd"; clocks = <&cpg CPG_MOD 0x8a>, <&cpg CPG_MOD 0x8b>, <&cpg CPG_MOD 0x8e>, <&cpg CPG_MOD 0x8d>, <&cpg CPG_MOD 0x8c>; clock-names = "pclk", "tclk", "tclk_div4", "tclk_div16", "tclk_div64"; power-domains = <&cpg>; resets = <&cpg 0x93>, <&cpg 0x94>; reset-names = "presetn", "tresetn"; status = "disabled"; }; wdt1: watchdog@14400000 { compatible = "renesas,r9a09g047-wdt", "renesas,r9a09g057-wdt"; reg = <0 0x14400000 0 0x400>; clocks = <&cpg CPG_MOD 0x4d>, <&cpg CPG_MOD 0x4e>; clock-names = "pclk", "oscclk"; resets = <&cpg 0x76>; power-domains = <&cpg>; status = "disabled"; }; wdt2: watchdog@13000000 { compatible = "renesas,r9a09g047-wdt", "renesas,r9a09g057-wdt"; reg = <0 0x13000000 0 0x400>; clocks = <&cpg CPG_MOD 0x4f>, <&cpg CPG_MOD 0x50>; clock-names = "pclk", "oscclk"; resets = <&cpg 0x77>; power-domains = <&cpg>; status = "disabled"; }; wdt3: watchdog@13000400 { compatible = "renesas,r9a09g047-wdt", "renesas,r9a09g057-wdt"; reg = <0 0x13000400 0 0x400>; clocks = <&cpg CPG_MOD 0x51>, <&cpg CPG_MOD 0x52>; clock-names = "pclk", "oscclk"; resets = <&cpg 0x78>; power-domains = <&cpg>; status = "disabled"; }; pcie: pcie@13400000 { compatible = "renesas,r9a09g047-pcie"; reg = <0 0x13400000 0 0x10000>; ranges = <0x02000000 0 0x30000000 0 0x30000000 0 0x08000000>, <0x43000000 4 0x40000000 4 0x40000000 6 0x00000000>; dma-ranges = <0x42000000 0 0x40000000 0 0x40000000 2 0x00000000>; bus-range = <0x0 0xff>; interrupts = , , , , , , , , , , , , , , , , , , , , , , ; interrupt-names = "serr", "serr_cor", "serr_nonfatal", "serr_fatal", "axi_err", "inta", "intb", "intc", "intd", "msi", "link_bandwidth", "pm_pme", "dma", "pcie_evt", "msg", "all", "link_equalization_request", "turn_off_event", "pmu_poweroff", "d3_event_f0", "d3_event_f1", "cfg_pmcsr_writeclear_f0", "cfg_pmcsr_writeclear_f1"; #interrupt-cells = <1>; interrupt-controller; interrupt-map-mask = <0 0 0 7>; interrupt-map = <0 0 0 1 &pcie 0 0 0 0>, /* INTA */ <0 0 0 2 &pcie 0 0 0 1>, /* INTB */ <0 0 0 3 &pcie 0 0 0 2>, /* INTC */ <0 0 0 4 &pcie 0 0 0 3>; /* INTD */ clocks = <&cpg CPG_MOD 0xc4>, <&cpg CPG_MOD 0xc5>; clock-names = "aclk", "pmu"; resets = <&cpg 0xb2>; reset-names = "aresetn"; power-domains = <&cpg>; device_type = "pci"; #address-cells = <3>; #size-cells = <2>; renesas,sysc = <&sys>; status = "disabled"; pcie_port0: pcie@0,0 { reg = <0x0 0x0 0x0 0x0 0x0>; ranges; device_type = "pci"; vendor-id = <0x1912>; device-id = <0x0039>; #address-cells = <3>; #size-cells = <2>; }; }; tsu: thermal@14002000 { compatible = "renesas,r9a09g047-tsu"; reg = <0 0x14002000 0 0x1000>; interrupts = , ; interrupt-names = "adi", "adcmpi"; clocks = <&cpg CPG_MOD 0x10a>; resets = <&cpg 0xf8>; power-domains = <&cpg>; #thermal-sensor-cells = <0>; renesas,tsu-trim = <&sys 0x330>; }; i2c0: i2c@14400400 { compatible = "renesas,riic-r9a09g047", "renesas,riic-r9a09g057"; reg = <0 0x14400400 0 0x400>; interrupts = , , , , , , , ; interrupt-names = "tei", "ri", "ti", "spi", "sti", "naki", "ali", "tmoi"; clocks = <&cpg CPG_MOD 0x94>; resets = <&cpg 0x98>; power-domains = <&cpg>; #address-cells = <1>; #size-cells = <0>; status = "disabled"; }; i2c1: i2c@14400800 { compatible = "renesas,riic-r9a09g047", "renesas,riic-r9a09g057"; reg = <0 0x14400800 0 0x400>; interrupts = , , , , , , , ; interrupt-names = "tei", "ri", "ti", "spi", "sti", "naki", "ali", "tmoi"; clocks = <&cpg CPG_MOD 0x95>; resets = <&cpg 0x99>; power-domains = <&cpg>; #address-cells = <1>; #size-cells = <0>; status = "disabled"; }; i2c2: i2c@14400c00 { compatible = "renesas,riic-r9a09g047", "renesas,riic-r9a09g057"; reg = <0 0x14400c00 0 0x400>; interrupts = , , , , , , , ; interrupt-names = "tei", "ri", "ti", "spi", "sti", "naki", "ali", "tmoi"; clocks = <&cpg CPG_MOD 0x96>; resets = <&cpg 0x9a>; power-domains = <&cpg>; #address-cells = <1>; #size-cells = <0>; status = "disabled"; }; i2c3: i2c@14401000 { compatible = "renesas,riic-r9a09g047", "renesas,riic-r9a09g057"; reg = <0 0x14401000 0 0x400>; interrupts = , , , , , , , ; interrupt-names = "tei", "ri", "ti", "spi", "sti", "naki", "ali", "tmoi"; clocks = <&cpg CPG_MOD 0x97>; resets = <&cpg 0x9b>; power-domains = <&cpg>; #address-cells = <1>; #size-cells = <0>; status = "disabled"; }; i2c4: i2c@14401400 { compatible = "renesas,riic-r9a09g047", "renesas,riic-r9a09g057"; reg = <0 0x14401400 0 0x400>; interrupts = , , , , , , , ; interrupt-names = "tei", "ri", "ti", "spi", "sti", "naki", "ali", "tmoi"; clocks = <&cpg CPG_MOD 0x98>; resets = <&cpg 0x9c>; power-domains = <&cpg>; #address-cells = <1>; #size-cells = <0>; status = "disabled"; }; i2c5: i2c@14401800 { compatible = "renesas,riic-r9a09g047", "renesas,riic-r9a09g057"; reg = <0 0x14401800 0 0x400>; interrupts = , , , , , , , ; interrupt-names = "tei", "ri", "ti", "spi", "sti", "naki", "ali", "tmoi"; clocks = <&cpg CPG_MOD 0x99>; resets = <&cpg 0x9d>; power-domains = <&cpg>; #address-cells = <1>; #size-cells = <0>; status = "disabled"; }; i2c6: i2c@14401c00 { compatible = "renesas,riic-r9a09g047", "renesas,riic-r9a09g057"; reg = <0 0x14401c00 0 0x400>; interrupts = , , , , , , , ; interrupt-names = "tei", "ri", "ti", "spi", "sti", "naki", "ali", "tmoi"; clocks = <&cpg CPG_MOD 0x9a>; resets = <&cpg 0x9e>; power-domains = <&cpg>; #address-cells = <1>; #size-cells = <0>; status = "disabled"; }; i2c7: i2c@14402000 { compatible = "renesas,riic-r9a09g047", "renesas,riic-r9a09g057"; reg = <0 0x14402000 0 0x400>; interrupts = , , , , , , , ; interrupt-names = "tei", "ri", "ti", "spi", "sti", "naki", "ali", "tmoi"; clocks = <&cpg CPG_MOD 0x9b>; resets = <&cpg 0x9f>; power-domains = <&cpg>; #address-cells = <1>; #size-cells = <0>; status = "disabled"; }; i2c8: i2c@11c01000 { compatible = "renesas,riic-r9a09g047", "renesas,riic-r9a09g057"; reg = <0 0x11c01000 0 0x400>; interrupts = , , , , , , , ; interrupt-names = "tei", "ri", "ti", "spi", "sti", "naki", "ali", "tmoi"; clocks = <&cpg CPG_MOD 0x93>; resets = <&cpg 0xa0>; power-domains = <&cpg>; #address-cells = <1>; #size-cells = <0>; status = "disabled"; }; gpu: gpu@14850000 { compatible = "renesas,r9a09g047-mali", "arm,mali-bifrost"; reg = <0x0 0x14850000 0x0 0x10000>; interrupts = , , , ; interrupt-names = "job", "mmu", "gpu", "event"; clocks = <&cpg CPG_MOD 0xf0>, <&cpg CPG_MOD 0xf1>, <&cpg CPG_MOD 0xf2>; clock-names = "gpu", "bus", "bus_ace"; power-domains = <&cpg>; resets = <&cpg 0xdd>, <&cpg 0xde>, <&cpg 0xdf>; reset-names = "rst", "axi_rst", "ace_rst"; operating-points-v2 = <&gpu_opp_table>; status = "disabled"; }; gic: interrupt-controller@14900000 { compatible = "arm,gic-v3"; reg = <0x0 0x14900000 0 0x20000>, <0x0 0x14940000 0 0x80000>; #interrupt-cells = <3>; #address-cells = <0>; interrupt-controller; interrupts = ; }; xhci: usb@15850000 { compatible = "renesas,r9a09g047-xhci"; reg = <0 0x15850000 0 0x10000>; interrupts = , , , , ; interrupt-names = "all", "smi", "hse", "pme", "xhc"; clocks = <&cpg CPG_MOD 0xaf>; power-domains = <&cpg>; resets = <&cpg 0xaa>; phys = <&usb3_phy>, <&usb3_phy>; phy-names = "usb2-phy", "usb3-phy"; status = "disabled"; }; usb3_phy: usb-phy@15870000 { compatible = "renesas,r9a09g047-usb3-phy"; reg = <0 0x15870000 0 0x10000>; clocks = <&cpg CPG_MOD 0xb0>, <&cpg CPG_CORE R9A09G047_USB3_0_CLKCORE>, <&cpg CPG_CORE R9A09G047_USB3_0_REF_ALT_CLK_P>; clock-names = "pclk", "core", "ref_alt_clk_p"; power-domains = <&cpg>; resets = <&cpg 0xaa>; #phy-cells = <0>; status = "disabled"; }; sdhi0: mmc@15c00000 { compatible = "renesas,sdhi-r9a09g047", "renesas,sdhi-r9a09g057"; reg = <0x0 0x15c00000 0 0x10000>; interrupts = , ; clocks = <&cpg CPG_MOD 0xa3>, <&cpg CPG_MOD 0xa5>, <&cpg CPG_MOD 0xa4>, <&cpg CPG_MOD 0xa6>; clock-names = "core", "clkh", "cd", "aclk"; resets = <&cpg 0xa7>; power-domains = <&cpg>; status = "disabled"; sdhi0_vqmmc: vqmmc-regulator { regulator-name = "SDHI0-VQMMC"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <3300000>; status = "disabled"; }; }; sdhi1: mmc@15c10000 { compatible = "renesas,sdhi-r9a09g047", "renesas,sdhi-r9a09g057"; reg = <0x0 0x15c10000 0 0x10000>; interrupts = , ; clocks = <&cpg CPG_MOD 0xa7>, <&cpg CPG_MOD 0xa9>, <&cpg CPG_MOD 0xa8>, <&cpg CPG_MOD 0xaa>; clock-names = "core", "clkh", "cd", "aclk"; resets = <&cpg 0xa8>; power-domains = <&cpg>; status = "disabled"; sdhi1_vqmmc: vqmmc-regulator { regulator-name = "SDHI1-VQMMC"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <3300000>; status = "disabled"; }; }; sdhi2: mmc@15c20000 { compatible = "renesas,sdhi-r9a09g047", "renesas,sdhi-r9a09g057"; reg = <0x0 0x15c20000 0 0x10000>; interrupts = , ; clocks = <&cpg CPG_MOD 0xab>, <&cpg CPG_MOD 0xad>, <&cpg CPG_MOD 0xac>, <&cpg CPG_MOD 0xae>; clock-names = "core", "clkh", "cd", "aclk"; resets = <&cpg 0xa9>; power-domains = <&cpg>; status = "disabled"; sdhi2_vqmmc: vqmmc-regulator { regulator-name = "SDHI2-VQMMC"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <3300000>; status = "disabled"; }; }; eth0: ethernet@15c30000 { compatible = "renesas,r9a09g047-gbeth", "renesas,rzv2h-gbeth", "snps,dwmac-5.20"; reg = <0 0x15c30000 0 0x10000>; clocks = <&cpg CPG_MOD 0xbd>, <&cpg CPG_MOD 0xbc>, <&cpg CPG_CORE R9A09G047_GBETH_0_CLK_PTP_REF_I>, <&cpg CPG_MOD 0xb8>, <&cpg CPG_MOD 0xb9>, <&cpg CPG_MOD 0xba>, <&cpg CPG_MOD 0xbb>; clock-names = "stmmaceth", "pclk", "ptp_ref", "tx", "rx", "tx-180", "rx-180"; interrupts = , , , , , , , , , , ; interrupt-names = "macirq", "eth_wake_irq", "eth_lpi", "rx-queue-0", "rx-queue-1", "rx-queue-2", "rx-queue-3", "tx-queue-0", "tx-queue-1", "tx-queue-2", "tx-queue-3"; resets = <&cpg 0xb0>; power-domains = <&cpg>; snps,multicast-filter-bins = <256>; snps,perfect-filter-entries = <128>; rx-fifo-depth = <8192>; tx-fifo-depth = <8192>; snps,mixed-burst; snps,force_sf_dma_mode; snps,axi-config = <&stmmac_axi_setup>; snps,mtl-rx-config = <&mtl_rx_setup0>; snps,mtl-tx-config = <&mtl_tx_setup0>; snps,txpbl = <32>; snps,rxpbl = <32>; status = "disabled"; mdio0: mdio { compatible = "snps,dwmac-mdio"; #address-cells = <1>; #size-cells = <0>; }; mtl_rx_setup0: rx-queues-config { snps,rx-queues-to-use = <4>; snps,rx-sched-sp; queue0 { snps,dcb-algorithm; snps,priority = <0x1>; snps,map-to-dma-channel = <0>; }; queue1 { snps,dcb-algorithm; snps,priority = <0x2>; snps,map-to-dma-channel = <1>; }; queue2 { snps,dcb-algorithm; snps,priority = <0x4>; snps,map-to-dma-channel = <2>; }; queue3 { snps,dcb-algorithm; snps,priority = <0x8>; snps,map-to-dma-channel = <3>; }; }; mtl_tx_setup0: tx-queues-config { snps,tx-queues-to-use = <4>; queue0 { snps,dcb-algorithm; snps,priority = <0x1>; }; queue1 { snps,dcb-algorithm; snps,priority = <0x2>; }; queue2 { snps,dcb-algorithm; snps,priority = <0x4>; }; queue3 { snps,dcb-algorithm; snps,priority = <0x8>; }; }; }; eth1: ethernet@15c40000 { compatible = "renesas,r9a09g047-gbeth", "renesas,rzv2h-gbeth", "snps,dwmac-5.20"; reg = <0 0x15c40000 0 0x10000>; clocks = <&cpg CPG_MOD 0xc3>, <&cpg CPG_MOD 0xc2>, <&cpg CPG_CORE R9A09G047_GBETH_1_CLK_PTP_REF_I>, <&cpg CPG_MOD 0xbe>, <&cpg CPG_MOD 0xbf>, <&cpg CPG_MOD 0xc0>, <&cpg CPG_MOD 0xc1>; clock-names = "stmmaceth", "pclk", "ptp_ref", "tx", "rx", "tx-180", "rx-180"; interrupts = , , , , , , , , , , ; interrupt-names = "macirq", "eth_wake_irq", "eth_lpi", "rx-queue-0", "rx-queue-1", "rx-queue-2", "rx-queue-3", "tx-queue-0", "tx-queue-1", "tx-queue-2", "tx-queue-3"; resets = <&cpg 0xb1>; power-domains = <&cpg>; snps,multicast-filter-bins = <256>; snps,perfect-filter-entries = <128>; rx-fifo-depth = <8192>; tx-fifo-depth = <8192>; snps,mixed-burst; snps,force_sf_dma_mode; snps,axi-config = <&stmmac_axi_setup>; snps,mtl-rx-config = <&mtl_rx_setup1>; snps,mtl-tx-config = <&mtl_tx_setup1>; snps,txpbl = <32>; snps,rxpbl = <32>; status = "disabled"; mdio1: mdio { compatible = "snps,dwmac-mdio"; #address-cells = <1>; #size-cells = <0>; }; mtl_rx_setup1: rx-queues-config { snps,rx-queues-to-use = <4>; snps,rx-sched-sp; queue0 { snps,dcb-algorithm; snps,priority = <0x1>; snps,map-to-dma-channel = <0>; }; queue1 { snps,dcb-algorithm; snps,priority = <0x2>; snps,map-to-dma-channel = <1>; }; queue2 { snps,dcb-algorithm; snps,priority = <0x4>; snps,map-to-dma-channel = <2>; }; queue3 { snps,dcb-algorithm; snps,priority = <0x8>; snps,map-to-dma-channel = <3>; }; }; mtl_tx_setup1: tx-queues-config { snps,tx-queues-to-use = <4>; queue0 { snps,dcb-algorithm; snps,priority = <0x1>; }; queue1 { snps,dcb-algorithm; snps,priority = <0x2>; }; queue2 { snps,dcb-algorithm; snps,priority = <0x4>; }; queue3 { snps,dcb-algorithm; snps,priority = <0x8>; }; }; }; cru: video@16000000 { compatible = "renesas,r9a09g047-cru"; reg = <0 0x16000000 0 0x400>; clocks = <&cpg CPG_MOD 0xd3>, <&cpg CPG_MOD 0xd4>, <&cpg CPG_MOD 0xd2>; clock-names = "video", "apb", "axi"; interrupts = , , , , ; interrupt-names = "image_conv", "axi_mst_err", "vd_addr_wend", "sd_addr_wend", "vsd_addr_wend"; resets = <&cpg 0xc5>, <&cpg 0xc6>; reset-names = "presetn", "aresetn"; power-domains = <&cpg>; status = "disabled"; ports { #address-cells = <1>; #size-cells = <0>; port@1 { #address-cells = <1>; #size-cells = <0>; reg = <1>; crucsi2: endpoint@0 { reg = <0>; remote-endpoint = <&csi2cru>; }; }; }; }; csi2: csi2@16000400 { compatible = "renesas,r9a09g047-csi2", "renesas,r9a09g057-csi2"; reg = <0 0x16000400 0 0xc00>; interrupts = ; clocks = <&cpg CPG_MOD 0xd3>, <&cpg CPG_MOD 0xd4>; clock-names = "video", "apb"; resets = <&cpg 0xc5>, <&cpg 0xc7>; reset-names = "presetn", "cmn-rstb"; power-domains = <&cpg>; status = "disabled"; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; }; port@1 { #address-cells = <1>; #size-cells = <0>; reg = <1>; csi2cru: endpoint@0 { reg = <0>; remote-endpoint = <&crucsi2>; }; }; }; }; fcpvd0: fcp@16470000 { compatible = "renesas,r9a09g047-fcpvd", "renesas,fcpv"; reg = <0 0x16470000 0 0x10000>; clocks = <&cpg CPG_MOD 0xed>, <&cpg CPG_MOD 0xee>, <&cpg CPG_MOD 0xef>; clock-names = "aclk", "pclk", "vclk"; resets = <&cpg 0xdc>; power-domains = <&cpg>; }; fcpvd1: fcp@164a0000 { compatible = "renesas,r9a09g047-fcpvd", "renesas,fcpv"; reg = <0 0x164a0000 0 0x10000>; clocks = <&cpg CPG_MOD 0x1a8>, <&cpg CPG_MOD 0x1a9>, <&cpg CPG_MOD 0x1aa>; clock-names = "aclk", "pclk", "vclk"; resets = <&cpg 0x11e>; power-domains = <&cpg>; }; vspd0: vsp@16480000 { compatible = "renesas,r9a09g047-vsp2", "renesas,r9a07g044-vsp2"; reg = <0 0x16480000 0 0x10000>; interrupts = ; clocks = <&cpg CPG_MOD 0xed>, <&cpg CPG_MOD 0xee>, <&cpg CPG_MOD 0xef>; clock-names = "aclk", "pclk", "vclk"; resets = <&cpg 0xdc>; power-domains = <&cpg>; renesas,fcp = <&fcpvd0>; }; vspd1: vsp@164b0000 { compatible = "renesas,r9a09g047-vsp2", "renesas,r9a07g044-vsp2"; reg = <0 0x164b0000 0 0x10000>; interrupts = ; clocks = <&cpg CPG_MOD 0x1a8>, <&cpg CPG_MOD 0x1a9>, <&cpg CPG_MOD 0x1aa>; clock-names = "aclk", "pclk", "vclk"; resets = <&cpg 0x11e>; power-domains = <&cpg>; renesas,fcp = <&fcpvd1>; }; }; stmmac_axi_setup: stmmac-axi-config { snps,lpi_en; snps,wr_osr_lmt = <0xf>; snps,rd_osr_lmt = <0xf>; snps,blen = <16 8 4 0 0 0 0>; }; thermal-zones { cpu-thermal { polling-delay = <1000>; polling-delay-passive = <250>; thermal-sensors = <&tsu>; cooling-maps { map0 { trip = <&target>; cooling-device = <&cpu0 0 3>, <&cpu1 0 3>, <&cpu2 0 3>, <&cpu3 0 3>; contribution = <1024>; }; }; trips { target: trip-point { temperature = <95000>; hysteresis = <1000>; type = "passive"; }; sensor_crit: sensor-crit { temperature = <120000>; hysteresis = <1000>; type = "critical"; }; }; }; }; timer { compatible = "arm,armv8-timer"; interrupts = , , , , ; interrupt-names = "sec-phys", "phys", "virt", "hyp-phys", "hyp-virt"; }; };