From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
To: Fabien Parent <fparent@baylibre.com>,
robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org,
vkoul@kernel.org, qii.wang@mediatek.com, matthias.bgg@gmail.com,
jic23@kernel.org, chaotian.jing@mediatek.com,
ulf.hansson@linaro.org, srinivas.kandagatla@linaro.org,
chunfeng.yun@mediatek.com, broonie@kernel.org,
wim@linux-watchdog.org, linux@roeck-us.net
Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
dmaengine@vger.kernel.org, linux-i2c@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-mediatek@lists.infradead.org, linux-iio@vger.kernel.org,
linux-mmc@vger.kernel.org, linux-phy@lists.infradead.org,
linux-serial@vger.kernel.org, linux-spi@vger.kernel.org,
linux-usb@vger.kernel.org, linux-watchdog@vger.kernel.org
Subject: Re: [PATCH 16/17] arm64: dts: mediatek: add mt8365 device-tree
Date: Wed, 1 Jun 2022 12:37:23 +0200 [thread overview]
Message-ID: <2f7be7c4-9e61-7285-803b-979af6d28c11@linaro.org> (raw)
In-Reply-To: <20220531135026.238475-17-fparent@baylibre.com>
On 31/05/2022 15:50, Fabien Parent wrote:
> Add device-tree for the MT8365 SoC. More information can be found
> about that SoC at the following address:
> https://www.mediatek.com/products/aiot/i350-mt8365
>
> Signed-off-by: Fabien Parent <fparent@baylibre.com>
> ---
> arch/arm64/boot/dts/mediatek/mt8365.dtsi | 1047 ++++++++++++++++++++++
> 1 file changed, 1047 insertions(+)
> create mode 100644 arch/arm64/boot/dts/mediatek/mt8365.dtsi
>
> diff --git a/arch/arm64/boot/dts/mediatek/mt8365.dtsi b/arch/arm64/boot/dts/mediatek/mt8365.dtsi
> new file mode 100644
> index 000000000000..e22b1d259418
> --- /dev/null
> +++ b/arch/arm64/boot/dts/mediatek/mt8365.dtsi
> @@ -0,0 +1,1047 @@
> +// SPDX-License-Identifier: (GPL-2.0 OR MIT)
> +/*
> + * Copyright (c) 2018 MediaTek Inc.
> + */
> +
> +#include <dt-bindings/clock/mediatek,mt8365-clk.h>
> +#include <dt-bindings/interrupt-controller/arm-gic.h>
> +#include <dt-bindings/interrupt-controller/irq.h>
> +#include <dt-bindings/phy/phy.h>
> +#include <dt-bindings/power/mt8365-power.h>
> +#include <dt-bindings/memory/mt8365-larb-port.h>
> +#include <dt-bindings/thermal/thermal.h>
> +
> +/ {
> + compatible = "mediatek,mt8365";
> + interrupt-parent = <&sysirq>;
> + #address-cells = <2>;
> + #size-cells = <2>;
> +
> + aliases {
> + ovl0 = &ovl0;
> + rdma0 = &rdma0;
> + rdma1 = &rdma1;
> + color0 = &color0;
> + ccorr0 = &ccorr0;
> + aal0 = &aal0;
> + gamma0 = &gamma0;
> + dither0 = &dither0;
> + dsi0 = &dsi0;
> + dpi0 = &dpi0;
> + };
> +
> + cpus: cpus {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + cpu-map {
> + cluster0: cluster0 {
> + core0 {
> + cpu = <&cpu0>;
> + };
> + core1 {
> + cpu = <&cpu1>;
> + };
> + core2 {
> + cpu = <&cpu2>;
> + };
> + core3 {
> + cpu = <&cpu3>;
> + };
> + };
> + };
> +
> + cpu0: cpu@0 {
> + device_type = "cpu";
> + compatible = "arm,cortex-a53";
> + reg = <0x0>;
> + clock-frequency = <1600000000>;
> + clocks = <&mcucfg CLK_MCU_BUS_SEL>,
> + <&apmixedsys CLK_APMIXED_MAINPLL>;
> + clock-names = "cpu", "intermediate";
> + operating-points-v2 = <&cluster0_opp>;
> + #cooling-cells = <2>;
> + enable-method = "psci";
> + };
> +
> + cpu1: cpu@1 {
> + device_type = "cpu";
> + compatible = "arm,cortex-a53";
> + reg = <0x1>;
> + clock-frequency = <1600000000>;
> + clocks = <&mcucfg CLK_MCU_BUS_SEL>,
> + <&apmixedsys CLK_APMIXED_MAINPLL>;
> + clock-names = "cpu", "intermediate", "armpll";
> + operating-points-v2 = <&cluster0_opp>;
> + #cooling-cells = <2>;
> + enable-method = "psci";
> + };
> +
> + cpu2: cpu@2 {
> + device_type = "cpu";
> + compatible = "arm,cortex-a53";
> + reg = <0x2>;
> + clock-frequency = <1600000000>;
> + clocks = <&mcucfg CLK_MCU_BUS_SEL>,
> + <&apmixedsys CLK_APMIXED_MAINPLL>;
> + clock-names = "cpu", "intermediate", "armpll";
> + operating-points-v2 = <&cluster0_opp>;
> + #cooling-cells = <2>;
> + enable-method = "psci";
> + };
> +
> + cpu3: cpu@3 {
> + device_type = "cpu";
> + compatible = "arm,cortex-a53";
> + reg = <0x3>;
> + clock-frequency = <1600000000>;
> + clocks = <&mcucfg CLK_MCU_BUS_SEL>,
> + <&apmixedsys CLK_APMIXED_MAINPLL>;
> + clock-names = "cpu", "intermediate", "armpll";
> + operating-points-v2 = <&cluster0_opp>;
> + #cooling-cells = <2>;
> + enable-method = "psci";
> + };
> + };
> +
> + cluster0_opp: opp-table-0 {
> + compatible = "operating-points-v2";
> + opp-shared;
> + opp-850000000 {
> + opp-hz = /bits/ 64 <850000000>;
> + opp-microvolt = <650000>;
> + };
> + opp-918000000 {
> + opp-hz = /bits/ 64 <918000000>;
> + opp-microvolt = <668750>;
> + };
> + opp-987000000 {
> + opp-hz = /bits/ 64 <987000000>;
> + opp-microvolt = <687500>;
> + };
> + opp-1056000000 {
> + opp-hz = /bits/ 64 <1056000000>;
> + opp-microvolt = <706250>;
> + };
> + opp-1125000000 {
> + opp-hz = /bits/ 64 <1125000000>;
> + opp-microvolt = <725000>;
> + };
> + opp-1216000000 {
> + opp-hz = /bits/ 64 <1216000000>;
> + opp-microvolt = <750000>;
> + };
> + opp-1308000000 {
> + opp-hz = /bits/ 64 <1308000000>;
> + opp-microvolt = <775000>;
> + };
> + opp-1400000000 {
> + opp-hz = /bits/ 64 <1400000000>;
> + opp-microvolt = <800000>;
> + };
> + opp-1466000000 {
> + opp-hz = /bits/ 64 <1466000000>;
> + opp-microvolt = <825000>;
> + };
> + opp-1533000000 {
> + opp-hz = /bits/ 64 <1533000000>;
> + opp-microvolt = <850000>;
> + };
> + opp-1633000000 {
> + opp-hz = /bits/ 64 <1633000000>;
> + opp-microvolt = <887500>;
> + };
> + opp-1700000000 {
> + opp-hz = /bits/ 64 <1700000000>;
> + opp-microvolt = <912500>;
> + };
> + opp-1767000000 {
> + opp-hz = /bits/ 64 <1767000000>;
> + opp-microvolt = <937500>;
> + };
> + opp-1834000000 {
> + opp-hz = /bits/ 64 <1834000000>;
> + opp-microvolt = <962500>;
> + };
> + opp-1917000000 {
> + opp-hz = /bits/ 64 <1917000000>;
> + opp-microvolt = <993750>;
> + };
> + opp-2001000000 {
> + opp-hz = /bits/ 64 <2001000000>;
> + opp-microvolt = <1025000>;
> + };
> + };
> +
> + clk26m: oscillator {
> + compatible = "fixed-clock";
> + #clock-cells = <0>;
> + clock-frequency = <26000000>;
This does not look like property of a SoC. Are you sure MT8365 SoC has
this clock (not the board)?
> + clock-output-names = "clk26m";
> + };
> +
> + psci {
> + compatible = "arm,psci-1.0";
> + method = "smc";
> + };
> +
> + reserved-memory {
> + #address-cells = <2>;
> + #size-cells = <2>;
> + ranges;
> +
> + /* 128 KiB reserved for ARM Trusted Firmware (BL31) */
> + bl31_secmon_reserved: secmon@43000000 {
> + no-map;
> + reg = <0 0x43000000 0 0x20000>;
> + };
> + };
> +
> + soc {
> + #address-cells = <2>;
> + #size-cells = <2>;
> + compatible = "simple-bus";
> + ranges;
> +
> + gic: interrupt-controller@c000000 {
> + compatible = "arm,gic-v3";
> + #interrupt-cells = <4>;
Why do you have four cells here (and passing 0 as interrupt)?
> + interrupt-parent = <&gic>;
> + interrupt-controller;
> + reg = <0 0x0c000000 0 0x80000>,
> + <0 0x0c080000 0 0x80000>;
> +
> + interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH 0>;
> + };
> +
> + topckgen: syscon@10000000 {
> + compatible = "mediatek,mt8365-topckgen", "syscon";
> + reg = <0 0x10000000 0 0x1000>;
> + #clock-cells = <1>;
> + };
> +
> + infracfg: syscon@10001000 {
> + compatible = "mediatek,mt8365-infracfg", "syscon";
> + reg = <0 0x10001000 0 0x1000>;
> + #clock-cells = <1>;
> + };
> +
> + pericfg: syscon@10003000 {
> + compatible = "mediatek,mt8365-pericfg", "syscon";
> + reg = <0 0x10003000 0 0x1000>;
> + #clock-cells = <1>;
> + };
> +
> + syscfg_pctl: syscfg-pctl@10005000 {
This is I guess also syscon, like other nodes?
> + compatible = "syscon";
You need specific compatible. Please run `make dtbs_check` and fix the
errors.
> + reg = <0 0x10005000 0 0x1000>;
> + };
> +
> + scpsys: syscon@10006000 {
> + compatible = "syscon", "simple-mfd";
You need specific compatible.
> + reg = <0 0x10006000 0 0x1000>;
> + #power-domain-cells = <1>;
This is definitely wrong now. It's not a simple-mfd device, so please do
not use that property.
> +
> + /* System Power Manager */
> + spm: power-controller {
> + compatible = "mediatek,mt8365-power-controller";
> + #address-cells = <1>;
> + #size-cells = <0>;
> + #power-domain-cells = <1>;
> +
> + /* power domains of the SoC */
The comment suggests you will later add here power domains not for the
SoC. If that's not true, just skip the comment.
> + power-domain@MT8365_POWER_DOMAIN_MM {
> + reg = <MT8365_POWER_DOMAIN_MM>;
> + clocks = <&topckgen CLK_TOP_MM_SEL>,
> + <&mmsys CLK_MM_MM_SMI_COMMON>,
> + <&mmsys CLK_MM_MM_SMI_COMM0>,
> + <&mmsys CLK_MM_MM_SMI_COMM1>,
> + <&mmsys CLK_MM_MM_SMI_LARB0>;
> + clock-names = "mm", "mm-0", "mm-1",
> + "mm-2", "mm-3";
> + #power-domain-cells = <0>;
> + mediatek,infracfg = <&infracfg>;
> + mediatek,infracfg_nao = <&infracfg_nao>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + power-domain@MT8365_POWER_DOMAIN_CAM {
> + reg = <MT8365_POWER_DOMAIN_CAM>;
> + clocks = <&camsys CLK_CAM_LARB2>,
> + <&camsys CLK_CAM_SENIF>,
> + <&camsys CLK_CAMSV0>,
> + <&camsys CLK_CAMSV1>,
> + <&camsys CLK_CAM_FDVT>,
> + <&camsys CLK_CAM_WPE>;
> + clock-names = "cam-0", "cam-1",
> + "cam-2", "cam-3",
> + "cam-4", "cam-5";
> + #power-domain-cells = <0>;
> + mediatek,infracfg = <&infracfg>;
> + mediatek,smi = <&smi_common>;
> + };
> +
> + power-domain@MT8365_POWER_DOMAIN_VDEC {
> + reg = <MT8365_POWER_DOMAIN_VDEC>;
> + #power-domain-cells = <0>;
> + mediatek,smi = <&smi_common>;
> + };
> +
> + power-domain@MT8365_POWER_DOMAIN_VENC {
> + reg = <MT8365_POWER_DOMAIN_VENC>;
> + #power-domain-cells = <0>;
> + mediatek,smi = <&smi_common>;
> + };
> +
> + power-domain@MT8365_POWER_DOMAIN_APU {
> + reg = <MT8365_POWER_DOMAIN_APU>;
> + clocks = <&infracfg CLK_IFR_APU_AXI>,
> + <&apu CLK_APU_IPU_CK>,
> + <&apu CLK_APU_AXI>,
> + <&apu CLK_APU_JTAG>,
> + <&apu CLK_APU_IF_CK>,
> + <&apu CLK_APU_EDMA>,
> + <&apu CLK_APU_AHB>;
> + clock-names = "apu", "apu-0",
> + "apu-1", "apu-2",
> + "apu-3", "apu-4",
> + "apu-5";
> + #power-domain-cells = <0>;
> + mediatek,infracfg = <&infracfg>;
> + mediatek,smi = <&smi_common>;
> + };
> + };
> +
> + power-domain@MT8365_POWER_DOMAIN_CONN {
> + reg = <MT8365_POWER_DOMAIN_CONN>;
> + clocks = <&topckgen CLK_TOP_CONN_32K>,
> + <&topckgen CLK_TOP_CONN_26M>;
> + clock-names = "conn", "conn1";
> + #power-domain-cells = <0>;
> + mediatek,infracfg = <&infracfg>;
> + };
> +
> + power-domain@MT8365_POWER_DOMAIN_MFG {
> + reg = <MT8365_POWER_DOMAIN_MFG>;
> + clocks = <&topckgen CLK_TOP_MFG_SEL>;
> + clock-names = "mfg";
> + #power-domain-cells = <0>;
> + mediatek,infracfg = <&infracfg>;
> + };
> +
> + power-domain@MT8365_POWER_DOMAIN_AUDIO {
> + reg = <MT8365_POWER_DOMAIN_AUDIO>;
> + clocks = <&topckgen CLK_TOP_AUD_INTBUS_SEL>,
> + <&infracfg CLK_IFR_AUDIO>,
> + <&infracfg CLK_IFR_AUD_26M_BK>;
> + clock-names = "audio", "audio1", "audio2";
> + #power-domain-cells = <0>;
> + mediatek,infracfg = <&infracfg>;
> + };
> +
> + power-domain@MT8365_POWER_DOMAIN_DSP {
> + reg = <MT8365_POWER_DOMAIN_DSP>;
> + clocks = <&topckgen CLK_TOP_DSP_SEL>,
> + <&topckgen CLK_TOP_DSP_26M>;
> + clock-names = "dsp", "dsp1";
> + #power-domain-cells = <0>;
> + mediatek,infracfg = <&infracfg>;
> + };
> + };
> + };
> +
> + watchdog: watchdog@10007000 {
> + compatible = "mediatek,mt8365-wdt",
> + "mediatek,mt6589-wdt";
> + reg = <0 0x10007000 0 0x100>;
> + #reset-cells = <1>;
> + };
> +
> + gpt: apxgpt@10008000 {
Generic node names, so "timer"
> + compatible = "mediatek,mt8365-timer",
> + "mediatek,mt6577-timer";
> + reg = <0 0x10008000 0 0x1000>;
> + interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_LOW>;
> + clocks = <&topckgen CLK_TOP_SYS_26M_D2>;
> + clock-names = "clk13m";
> + };
> +
> + pio: pinctrl@1000b000 {
> + compatible = "mediatek,mt8365-pinctrl";
> + reg = <0 0x1000b000 0 0x1000>;
> + mediatek,pctl-regmap = <&syscfg_pctl>;
> + pins-are-numbered;
> + gpio-controller;
> + #gpio-cells = <2>;
> + interrupt-controller;
> + #interrupt-cells = <2>;
> + interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
> + };
> +
> + apmixedsys: syscon@1000c000 {
> + compatible = "mediatek,mt8365-apmixedsys", "syscon";
> + reg = <0 0x1000c000 0 0x1000>;
> + #clock-cells = <1>;
> + };
> +
> + pwrap: pwrap@1000d000 {
> + compatible = "mediatek,mt8365-pwrap";
> + reg = <0 0x1000d000 0 0x1000>;
> + reg-names = "pwrap";
> + interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&infracfg CLK_IFR_PWRAP_SPI>,
> + <&infracfg CLK_IFR_PMIC_AP>,
> + <&infracfg CLK_IFR_PWRAP_SYS>,
> + <&infracfg CLK_IFR_PWRAP_TMR>;
> + clock-names = "spi", "wrap", "sys", "tmr";
> + };
> +
> + keypad: kp@10010000 {
s/kp/keypad/
> + compatible = "mediatek,mt6779-keypad";
> + reg = <0 0x10010000 0 0x1000>;
> + wakeup-source;
> + interrupts = <GIC_SPI 124 IRQ_TYPE_EDGE_FALLING>;
> + clocks = <&clk26m>;
> + clock-names = "kpd";
> + status = "disabled";
> + };
> +
> + mcucfg: syscon@10200000 {
> + compatible = "mediatek,mt8365-mcucfg", "syscon";
> + reg = <0 0x10200000 0 0x2000>;
> + #clock-cells = <1>;
> + };
> +
> + sysirq: intpol-controller@10200a80 {
interrupt-controller
> + compatible = "mediatek,mt8365-sysirq",
> + "mediatek,mt6577-sysirq";
> + interrupt-controller;
> + #interrupt-cells = <3>;
> + interrupt-parent = <&gic>;
> + reg = <0 0x10200a80 0 0x20>;
> + };
> +
> + iommu: iommu@10205000 {
> + compatible = "mediatek,mt8365-m4u";
> + reg = <0 0x10205000 0 0x1000>;
> + interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_LOW>;
> + mediatek,larbs = <&larb0>, <&larb1>, <&larb2>, <&larb3>;
> + #iommu-cells = <1>;
> + };
> +
> + infracfg_nao: infracfg-nao@1020e000 {
Other nodes are named syscon
> + compatible = "syscon";
No, syscon cannot be alone.
> + reg = <0 0x1020e000 0 0x1000>;
> + };
> +
> + rng: rng@1020f000 {
> + compatible = "mediatek,mt8365-rng",
> + "mediatek,mt7623-rng";
> + reg = <0 0x1020f000 0 0x100>;
> + clocks = <&infracfg CLK_IFR_TRNG>;
> + clock-names = "rng";
> + };
> +
> + apdma: dma-controller@11000280 {
> + compatible = "mediatek,mt8365-uart-dma",
> + "mediatek,mt6577-uart-dma";
> + reg = <0 0x11000280 0 0x80>,
> + <0 0x11000300 0 0x80>,
> + <0 0x11000380 0 0x80>,
> + <0 0x11000400 0 0x80>,
> + <0 0x11000580 0 0x80>,
> + <0 0x11000600 0 0x80>;
> + interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_LOW>,
> + <GIC_SPI 46 IRQ_TYPE_LEVEL_LOW>,
> + <GIC_SPI 47 IRQ_TYPE_LEVEL_LOW>,
> + <GIC_SPI 48 IRQ_TYPE_LEVEL_LOW>,
> + <GIC_SPI 51 IRQ_TYPE_LEVEL_LOW>,
> + <GIC_SPI 52 IRQ_TYPE_LEVEL_LOW>;
> + dma-requests = <6>;
> + clocks = <&infracfg CLK_IFR_AP_DMA>;
> + clock-names = "apdma";
> + #dma-cells = <1>;
> + };
> +
> + auxadc: adc@11001000 {
> + compatible = "mediatek,mt8365-auxadc",
> + "mediatek,mt8173-auxadc";
> + reg = <0 0x11001000 0 0x1000>;
> + clocks = <&infracfg CLK_IFR_AUXADC>;
> + clock-names = "main";
> + #io-channel-cells = <1>;
> + };
> +
> + uart0: serial@11002000 {
> + compatible = "mediatek,mt8365-uart",
> + "mediatek,mt6577-uart";
> + reg = <0 0x11002000 0 0x1000>;
> + interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_LOW>;
> + clocks = <&clk26m>, <&infracfg CLK_IFR_UART0>;
> + clock-names = "baud", "bus";
> + dmas = <&apdma 0
> + &apdma 1>;
You need to split these into two phandles.
> + dma-names = "tx", "rx";
> + status = "disabled";
> + };
> +
> + uart1: serial@11003000 {
> + compatible = "mediatek,mt8365-uart",
> + "mediatek,mt6577-uart";
> + reg = <0 0x11003000 0 0x1000>;
> + interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_LOW>;
> + clocks = <&clk26m>, <&infracfg CLK_IFR_UART1>;
> + clock-names = "baud", "bus";
> + dmas = <&apdma 2
> + &apdma 3>;
Ditto.
> + dma-names = "tx", "rx";
> + status = "disabled";
> + };
> +
> + uart2: serial@11004000 {
> + compatible = "mediatek,mt8365-uart",
> + "mediatek,mt6577-uart";
> + reg = <0 0x11004000 0 0x1000>;
> + interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_LOW>;
> + clocks = <&clk26m>, <&infracfg CLK_IFR_UART2>;
> + clock-names = "baud", "bus";
> + dmas = <&apdma 4
> + &apdma 5>;
> + dma-names = "tx", "rx";
> + status = "disabled";
> + };
> +
> + pwm: pwm@11006000 {
> + compatible = "mediatek,mt8365-pwm";
> + reg = <0 0x11006000 0 0x1000>;
> + #pwm-cells = <2>;
> + interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_LOW>;
> + clocks = <&infracfg CLK_IFR_PWM_HCLK>,
> + <&infracfg CLK_IFR_PWM>,
> + <&infracfg CLK_IFR_PWM1>,
> + <&infracfg CLK_IFR_PWM2>,
> + <&infracfg CLK_IFR_PWM3>;
> + clock-names = "top", "main", "pwm1", "pwm2", "pwm3";
> + };
> +
> + i2c0: i2c@11007000 {
> + compatible = "mediatek,mt8365-i2c",
> + "mediatek,mt8168-i2c";
> + reg = <0 0x11007000 0 0xa0>,
> + <0 0x11000080 0 0x80>;
> + interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_LOW>;
> + clock-div = <1>;
> + clocks = <&infracfg CLK_IFR_I2C0_AXI>,
> + <&infracfg CLK_IFR_AP_DMA>;
> + clock-names = "main", "dma";
> + #address-cells = <1>;
> + #size-cells = <0>;
> + status = "disabled";
> + };
> +
> + i2c1: i2c@11008000 {
> + compatible = "mediatek,mt8365-i2c",
> + "mediatek,mt8168-i2c";
> + reg = <0 0x11008000 0 0xa0>,
> + <0 0x11000100 0 0x80>;
> + interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_LOW>;
> + clock-div = <1>;
> + clocks = <&infracfg CLK_IFR_I2C1_AXI>,
> + <&infracfg CLK_IFR_AP_DMA>;
> + clock-names = "main", "dma";
> + #address-cells = <1>;
> + #size-cells = <0>;
> + status = "disabled";
> + };
> +
> + i2c2: i2c@11009000 {
> + compatible = "mediatek,mt8365-i2c",
> + "mediatek,mt8168-i2c";
> + reg = <0 0x11009000 0 0xa0>,
> + <0 0x11000180 0 0x80>;
> + interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_LOW>;
> + clock-div = <1>;
> + clocks = <&infracfg CLK_IFR_I2C2_AXI>,
> + <&infracfg CLK_IFR_AP_DMA>;
> + clock-names = "main", "dma";
> + #address-cells = <1>;
> + #size-cells = <0>;
> + status = "disabled";
> + };
> +
> + spi: spi@1100a000 {
> + compatible = "mediatek,mt8365-spi",
> + "mediatek,mt7622-spi";
> + #address-cells = <1>;
> + #size-cells = <0>;
> + reg = <0 0x1100a000 0 0x100>;
Reg goes after compatible.
> + interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_LOW>;
> + clocks = <&topckgen CLK_TOP_UNIVPLL2_D4>,
> + <&topckgen CLK_TOP_SPI_SEL>,
> + <&infracfg CLK_IFR_SPI0>;
> + clock-names = "parent-clk", "sel-clk", "spi-clk";
> + status = "disabled";
> + };
> +
> + thermal: thermal@1100b000 {
> + compatible = "mediatek,mt8365-thermal";
> + reg = <0 0x1100b000 0 0x1000>;
> + interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_LOW>;
> + clocks = <&infracfg CLK_IFR_THERM>,
> + <&infracfg CLK_IFR_AUXADC>;
> + clock-names = "therm", "auxadc";
> + mediatek,auxadc = <&auxadc>;
> + mediatek,apmixedsys = <&apmixedsys>;
> + nvmem-cells = <&thermal_calibration>;
> + nvmem-cell-names = "calibration-data";
> + #thermal-sensor-cells = <1>;
> + };
> +
> + disp_pwm: disp-pwm@1100e000 {
Generic node names, so "pwm"
> + compatible = "mediatek,mt8365-disp-pwm",
> + "mediatek,mt8183-disp-pwm";
> + reg = <0 0x1100e000 0 0x1000>;
> + #pwm-cells = <2>;
> + clocks = <&topckgen CLK_TOP_DISP_PWM_SEL>,
> + <&infracfg CLK_IFR_DISP_PWM>;
> + clock-names = "main", "mm";
> + power-domains = <&spm MT8365_POWER_DOMAIN_MM>;
> + status = "disabled";
> + };
> +
> + i2c3: i2c@1100f000 {
> + compatible = "mediatek,mt8365-i2c",
> + "mediatek,mt8168-i2c";
> + reg = <0 0x1100f000 0 0xa0>,
> + <0 0x11000200 0 0x80>;
> + interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_LOW>;
> + clock-div = <1>;
> + clocks = <&infracfg CLK_IFR_I2C3_AXI>,
> + <&infracfg CLK_IFR_AP_DMA>;
> + clock-names = "main", "dma";
> + #address-cells = <1>;
> + #size-cells = <0>;
> + status = "disabled";
> + };
> +
> + ssusb: usb@11201000 {
> + compatible = "mediatek,mt8365-mtu3", "mediatek,mtu3";
> + reg = <0 0x11201000 0 0x2e00>,
> + <0 0x11203e00 0 0x0100>;
> + reg-names = "mac", "ippc";
> + interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_LOW>;
> + phys = <&u2port0 PHY_TYPE_USB2>,
> + <&u2port1 PHY_TYPE_USB2>;
> + clocks = <&topckgen CLK_TOP_SSUSB_TOP_CK_EN>,
> + <&infracfg CLK_IFR_SSUSB_REF>,
> + <&infracfg CLK_IFR_SSUSB_SYS>,
> + <&infracfg CLK_IFR_ICUSB>;
> + clock-names = "sys_ck", "ref_ck", "mcu_ck",
> + "dma_ck";
> + #address-cells = <2>;
> + #size-cells = <2>;
> + ranges;
> + status = "disabled";
> +
> + usb_host: usb@11200000 {
> + compatible = "mediatek,mt8365-xhci",
> + "mediatek,mtk-xhci";
> + reg = <0 0x11200000 0 0x1000>;
> + reg-names = "mac";
> + interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_LOW>;
> + clocks = <&topckgen CLK_TOP_SSUSB_TOP_CK_EN>,
> + <&infracfg CLK_IFR_SSUSB_REF>,
> + <&infracfg CLK_IFR_SSUSB_SYS>,
> + <&infracfg CLK_IFR_ICUSB>,
> + <&infracfg CLK_IFR_SSUSB_XHCI>;
> + clock-names = "sys_ck", "ref_ck", "mcu_ck",
> + "dma_ck", "xhci_ck";
> + status = "disabled";
> + };
> + };
> +
> + mmc0: mmc@11230000 {
> + compatible = "mediatek,mt8365-mmc", "mediatek,mt8183-mmc";
> + reg = <0 0x11230000 0 0x1000>,
> + <0 0x11cd0000 0 0x1000>;
> + interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_LOW>;
> + clocks = <&topckgen CLK_TOP_MSDC50_0_SEL>,
> + <&infracfg CLK_IFR_MSDC0_HCLK>,
> + <&infracfg CLK_IFR_MSDC0_SRC>;
> + clock-names = "source", "hclk", "source_cg";
> + status = "disabled";
> + };
> +
> + mmc1: mmc@11240000 {
> + compatible = "mediatek,mt8365-mmc", "mediatek,mt8183-mmc";
> + reg = <0 0x11240000 0 0x1000>,
> + <0 0x11c90000 0 0x1000>;
> + interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_LOW>;
> + clocks = <&topckgen CLK_TOP_MSDC30_1_SEL>,
> + <&infracfg CLK_IFR_MSDC1_HCLK>,
> + <&infracfg CLK_IFR_MSDC1_SRC>;
> + clock-names = "source", "hclk", "source_cg";
> + status = "disabled";
> + };
> +
> + ethernet: ethernet@112a0000 {
> + compatible = "mediatek,mt8365-eth";
> + reg = <0 0x112a0000 0 0x1000>;
> + mediatek,pericfg = <&infracfg>;
> + interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&topckgen CLK_TOP_ETH_SEL>,
> + <&infracfg CLK_IFR_NIC_AXI>,
> + <&infracfg CLK_IFR_NIC_SLV_AXI>;
> + clock-names = "core", "reg", "trans";
> + status = "disabled";
> + };
> +
> + mipi_tx0: dsi-phy@11c00000 {
> + compatible = "mediatek,mt8365-mipi-tx",
> + "mediatek,mt8183-mipi-tx";
> + reg = <0 0x11c00000 0 0x800>;
> + clocks = <&clk26m>;
> + clock-names = "ref_clk";
> + #clock-cells = <0>;
> + #phy-cells = <0>;
> + clock-output-names = "mipi_tx0_pll";
> + };
> +
> + efuse: efuse@11c50000 {
> + compatible = "mediatek,mt8365-efuse", "mediatek,efuse";
> + reg = <0 0x11c50000 0 0x1000>;
> + #address-cells = <1>;
> + #size-cells = <1>;
> +
> + thermal_calibration: calib@180 {
> + reg = <0x180 0xc>;
> + };
> + };
> +
> + u3phy: t-phy@11cc0000 {
s/t-phy/phy/
> + compatible = "mediatek,mt8365-tphy",
> + "mediatek,generic-tphy-v2";
> + #address-cells = <2>;
> + #phy-cells = <1>;
address-cells, then size, then phy
> + #size-cells = <2>;
> + ranges;
> + status = "okay";
No need for status ok.
> +
> + u2port0: usb-phy@11cc0000 {
> + reg = <0 0x11cc0000 0 0x400>;
> + clocks = <&topckgen CLK_TOP_SSUSB_PHY_CK_EN>,
> + <&topckgen CLK_TOP_USB20_48M_EN>;
> + clock-names = "ref", "da_ref";
> + #phy-cells = <1>;
> + status = "okay";
Ditto
> + };
> +
> + u2port1: usb-phy@11cc1000 {
> + reg = <0 0x11cc1000 0 0x400>;
> + clocks = <&topckgen CLK_TOP_SSUSB_PHY_CK_EN>,
> + <&topckgen CLK_TOP_USB20_48M_EN>;
> + clock-names = "ref", "da_ref";
> + #phy-cells = <1>;
> + status = "okay";
> + };
> + };
> +
> + mfgcfg: syscon@13000000 {
> + compatible = "mediatek,mt8365-mfgcfg", "syscon";
> + reg = <0 0x13000000 0 0x1000>;
> + #clock-cells = <1>;
> + };
> +
> + mmsys: syscon@14000000 {
> + compatible = "mediatek,mt8365-mmsys", "syscon";
> + reg = <0 0x14000000 0 0x1000>;
> + #clock-cells = <1>;
> + };
> +
> + mutex: mutex@14001000 {
> + compatible = "mediatek,mt8365-disp-mutex";
> + reg = <0 0x14001000 0 0x1000>;
> + interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_LOW>;
> + power-domains = <&spm MT8365_POWER_DOMAIN_MM>;
> + };
> +
> + smi_common: smi@14002000 {
s/smi/memory-controller/ in node name?
> + compatible = "mediatek,mt8365-smi-common",
> + "mediatek,mt8186-smi-common";
> + reg = <0 0x14002000 0 0x1000>;
> + clocks = <&mmsys CLK_MM_MM_SMI_COMMON>,
> + <&mmsys CLK_MM_MM_SMI_COMMON>,
> + <&mmsys CLK_MM_MM_SMI_COMM0>,
> + <&mmsys CLK_MM_MM_SMI_COMM1>;
> + clock-names = "apb", "smi", "gals0", "gals1";
> + power-domains = <&spm MT8365_POWER_DOMAIN_MM>;
> + };
> +
> + larb0: larb@14003000 {
The same?
> + compatible = "mediatek,mt8365-smi-larb",
> + "mediatek,mt8186-smi-larb";
> + reg = <0 0x14003000 0 0x1000>;
> + mediatek,smi = <&smi_common>;
> + clocks = <&mmsys CLK_MM_MM_SMI_LARB0>,
> + <&mmsys CLK_MM_MM_SMI_LARB0>;
> + clock-names = "apb", "smi";
> + power-domains = <&spm MT8365_POWER_DOMAIN_MM>;
Best regards,
Krzysztof
WARNING: multiple messages have this Message-ID (diff)
From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
To: Fabien Parent <fparent@baylibre.com>,
robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org,
vkoul@kernel.org, qii.wang@mediatek.com, matthias.bgg@gmail.com,
jic23@kernel.org, chaotian.jing@mediatek.com,
ulf.hansson@linaro.org, srinivas.kandagatla@linaro.org,
chunfeng.yun@mediatek.com, broonie@kernel.org,
wim@linux-watchdog.org, linux@roeck-us.net
Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
dmaengine@vger.kernel.org, linux-i2c@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-mediatek@lists.infradead.org, linux-iio@vger.kernel.org,
linux-mmc@vger.kernel.org, linux-phy@lists.infradead.org,
linux-serial@vger.kernel.org, linux-spi@vger.kernel.org,
linux-usb@vger.kernel.org, linux-watchdog@vger.kernel.org
Subject: Re: [PATCH 16/17] arm64: dts: mediatek: add mt8365 device-tree
Date: Wed, 1 Jun 2022 12:37:23 +0200 [thread overview]
Message-ID: <2f7be7c4-9e61-7285-803b-979af6d28c11@linaro.org> (raw)
In-Reply-To: <20220531135026.238475-17-fparent@baylibre.com>
On 31/05/2022 15:50, Fabien Parent wrote:
> Add device-tree for the MT8365 SoC. More information can be found
> about that SoC at the following address:
> https://www.mediatek.com/products/aiot/i350-mt8365
>
> Signed-off-by: Fabien Parent <fparent@baylibre.com>
> ---
> arch/arm64/boot/dts/mediatek/mt8365.dtsi | 1047 ++++++++++++++++++++++
> 1 file changed, 1047 insertions(+)
> create mode 100644 arch/arm64/boot/dts/mediatek/mt8365.dtsi
>
> diff --git a/arch/arm64/boot/dts/mediatek/mt8365.dtsi b/arch/arm64/boot/dts/mediatek/mt8365.dtsi
> new file mode 100644
> index 000000000000..e22b1d259418
> --- /dev/null
> +++ b/arch/arm64/boot/dts/mediatek/mt8365.dtsi
> @@ -0,0 +1,1047 @@
> +// SPDX-License-Identifier: (GPL-2.0 OR MIT)
> +/*
> + * Copyright (c) 2018 MediaTek Inc.
> + */
> +
> +#include <dt-bindings/clock/mediatek,mt8365-clk.h>
> +#include <dt-bindings/interrupt-controller/arm-gic.h>
> +#include <dt-bindings/interrupt-controller/irq.h>
> +#include <dt-bindings/phy/phy.h>
> +#include <dt-bindings/power/mt8365-power.h>
> +#include <dt-bindings/memory/mt8365-larb-port.h>
> +#include <dt-bindings/thermal/thermal.h>
> +
> +/ {
> + compatible = "mediatek,mt8365";
> + interrupt-parent = <&sysirq>;
> + #address-cells = <2>;
> + #size-cells = <2>;
> +
> + aliases {
> + ovl0 = &ovl0;
> + rdma0 = &rdma0;
> + rdma1 = &rdma1;
> + color0 = &color0;
> + ccorr0 = &ccorr0;
> + aal0 = &aal0;
> + gamma0 = &gamma0;
> + dither0 = &dither0;
> + dsi0 = &dsi0;
> + dpi0 = &dpi0;
> + };
> +
> + cpus: cpus {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + cpu-map {
> + cluster0: cluster0 {
> + core0 {
> + cpu = <&cpu0>;
> + };
> + core1 {
> + cpu = <&cpu1>;
> + };
> + core2 {
> + cpu = <&cpu2>;
> + };
> + core3 {
> + cpu = <&cpu3>;
> + };
> + };
> + };
> +
> + cpu0: cpu@0 {
> + device_type = "cpu";
> + compatible = "arm,cortex-a53";
> + reg = <0x0>;
> + clock-frequency = <1600000000>;
> + clocks = <&mcucfg CLK_MCU_BUS_SEL>,
> + <&apmixedsys CLK_APMIXED_MAINPLL>;
> + clock-names = "cpu", "intermediate";
> + operating-points-v2 = <&cluster0_opp>;
> + #cooling-cells = <2>;
> + enable-method = "psci";
> + };
> +
> + cpu1: cpu@1 {
> + device_type = "cpu";
> + compatible = "arm,cortex-a53";
> + reg = <0x1>;
> + clock-frequency = <1600000000>;
> + clocks = <&mcucfg CLK_MCU_BUS_SEL>,
> + <&apmixedsys CLK_APMIXED_MAINPLL>;
> + clock-names = "cpu", "intermediate", "armpll";
> + operating-points-v2 = <&cluster0_opp>;
> + #cooling-cells = <2>;
> + enable-method = "psci";
> + };
> +
> + cpu2: cpu@2 {
> + device_type = "cpu";
> + compatible = "arm,cortex-a53";
> + reg = <0x2>;
> + clock-frequency = <1600000000>;
> + clocks = <&mcucfg CLK_MCU_BUS_SEL>,
> + <&apmixedsys CLK_APMIXED_MAINPLL>;
> + clock-names = "cpu", "intermediate", "armpll";
> + operating-points-v2 = <&cluster0_opp>;
> + #cooling-cells = <2>;
> + enable-method = "psci";
> + };
> +
> + cpu3: cpu@3 {
> + device_type = "cpu";
> + compatible = "arm,cortex-a53";
> + reg = <0x3>;
> + clock-frequency = <1600000000>;
> + clocks = <&mcucfg CLK_MCU_BUS_SEL>,
> + <&apmixedsys CLK_APMIXED_MAINPLL>;
> + clock-names = "cpu", "intermediate", "armpll";
> + operating-points-v2 = <&cluster0_opp>;
> + #cooling-cells = <2>;
> + enable-method = "psci";
> + };
> + };
> +
> + cluster0_opp: opp-table-0 {
> + compatible = "operating-points-v2";
> + opp-shared;
> + opp-850000000 {
> + opp-hz = /bits/ 64 <850000000>;
> + opp-microvolt = <650000>;
> + };
> + opp-918000000 {
> + opp-hz = /bits/ 64 <918000000>;
> + opp-microvolt = <668750>;
> + };
> + opp-987000000 {
> + opp-hz = /bits/ 64 <987000000>;
> + opp-microvolt = <687500>;
> + };
> + opp-1056000000 {
> + opp-hz = /bits/ 64 <1056000000>;
> + opp-microvolt = <706250>;
> + };
> + opp-1125000000 {
> + opp-hz = /bits/ 64 <1125000000>;
> + opp-microvolt = <725000>;
> + };
> + opp-1216000000 {
> + opp-hz = /bits/ 64 <1216000000>;
> + opp-microvolt = <750000>;
> + };
> + opp-1308000000 {
> + opp-hz = /bits/ 64 <1308000000>;
> + opp-microvolt = <775000>;
> + };
> + opp-1400000000 {
> + opp-hz = /bits/ 64 <1400000000>;
> + opp-microvolt = <800000>;
> + };
> + opp-1466000000 {
> + opp-hz = /bits/ 64 <1466000000>;
> + opp-microvolt = <825000>;
> + };
> + opp-1533000000 {
> + opp-hz = /bits/ 64 <1533000000>;
> + opp-microvolt = <850000>;
> + };
> + opp-1633000000 {
> + opp-hz = /bits/ 64 <1633000000>;
> + opp-microvolt = <887500>;
> + };
> + opp-1700000000 {
> + opp-hz = /bits/ 64 <1700000000>;
> + opp-microvolt = <912500>;
> + };
> + opp-1767000000 {
> + opp-hz = /bits/ 64 <1767000000>;
> + opp-microvolt = <937500>;
> + };
> + opp-1834000000 {
> + opp-hz = /bits/ 64 <1834000000>;
> + opp-microvolt = <962500>;
> + };
> + opp-1917000000 {
> + opp-hz = /bits/ 64 <1917000000>;
> + opp-microvolt = <993750>;
> + };
> + opp-2001000000 {
> + opp-hz = /bits/ 64 <2001000000>;
> + opp-microvolt = <1025000>;
> + };
> + };
> +
> + clk26m: oscillator {
> + compatible = "fixed-clock";
> + #clock-cells = <0>;
> + clock-frequency = <26000000>;
This does not look like property of a SoC. Are you sure MT8365 SoC has
this clock (not the board)?
> + clock-output-names = "clk26m";
> + };
> +
> + psci {
> + compatible = "arm,psci-1.0";
> + method = "smc";
> + };
> +
> + reserved-memory {
> + #address-cells = <2>;
> + #size-cells = <2>;
> + ranges;
> +
> + /* 128 KiB reserved for ARM Trusted Firmware (BL31) */
> + bl31_secmon_reserved: secmon@43000000 {
> + no-map;
> + reg = <0 0x43000000 0 0x20000>;
> + };
> + };
> +
> + soc {
> + #address-cells = <2>;
> + #size-cells = <2>;
> + compatible = "simple-bus";
> + ranges;
> +
> + gic: interrupt-controller@c000000 {
> + compatible = "arm,gic-v3";
> + #interrupt-cells = <4>;
Why do you have four cells here (and passing 0 as interrupt)?
> + interrupt-parent = <&gic>;
> + interrupt-controller;
> + reg = <0 0x0c000000 0 0x80000>,
> + <0 0x0c080000 0 0x80000>;
> +
> + interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH 0>;
> + };
> +
> + topckgen: syscon@10000000 {
> + compatible = "mediatek,mt8365-topckgen", "syscon";
> + reg = <0 0x10000000 0 0x1000>;
> + #clock-cells = <1>;
> + };
> +
> + infracfg: syscon@10001000 {
> + compatible = "mediatek,mt8365-infracfg", "syscon";
> + reg = <0 0x10001000 0 0x1000>;
> + #clock-cells = <1>;
> + };
> +
> + pericfg: syscon@10003000 {
> + compatible = "mediatek,mt8365-pericfg", "syscon";
> + reg = <0 0x10003000 0 0x1000>;
> + #clock-cells = <1>;
> + };
> +
> + syscfg_pctl: syscfg-pctl@10005000 {
This is I guess also syscon, like other nodes?
> + compatible = "syscon";
You need specific compatible. Please run `make dtbs_check` and fix the
errors.
> + reg = <0 0x10005000 0 0x1000>;
> + };
> +
> + scpsys: syscon@10006000 {
> + compatible = "syscon", "simple-mfd";
You need specific compatible.
> + reg = <0 0x10006000 0 0x1000>;
> + #power-domain-cells = <1>;
This is definitely wrong now. It's not a simple-mfd device, so please do
not use that property.
> +
> + /* System Power Manager */
> + spm: power-controller {
> + compatible = "mediatek,mt8365-power-controller";
> + #address-cells = <1>;
> + #size-cells = <0>;
> + #power-domain-cells = <1>;
> +
> + /* power domains of the SoC */
The comment suggests you will later add here power domains not for the
SoC. If that's not true, just skip the comment.
> + power-domain@MT8365_POWER_DOMAIN_MM {
> + reg = <MT8365_POWER_DOMAIN_MM>;
> + clocks = <&topckgen CLK_TOP_MM_SEL>,
> + <&mmsys CLK_MM_MM_SMI_COMMON>,
> + <&mmsys CLK_MM_MM_SMI_COMM0>,
> + <&mmsys CLK_MM_MM_SMI_COMM1>,
> + <&mmsys CLK_MM_MM_SMI_LARB0>;
> + clock-names = "mm", "mm-0", "mm-1",
> + "mm-2", "mm-3";
> + #power-domain-cells = <0>;
> + mediatek,infracfg = <&infracfg>;
> + mediatek,infracfg_nao = <&infracfg_nao>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + power-domain@MT8365_POWER_DOMAIN_CAM {
> + reg = <MT8365_POWER_DOMAIN_CAM>;
> + clocks = <&camsys CLK_CAM_LARB2>,
> + <&camsys CLK_CAM_SENIF>,
> + <&camsys CLK_CAMSV0>,
> + <&camsys CLK_CAMSV1>,
> + <&camsys CLK_CAM_FDVT>,
> + <&camsys CLK_CAM_WPE>;
> + clock-names = "cam-0", "cam-1",
> + "cam-2", "cam-3",
> + "cam-4", "cam-5";
> + #power-domain-cells = <0>;
> + mediatek,infracfg = <&infracfg>;
> + mediatek,smi = <&smi_common>;
> + };
> +
> + power-domain@MT8365_POWER_DOMAIN_VDEC {
> + reg = <MT8365_POWER_DOMAIN_VDEC>;
> + #power-domain-cells = <0>;
> + mediatek,smi = <&smi_common>;
> + };
> +
> + power-domain@MT8365_POWER_DOMAIN_VENC {
> + reg = <MT8365_POWER_DOMAIN_VENC>;
> + #power-domain-cells = <0>;
> + mediatek,smi = <&smi_common>;
> + };
> +
> + power-domain@MT8365_POWER_DOMAIN_APU {
> + reg = <MT8365_POWER_DOMAIN_APU>;
> + clocks = <&infracfg CLK_IFR_APU_AXI>,
> + <&apu CLK_APU_IPU_CK>,
> + <&apu CLK_APU_AXI>,
> + <&apu CLK_APU_JTAG>,
> + <&apu CLK_APU_IF_CK>,
> + <&apu CLK_APU_EDMA>,
> + <&apu CLK_APU_AHB>;
> + clock-names = "apu", "apu-0",
> + "apu-1", "apu-2",
> + "apu-3", "apu-4",
> + "apu-5";
> + #power-domain-cells = <0>;
> + mediatek,infracfg = <&infracfg>;
> + mediatek,smi = <&smi_common>;
> + };
> + };
> +
> + power-domain@MT8365_POWER_DOMAIN_CONN {
> + reg = <MT8365_POWER_DOMAIN_CONN>;
> + clocks = <&topckgen CLK_TOP_CONN_32K>,
> + <&topckgen CLK_TOP_CONN_26M>;
> + clock-names = "conn", "conn1";
> + #power-domain-cells = <0>;
> + mediatek,infracfg = <&infracfg>;
> + };
> +
> + power-domain@MT8365_POWER_DOMAIN_MFG {
> + reg = <MT8365_POWER_DOMAIN_MFG>;
> + clocks = <&topckgen CLK_TOP_MFG_SEL>;
> + clock-names = "mfg";
> + #power-domain-cells = <0>;
> + mediatek,infracfg = <&infracfg>;
> + };
> +
> + power-domain@MT8365_POWER_DOMAIN_AUDIO {
> + reg = <MT8365_POWER_DOMAIN_AUDIO>;
> + clocks = <&topckgen CLK_TOP_AUD_INTBUS_SEL>,
> + <&infracfg CLK_IFR_AUDIO>,
> + <&infracfg CLK_IFR_AUD_26M_BK>;
> + clock-names = "audio", "audio1", "audio2";
> + #power-domain-cells = <0>;
> + mediatek,infracfg = <&infracfg>;
> + };
> +
> + power-domain@MT8365_POWER_DOMAIN_DSP {
> + reg = <MT8365_POWER_DOMAIN_DSP>;
> + clocks = <&topckgen CLK_TOP_DSP_SEL>,
> + <&topckgen CLK_TOP_DSP_26M>;
> + clock-names = "dsp", "dsp1";
> + #power-domain-cells = <0>;
> + mediatek,infracfg = <&infracfg>;
> + };
> + };
> + };
> +
> + watchdog: watchdog@10007000 {
> + compatible = "mediatek,mt8365-wdt",
> + "mediatek,mt6589-wdt";
> + reg = <0 0x10007000 0 0x100>;
> + #reset-cells = <1>;
> + };
> +
> + gpt: apxgpt@10008000 {
Generic node names, so "timer"
> + compatible = "mediatek,mt8365-timer",
> + "mediatek,mt6577-timer";
> + reg = <0 0x10008000 0 0x1000>;
> + interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_LOW>;
> + clocks = <&topckgen CLK_TOP_SYS_26M_D2>;
> + clock-names = "clk13m";
> + };
> +
> + pio: pinctrl@1000b000 {
> + compatible = "mediatek,mt8365-pinctrl";
> + reg = <0 0x1000b000 0 0x1000>;
> + mediatek,pctl-regmap = <&syscfg_pctl>;
> + pins-are-numbered;
> + gpio-controller;
> + #gpio-cells = <2>;
> + interrupt-controller;
> + #interrupt-cells = <2>;
> + interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
> + };
> +
> + apmixedsys: syscon@1000c000 {
> + compatible = "mediatek,mt8365-apmixedsys", "syscon";
> + reg = <0 0x1000c000 0 0x1000>;
> + #clock-cells = <1>;
> + };
> +
> + pwrap: pwrap@1000d000 {
> + compatible = "mediatek,mt8365-pwrap";
> + reg = <0 0x1000d000 0 0x1000>;
> + reg-names = "pwrap";
> + interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&infracfg CLK_IFR_PWRAP_SPI>,
> + <&infracfg CLK_IFR_PMIC_AP>,
> + <&infracfg CLK_IFR_PWRAP_SYS>,
> + <&infracfg CLK_IFR_PWRAP_TMR>;
> + clock-names = "spi", "wrap", "sys", "tmr";
> + };
> +
> + keypad: kp@10010000 {
s/kp/keypad/
> + compatible = "mediatek,mt6779-keypad";
> + reg = <0 0x10010000 0 0x1000>;
> + wakeup-source;
> + interrupts = <GIC_SPI 124 IRQ_TYPE_EDGE_FALLING>;
> + clocks = <&clk26m>;
> + clock-names = "kpd";
> + status = "disabled";
> + };
> +
> + mcucfg: syscon@10200000 {
> + compatible = "mediatek,mt8365-mcucfg", "syscon";
> + reg = <0 0x10200000 0 0x2000>;
> + #clock-cells = <1>;
> + };
> +
> + sysirq: intpol-controller@10200a80 {
interrupt-controller
> + compatible = "mediatek,mt8365-sysirq",
> + "mediatek,mt6577-sysirq";
> + interrupt-controller;
> + #interrupt-cells = <3>;
> + interrupt-parent = <&gic>;
> + reg = <0 0x10200a80 0 0x20>;
> + };
> +
> + iommu: iommu@10205000 {
> + compatible = "mediatek,mt8365-m4u";
> + reg = <0 0x10205000 0 0x1000>;
> + interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_LOW>;
> + mediatek,larbs = <&larb0>, <&larb1>, <&larb2>, <&larb3>;
> + #iommu-cells = <1>;
> + };
> +
> + infracfg_nao: infracfg-nao@1020e000 {
Other nodes are named syscon
> + compatible = "syscon";
No, syscon cannot be alone.
> + reg = <0 0x1020e000 0 0x1000>;
> + };
> +
> + rng: rng@1020f000 {
> + compatible = "mediatek,mt8365-rng",
> + "mediatek,mt7623-rng";
> + reg = <0 0x1020f000 0 0x100>;
> + clocks = <&infracfg CLK_IFR_TRNG>;
> + clock-names = "rng";
> + };
> +
> + apdma: dma-controller@11000280 {
> + compatible = "mediatek,mt8365-uart-dma",
> + "mediatek,mt6577-uart-dma";
> + reg = <0 0x11000280 0 0x80>,
> + <0 0x11000300 0 0x80>,
> + <0 0x11000380 0 0x80>,
> + <0 0x11000400 0 0x80>,
> + <0 0x11000580 0 0x80>,
> + <0 0x11000600 0 0x80>;
> + interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_LOW>,
> + <GIC_SPI 46 IRQ_TYPE_LEVEL_LOW>,
> + <GIC_SPI 47 IRQ_TYPE_LEVEL_LOW>,
> + <GIC_SPI 48 IRQ_TYPE_LEVEL_LOW>,
> + <GIC_SPI 51 IRQ_TYPE_LEVEL_LOW>,
> + <GIC_SPI 52 IRQ_TYPE_LEVEL_LOW>;
> + dma-requests = <6>;
> + clocks = <&infracfg CLK_IFR_AP_DMA>;
> + clock-names = "apdma";
> + #dma-cells = <1>;
> + };
> +
> + auxadc: adc@11001000 {
> + compatible = "mediatek,mt8365-auxadc",
> + "mediatek,mt8173-auxadc";
> + reg = <0 0x11001000 0 0x1000>;
> + clocks = <&infracfg CLK_IFR_AUXADC>;
> + clock-names = "main";
> + #io-channel-cells = <1>;
> + };
> +
> + uart0: serial@11002000 {
> + compatible = "mediatek,mt8365-uart",
> + "mediatek,mt6577-uart";
> + reg = <0 0x11002000 0 0x1000>;
> + interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_LOW>;
> + clocks = <&clk26m>, <&infracfg CLK_IFR_UART0>;
> + clock-names = "baud", "bus";
> + dmas = <&apdma 0
> + &apdma 1>;
You need to split these into two phandles.
> + dma-names = "tx", "rx";
> + status = "disabled";
> + };
> +
> + uart1: serial@11003000 {
> + compatible = "mediatek,mt8365-uart",
> + "mediatek,mt6577-uart";
> + reg = <0 0x11003000 0 0x1000>;
> + interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_LOW>;
> + clocks = <&clk26m>, <&infracfg CLK_IFR_UART1>;
> + clock-names = "baud", "bus";
> + dmas = <&apdma 2
> + &apdma 3>;
Ditto.
> + dma-names = "tx", "rx";
> + status = "disabled";
> + };
> +
> + uart2: serial@11004000 {
> + compatible = "mediatek,mt8365-uart",
> + "mediatek,mt6577-uart";
> + reg = <0 0x11004000 0 0x1000>;
> + interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_LOW>;
> + clocks = <&clk26m>, <&infracfg CLK_IFR_UART2>;
> + clock-names = "baud", "bus";
> + dmas = <&apdma 4
> + &apdma 5>;
> + dma-names = "tx", "rx";
> + status = "disabled";
> + };
> +
> + pwm: pwm@11006000 {
> + compatible = "mediatek,mt8365-pwm";
> + reg = <0 0x11006000 0 0x1000>;
> + #pwm-cells = <2>;
> + interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_LOW>;
> + clocks = <&infracfg CLK_IFR_PWM_HCLK>,
> + <&infracfg CLK_IFR_PWM>,
> + <&infracfg CLK_IFR_PWM1>,
> + <&infracfg CLK_IFR_PWM2>,
> + <&infracfg CLK_IFR_PWM3>;
> + clock-names = "top", "main", "pwm1", "pwm2", "pwm3";
> + };
> +
> + i2c0: i2c@11007000 {
> + compatible = "mediatek,mt8365-i2c",
> + "mediatek,mt8168-i2c";
> + reg = <0 0x11007000 0 0xa0>,
> + <0 0x11000080 0 0x80>;
> + interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_LOW>;
> + clock-div = <1>;
> + clocks = <&infracfg CLK_IFR_I2C0_AXI>,
> + <&infracfg CLK_IFR_AP_DMA>;
> + clock-names = "main", "dma";
> + #address-cells = <1>;
> + #size-cells = <0>;
> + status = "disabled";
> + };
> +
> + i2c1: i2c@11008000 {
> + compatible = "mediatek,mt8365-i2c",
> + "mediatek,mt8168-i2c";
> + reg = <0 0x11008000 0 0xa0>,
> + <0 0x11000100 0 0x80>;
> + interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_LOW>;
> + clock-div = <1>;
> + clocks = <&infracfg CLK_IFR_I2C1_AXI>,
> + <&infracfg CLK_IFR_AP_DMA>;
> + clock-names = "main", "dma";
> + #address-cells = <1>;
> + #size-cells = <0>;
> + status = "disabled";
> + };
> +
> + i2c2: i2c@11009000 {
> + compatible = "mediatek,mt8365-i2c",
> + "mediatek,mt8168-i2c";
> + reg = <0 0x11009000 0 0xa0>,
> + <0 0x11000180 0 0x80>;
> + interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_LOW>;
> + clock-div = <1>;
> + clocks = <&infracfg CLK_IFR_I2C2_AXI>,
> + <&infracfg CLK_IFR_AP_DMA>;
> + clock-names = "main", "dma";
> + #address-cells = <1>;
> + #size-cells = <0>;
> + status = "disabled";
> + };
> +
> + spi: spi@1100a000 {
> + compatible = "mediatek,mt8365-spi",
> + "mediatek,mt7622-spi";
> + #address-cells = <1>;
> + #size-cells = <0>;
> + reg = <0 0x1100a000 0 0x100>;
Reg goes after compatible.
> + interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_LOW>;
> + clocks = <&topckgen CLK_TOP_UNIVPLL2_D4>,
> + <&topckgen CLK_TOP_SPI_SEL>,
> + <&infracfg CLK_IFR_SPI0>;
> + clock-names = "parent-clk", "sel-clk", "spi-clk";
> + status = "disabled";
> + };
> +
> + thermal: thermal@1100b000 {
> + compatible = "mediatek,mt8365-thermal";
> + reg = <0 0x1100b000 0 0x1000>;
> + interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_LOW>;
> + clocks = <&infracfg CLK_IFR_THERM>,
> + <&infracfg CLK_IFR_AUXADC>;
> + clock-names = "therm", "auxadc";
> + mediatek,auxadc = <&auxadc>;
> + mediatek,apmixedsys = <&apmixedsys>;
> + nvmem-cells = <&thermal_calibration>;
> + nvmem-cell-names = "calibration-data";
> + #thermal-sensor-cells = <1>;
> + };
> +
> + disp_pwm: disp-pwm@1100e000 {
Generic node names, so "pwm"
> + compatible = "mediatek,mt8365-disp-pwm",
> + "mediatek,mt8183-disp-pwm";
> + reg = <0 0x1100e000 0 0x1000>;
> + #pwm-cells = <2>;
> + clocks = <&topckgen CLK_TOP_DISP_PWM_SEL>,
> + <&infracfg CLK_IFR_DISP_PWM>;
> + clock-names = "main", "mm";
> + power-domains = <&spm MT8365_POWER_DOMAIN_MM>;
> + status = "disabled";
> + };
> +
> + i2c3: i2c@1100f000 {
> + compatible = "mediatek,mt8365-i2c",
> + "mediatek,mt8168-i2c";
> + reg = <0 0x1100f000 0 0xa0>,
> + <0 0x11000200 0 0x80>;
> + interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_LOW>;
> + clock-div = <1>;
> + clocks = <&infracfg CLK_IFR_I2C3_AXI>,
> + <&infracfg CLK_IFR_AP_DMA>;
> + clock-names = "main", "dma";
> + #address-cells = <1>;
> + #size-cells = <0>;
> + status = "disabled";
> + };
> +
> + ssusb: usb@11201000 {
> + compatible = "mediatek,mt8365-mtu3", "mediatek,mtu3";
> + reg = <0 0x11201000 0 0x2e00>,
> + <0 0x11203e00 0 0x0100>;
> + reg-names = "mac", "ippc";
> + interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_LOW>;
> + phys = <&u2port0 PHY_TYPE_USB2>,
> + <&u2port1 PHY_TYPE_USB2>;
> + clocks = <&topckgen CLK_TOP_SSUSB_TOP_CK_EN>,
> + <&infracfg CLK_IFR_SSUSB_REF>,
> + <&infracfg CLK_IFR_SSUSB_SYS>,
> + <&infracfg CLK_IFR_ICUSB>;
> + clock-names = "sys_ck", "ref_ck", "mcu_ck",
> + "dma_ck";
> + #address-cells = <2>;
> + #size-cells = <2>;
> + ranges;
> + status = "disabled";
> +
> + usb_host: usb@11200000 {
> + compatible = "mediatek,mt8365-xhci",
> + "mediatek,mtk-xhci";
> + reg = <0 0x11200000 0 0x1000>;
> + reg-names = "mac";
> + interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_LOW>;
> + clocks = <&topckgen CLK_TOP_SSUSB_TOP_CK_EN>,
> + <&infracfg CLK_IFR_SSUSB_REF>,
> + <&infracfg CLK_IFR_SSUSB_SYS>,
> + <&infracfg CLK_IFR_ICUSB>,
> + <&infracfg CLK_IFR_SSUSB_XHCI>;
> + clock-names = "sys_ck", "ref_ck", "mcu_ck",
> + "dma_ck", "xhci_ck";
> + status = "disabled";
> + };
> + };
> +
> + mmc0: mmc@11230000 {
> + compatible = "mediatek,mt8365-mmc", "mediatek,mt8183-mmc";
> + reg = <0 0x11230000 0 0x1000>,
> + <0 0x11cd0000 0 0x1000>;
> + interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_LOW>;
> + clocks = <&topckgen CLK_TOP_MSDC50_0_SEL>,
> + <&infracfg CLK_IFR_MSDC0_HCLK>,
> + <&infracfg CLK_IFR_MSDC0_SRC>;
> + clock-names = "source", "hclk", "source_cg";
> + status = "disabled";
> + };
> +
> + mmc1: mmc@11240000 {
> + compatible = "mediatek,mt8365-mmc", "mediatek,mt8183-mmc";
> + reg = <0 0x11240000 0 0x1000>,
> + <0 0x11c90000 0 0x1000>;
> + interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_LOW>;
> + clocks = <&topckgen CLK_TOP_MSDC30_1_SEL>,
> + <&infracfg CLK_IFR_MSDC1_HCLK>,
> + <&infracfg CLK_IFR_MSDC1_SRC>;
> + clock-names = "source", "hclk", "source_cg";
> + status = "disabled";
> + };
> +
> + ethernet: ethernet@112a0000 {
> + compatible = "mediatek,mt8365-eth";
> + reg = <0 0x112a0000 0 0x1000>;
> + mediatek,pericfg = <&infracfg>;
> + interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&topckgen CLK_TOP_ETH_SEL>,
> + <&infracfg CLK_IFR_NIC_AXI>,
> + <&infracfg CLK_IFR_NIC_SLV_AXI>;
> + clock-names = "core", "reg", "trans";
> + status = "disabled";
> + };
> +
> + mipi_tx0: dsi-phy@11c00000 {
> + compatible = "mediatek,mt8365-mipi-tx",
> + "mediatek,mt8183-mipi-tx";
> + reg = <0 0x11c00000 0 0x800>;
> + clocks = <&clk26m>;
> + clock-names = "ref_clk";
> + #clock-cells = <0>;
> + #phy-cells = <0>;
> + clock-output-names = "mipi_tx0_pll";
> + };
> +
> + efuse: efuse@11c50000 {
> + compatible = "mediatek,mt8365-efuse", "mediatek,efuse";
> + reg = <0 0x11c50000 0 0x1000>;
> + #address-cells = <1>;
> + #size-cells = <1>;
> +
> + thermal_calibration: calib@180 {
> + reg = <0x180 0xc>;
> + };
> + };
> +
> + u3phy: t-phy@11cc0000 {
s/t-phy/phy/
> + compatible = "mediatek,mt8365-tphy",
> + "mediatek,generic-tphy-v2";
> + #address-cells = <2>;
> + #phy-cells = <1>;
address-cells, then size, then phy
> + #size-cells = <2>;
> + ranges;
> + status = "okay";
No need for status ok.
> +
> + u2port0: usb-phy@11cc0000 {
> + reg = <0 0x11cc0000 0 0x400>;
> + clocks = <&topckgen CLK_TOP_SSUSB_PHY_CK_EN>,
> + <&topckgen CLK_TOP_USB20_48M_EN>;
> + clock-names = "ref", "da_ref";
> + #phy-cells = <1>;
> + status = "okay";
Ditto
> + };
> +
> + u2port1: usb-phy@11cc1000 {
> + reg = <0 0x11cc1000 0 0x400>;
> + clocks = <&topckgen CLK_TOP_SSUSB_PHY_CK_EN>,
> + <&topckgen CLK_TOP_USB20_48M_EN>;
> + clock-names = "ref", "da_ref";
> + #phy-cells = <1>;
> + status = "okay";
> + };
> + };
> +
> + mfgcfg: syscon@13000000 {
> + compatible = "mediatek,mt8365-mfgcfg", "syscon";
> + reg = <0 0x13000000 0 0x1000>;
> + #clock-cells = <1>;
> + };
> +
> + mmsys: syscon@14000000 {
> + compatible = "mediatek,mt8365-mmsys", "syscon";
> + reg = <0 0x14000000 0 0x1000>;
> + #clock-cells = <1>;
> + };
> +
> + mutex: mutex@14001000 {
> + compatible = "mediatek,mt8365-disp-mutex";
> + reg = <0 0x14001000 0 0x1000>;
> + interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_LOW>;
> + power-domains = <&spm MT8365_POWER_DOMAIN_MM>;
> + };
> +
> + smi_common: smi@14002000 {
s/smi/memory-controller/ in node name?
> + compatible = "mediatek,mt8365-smi-common",
> + "mediatek,mt8186-smi-common";
> + reg = <0 0x14002000 0 0x1000>;
> + clocks = <&mmsys CLK_MM_MM_SMI_COMMON>,
> + <&mmsys CLK_MM_MM_SMI_COMMON>,
> + <&mmsys CLK_MM_MM_SMI_COMM0>,
> + <&mmsys CLK_MM_MM_SMI_COMM1>;
> + clock-names = "apb", "smi", "gals0", "gals1";
> + power-domains = <&spm MT8365_POWER_DOMAIN_MM>;
> + };
> +
> + larb0: larb@14003000 {
The same?
> + compatible = "mediatek,mt8365-smi-larb",
> + "mediatek,mt8186-smi-larb";
> + reg = <0 0x14003000 0 0x1000>;
> + mediatek,smi = <&smi_common>;
> + clocks = <&mmsys CLK_MM_MM_SMI_LARB0>,
> + <&mmsys CLK_MM_MM_SMI_LARB0>;
> + clock-names = "apb", "smi";
> + power-domains = <&spm MT8365_POWER_DOMAIN_MM>;
Best regards,
Krzysztof
_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek
WARNING: multiple messages have this Message-ID (diff)
From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
To: Fabien Parent <fparent@baylibre.com>,
robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org,
vkoul@kernel.org, qii.wang@mediatek.com, matthias.bgg@gmail.com,
jic23@kernel.org, chaotian.jing@mediatek.com,
ulf.hansson@linaro.org, srinivas.kandagatla@linaro.org,
chunfeng.yun@mediatek.com, broonie@kernel.org,
wim@linux-watchdog.org, linux@roeck-us.net
Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
dmaengine@vger.kernel.org, linux-i2c@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-mediatek@lists.infradead.org, linux-iio@vger.kernel.org,
linux-mmc@vger.kernel.org, linux-phy@lists.infradead.org,
linux-serial@vger.kernel.org, linux-spi@vger.kernel.org,
linux-usb@vger.kernel.org, linux-watchdog@vger.kernel.org
Subject: Re: [PATCH 16/17] arm64: dts: mediatek: add mt8365 device-tree
Date: Wed, 1 Jun 2022 12:37:23 +0200 [thread overview]
Message-ID: <2f7be7c4-9e61-7285-803b-979af6d28c11@linaro.org> (raw)
In-Reply-To: <20220531135026.238475-17-fparent@baylibre.com>
On 31/05/2022 15:50, Fabien Parent wrote:
> Add device-tree for the MT8365 SoC. More information can be found
> about that SoC at the following address:
> https://www.mediatek.com/products/aiot/i350-mt8365
>
> Signed-off-by: Fabien Parent <fparent@baylibre.com>
> ---
> arch/arm64/boot/dts/mediatek/mt8365.dtsi | 1047 ++++++++++++++++++++++
> 1 file changed, 1047 insertions(+)
> create mode 100644 arch/arm64/boot/dts/mediatek/mt8365.dtsi
>
> diff --git a/arch/arm64/boot/dts/mediatek/mt8365.dtsi b/arch/arm64/boot/dts/mediatek/mt8365.dtsi
> new file mode 100644
> index 000000000000..e22b1d259418
> --- /dev/null
> +++ b/arch/arm64/boot/dts/mediatek/mt8365.dtsi
> @@ -0,0 +1,1047 @@
> +// SPDX-License-Identifier: (GPL-2.0 OR MIT)
> +/*
> + * Copyright (c) 2018 MediaTek Inc.
> + */
> +
> +#include <dt-bindings/clock/mediatek,mt8365-clk.h>
> +#include <dt-bindings/interrupt-controller/arm-gic.h>
> +#include <dt-bindings/interrupt-controller/irq.h>
> +#include <dt-bindings/phy/phy.h>
> +#include <dt-bindings/power/mt8365-power.h>
> +#include <dt-bindings/memory/mt8365-larb-port.h>
> +#include <dt-bindings/thermal/thermal.h>
> +
> +/ {
> + compatible = "mediatek,mt8365";
> + interrupt-parent = <&sysirq>;
> + #address-cells = <2>;
> + #size-cells = <2>;
> +
> + aliases {
> + ovl0 = &ovl0;
> + rdma0 = &rdma0;
> + rdma1 = &rdma1;
> + color0 = &color0;
> + ccorr0 = &ccorr0;
> + aal0 = &aal0;
> + gamma0 = &gamma0;
> + dither0 = &dither0;
> + dsi0 = &dsi0;
> + dpi0 = &dpi0;
> + };
> +
> + cpus: cpus {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + cpu-map {
> + cluster0: cluster0 {
> + core0 {
> + cpu = <&cpu0>;
> + };
> + core1 {
> + cpu = <&cpu1>;
> + };
> + core2 {
> + cpu = <&cpu2>;
> + };
> + core3 {
> + cpu = <&cpu3>;
> + };
> + };
> + };
> +
> + cpu0: cpu@0 {
> + device_type = "cpu";
> + compatible = "arm,cortex-a53";
> + reg = <0x0>;
> + clock-frequency = <1600000000>;
> + clocks = <&mcucfg CLK_MCU_BUS_SEL>,
> + <&apmixedsys CLK_APMIXED_MAINPLL>;
> + clock-names = "cpu", "intermediate";
> + operating-points-v2 = <&cluster0_opp>;
> + #cooling-cells = <2>;
> + enable-method = "psci";
> + };
> +
> + cpu1: cpu@1 {
> + device_type = "cpu";
> + compatible = "arm,cortex-a53";
> + reg = <0x1>;
> + clock-frequency = <1600000000>;
> + clocks = <&mcucfg CLK_MCU_BUS_SEL>,
> + <&apmixedsys CLK_APMIXED_MAINPLL>;
> + clock-names = "cpu", "intermediate", "armpll";
> + operating-points-v2 = <&cluster0_opp>;
> + #cooling-cells = <2>;
> + enable-method = "psci";
> + };
> +
> + cpu2: cpu@2 {
> + device_type = "cpu";
> + compatible = "arm,cortex-a53";
> + reg = <0x2>;
> + clock-frequency = <1600000000>;
> + clocks = <&mcucfg CLK_MCU_BUS_SEL>,
> + <&apmixedsys CLK_APMIXED_MAINPLL>;
> + clock-names = "cpu", "intermediate", "armpll";
> + operating-points-v2 = <&cluster0_opp>;
> + #cooling-cells = <2>;
> + enable-method = "psci";
> + };
> +
> + cpu3: cpu@3 {
> + device_type = "cpu";
> + compatible = "arm,cortex-a53";
> + reg = <0x3>;
> + clock-frequency = <1600000000>;
> + clocks = <&mcucfg CLK_MCU_BUS_SEL>,
> + <&apmixedsys CLK_APMIXED_MAINPLL>;
> + clock-names = "cpu", "intermediate", "armpll";
> + operating-points-v2 = <&cluster0_opp>;
> + #cooling-cells = <2>;
> + enable-method = "psci";
> + };
> + };
> +
> + cluster0_opp: opp-table-0 {
> + compatible = "operating-points-v2";
> + opp-shared;
> + opp-850000000 {
> + opp-hz = /bits/ 64 <850000000>;
> + opp-microvolt = <650000>;
> + };
> + opp-918000000 {
> + opp-hz = /bits/ 64 <918000000>;
> + opp-microvolt = <668750>;
> + };
> + opp-987000000 {
> + opp-hz = /bits/ 64 <987000000>;
> + opp-microvolt = <687500>;
> + };
> + opp-1056000000 {
> + opp-hz = /bits/ 64 <1056000000>;
> + opp-microvolt = <706250>;
> + };
> + opp-1125000000 {
> + opp-hz = /bits/ 64 <1125000000>;
> + opp-microvolt = <725000>;
> + };
> + opp-1216000000 {
> + opp-hz = /bits/ 64 <1216000000>;
> + opp-microvolt = <750000>;
> + };
> + opp-1308000000 {
> + opp-hz = /bits/ 64 <1308000000>;
> + opp-microvolt = <775000>;
> + };
> + opp-1400000000 {
> + opp-hz = /bits/ 64 <1400000000>;
> + opp-microvolt = <800000>;
> + };
> + opp-1466000000 {
> + opp-hz = /bits/ 64 <1466000000>;
> + opp-microvolt = <825000>;
> + };
> + opp-1533000000 {
> + opp-hz = /bits/ 64 <1533000000>;
> + opp-microvolt = <850000>;
> + };
> + opp-1633000000 {
> + opp-hz = /bits/ 64 <1633000000>;
> + opp-microvolt = <887500>;
> + };
> + opp-1700000000 {
> + opp-hz = /bits/ 64 <1700000000>;
> + opp-microvolt = <912500>;
> + };
> + opp-1767000000 {
> + opp-hz = /bits/ 64 <1767000000>;
> + opp-microvolt = <937500>;
> + };
> + opp-1834000000 {
> + opp-hz = /bits/ 64 <1834000000>;
> + opp-microvolt = <962500>;
> + };
> + opp-1917000000 {
> + opp-hz = /bits/ 64 <1917000000>;
> + opp-microvolt = <993750>;
> + };
> + opp-2001000000 {
> + opp-hz = /bits/ 64 <2001000000>;
> + opp-microvolt = <1025000>;
> + };
> + };
> +
> + clk26m: oscillator {
> + compatible = "fixed-clock";
> + #clock-cells = <0>;
> + clock-frequency = <26000000>;
This does not look like property of a SoC. Are you sure MT8365 SoC has
this clock (not the board)?
> + clock-output-names = "clk26m";
> + };
> +
> + psci {
> + compatible = "arm,psci-1.0";
> + method = "smc";
> + };
> +
> + reserved-memory {
> + #address-cells = <2>;
> + #size-cells = <2>;
> + ranges;
> +
> + /* 128 KiB reserved for ARM Trusted Firmware (BL31) */
> + bl31_secmon_reserved: secmon@43000000 {
> + no-map;
> + reg = <0 0x43000000 0 0x20000>;
> + };
> + };
> +
> + soc {
> + #address-cells = <2>;
> + #size-cells = <2>;
> + compatible = "simple-bus";
> + ranges;
> +
> + gic: interrupt-controller@c000000 {
> + compatible = "arm,gic-v3";
> + #interrupt-cells = <4>;
Why do you have four cells here (and passing 0 as interrupt)?
> + interrupt-parent = <&gic>;
> + interrupt-controller;
> + reg = <0 0x0c000000 0 0x80000>,
> + <0 0x0c080000 0 0x80000>;
> +
> + interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH 0>;
> + };
> +
> + topckgen: syscon@10000000 {
> + compatible = "mediatek,mt8365-topckgen", "syscon";
> + reg = <0 0x10000000 0 0x1000>;
> + #clock-cells = <1>;
> + };
> +
> + infracfg: syscon@10001000 {
> + compatible = "mediatek,mt8365-infracfg", "syscon";
> + reg = <0 0x10001000 0 0x1000>;
> + #clock-cells = <1>;
> + };
> +
> + pericfg: syscon@10003000 {
> + compatible = "mediatek,mt8365-pericfg", "syscon";
> + reg = <0 0x10003000 0 0x1000>;
> + #clock-cells = <1>;
> + };
> +
> + syscfg_pctl: syscfg-pctl@10005000 {
This is I guess also syscon, like other nodes?
> + compatible = "syscon";
You need specific compatible. Please run `make dtbs_check` and fix the
errors.
> + reg = <0 0x10005000 0 0x1000>;
> + };
> +
> + scpsys: syscon@10006000 {
> + compatible = "syscon", "simple-mfd";
You need specific compatible.
> + reg = <0 0x10006000 0 0x1000>;
> + #power-domain-cells = <1>;
This is definitely wrong now. It's not a simple-mfd device, so please do
not use that property.
> +
> + /* System Power Manager */
> + spm: power-controller {
> + compatible = "mediatek,mt8365-power-controller";
> + #address-cells = <1>;
> + #size-cells = <0>;
> + #power-domain-cells = <1>;
> +
> + /* power domains of the SoC */
The comment suggests you will later add here power domains not for the
SoC. If that's not true, just skip the comment.
> + power-domain@MT8365_POWER_DOMAIN_MM {
> + reg = <MT8365_POWER_DOMAIN_MM>;
> + clocks = <&topckgen CLK_TOP_MM_SEL>,
> + <&mmsys CLK_MM_MM_SMI_COMMON>,
> + <&mmsys CLK_MM_MM_SMI_COMM0>,
> + <&mmsys CLK_MM_MM_SMI_COMM1>,
> + <&mmsys CLK_MM_MM_SMI_LARB0>;
> + clock-names = "mm", "mm-0", "mm-1",
> + "mm-2", "mm-3";
> + #power-domain-cells = <0>;
> + mediatek,infracfg = <&infracfg>;
> + mediatek,infracfg_nao = <&infracfg_nao>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + power-domain@MT8365_POWER_DOMAIN_CAM {
> + reg = <MT8365_POWER_DOMAIN_CAM>;
> + clocks = <&camsys CLK_CAM_LARB2>,
> + <&camsys CLK_CAM_SENIF>,
> + <&camsys CLK_CAMSV0>,
> + <&camsys CLK_CAMSV1>,
> + <&camsys CLK_CAM_FDVT>,
> + <&camsys CLK_CAM_WPE>;
> + clock-names = "cam-0", "cam-1",
> + "cam-2", "cam-3",
> + "cam-4", "cam-5";
> + #power-domain-cells = <0>;
> + mediatek,infracfg = <&infracfg>;
> + mediatek,smi = <&smi_common>;
> + };
> +
> + power-domain@MT8365_POWER_DOMAIN_VDEC {
> + reg = <MT8365_POWER_DOMAIN_VDEC>;
> + #power-domain-cells = <0>;
> + mediatek,smi = <&smi_common>;
> + };
> +
> + power-domain@MT8365_POWER_DOMAIN_VENC {
> + reg = <MT8365_POWER_DOMAIN_VENC>;
> + #power-domain-cells = <0>;
> + mediatek,smi = <&smi_common>;
> + };
> +
> + power-domain@MT8365_POWER_DOMAIN_APU {
> + reg = <MT8365_POWER_DOMAIN_APU>;
> + clocks = <&infracfg CLK_IFR_APU_AXI>,
> + <&apu CLK_APU_IPU_CK>,
> + <&apu CLK_APU_AXI>,
> + <&apu CLK_APU_JTAG>,
> + <&apu CLK_APU_IF_CK>,
> + <&apu CLK_APU_EDMA>,
> + <&apu CLK_APU_AHB>;
> + clock-names = "apu", "apu-0",
> + "apu-1", "apu-2",
> + "apu-3", "apu-4",
> + "apu-5";
> + #power-domain-cells = <0>;
> + mediatek,infracfg = <&infracfg>;
> + mediatek,smi = <&smi_common>;
> + };
> + };
> +
> + power-domain@MT8365_POWER_DOMAIN_CONN {
> + reg = <MT8365_POWER_DOMAIN_CONN>;
> + clocks = <&topckgen CLK_TOP_CONN_32K>,
> + <&topckgen CLK_TOP_CONN_26M>;
> + clock-names = "conn", "conn1";
> + #power-domain-cells = <0>;
> + mediatek,infracfg = <&infracfg>;
> + };
> +
> + power-domain@MT8365_POWER_DOMAIN_MFG {
> + reg = <MT8365_POWER_DOMAIN_MFG>;
> + clocks = <&topckgen CLK_TOP_MFG_SEL>;
> + clock-names = "mfg";
> + #power-domain-cells = <0>;
> + mediatek,infracfg = <&infracfg>;
> + };
> +
> + power-domain@MT8365_POWER_DOMAIN_AUDIO {
> + reg = <MT8365_POWER_DOMAIN_AUDIO>;
> + clocks = <&topckgen CLK_TOP_AUD_INTBUS_SEL>,
> + <&infracfg CLK_IFR_AUDIO>,
> + <&infracfg CLK_IFR_AUD_26M_BK>;
> + clock-names = "audio", "audio1", "audio2";
> + #power-domain-cells = <0>;
> + mediatek,infracfg = <&infracfg>;
> + };
> +
> + power-domain@MT8365_POWER_DOMAIN_DSP {
> + reg = <MT8365_POWER_DOMAIN_DSP>;
> + clocks = <&topckgen CLK_TOP_DSP_SEL>,
> + <&topckgen CLK_TOP_DSP_26M>;
> + clock-names = "dsp", "dsp1";
> + #power-domain-cells = <0>;
> + mediatek,infracfg = <&infracfg>;
> + };
> + };
> + };
> +
> + watchdog: watchdog@10007000 {
> + compatible = "mediatek,mt8365-wdt",
> + "mediatek,mt6589-wdt";
> + reg = <0 0x10007000 0 0x100>;
> + #reset-cells = <1>;
> + };
> +
> + gpt: apxgpt@10008000 {
Generic node names, so "timer"
> + compatible = "mediatek,mt8365-timer",
> + "mediatek,mt6577-timer";
> + reg = <0 0x10008000 0 0x1000>;
> + interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_LOW>;
> + clocks = <&topckgen CLK_TOP_SYS_26M_D2>;
> + clock-names = "clk13m";
> + };
> +
> + pio: pinctrl@1000b000 {
> + compatible = "mediatek,mt8365-pinctrl";
> + reg = <0 0x1000b000 0 0x1000>;
> + mediatek,pctl-regmap = <&syscfg_pctl>;
> + pins-are-numbered;
> + gpio-controller;
> + #gpio-cells = <2>;
> + interrupt-controller;
> + #interrupt-cells = <2>;
> + interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
> + };
> +
> + apmixedsys: syscon@1000c000 {
> + compatible = "mediatek,mt8365-apmixedsys", "syscon";
> + reg = <0 0x1000c000 0 0x1000>;
> + #clock-cells = <1>;
> + };
> +
> + pwrap: pwrap@1000d000 {
> + compatible = "mediatek,mt8365-pwrap";
> + reg = <0 0x1000d000 0 0x1000>;
> + reg-names = "pwrap";
> + interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&infracfg CLK_IFR_PWRAP_SPI>,
> + <&infracfg CLK_IFR_PMIC_AP>,
> + <&infracfg CLK_IFR_PWRAP_SYS>,
> + <&infracfg CLK_IFR_PWRAP_TMR>;
> + clock-names = "spi", "wrap", "sys", "tmr";
> + };
> +
> + keypad: kp@10010000 {
s/kp/keypad/
> + compatible = "mediatek,mt6779-keypad";
> + reg = <0 0x10010000 0 0x1000>;
> + wakeup-source;
> + interrupts = <GIC_SPI 124 IRQ_TYPE_EDGE_FALLING>;
> + clocks = <&clk26m>;
> + clock-names = "kpd";
> + status = "disabled";
> + };
> +
> + mcucfg: syscon@10200000 {
> + compatible = "mediatek,mt8365-mcucfg", "syscon";
> + reg = <0 0x10200000 0 0x2000>;
> + #clock-cells = <1>;
> + };
> +
> + sysirq: intpol-controller@10200a80 {
interrupt-controller
> + compatible = "mediatek,mt8365-sysirq",
> + "mediatek,mt6577-sysirq";
> + interrupt-controller;
> + #interrupt-cells = <3>;
> + interrupt-parent = <&gic>;
> + reg = <0 0x10200a80 0 0x20>;
> + };
> +
> + iommu: iommu@10205000 {
> + compatible = "mediatek,mt8365-m4u";
> + reg = <0 0x10205000 0 0x1000>;
> + interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_LOW>;
> + mediatek,larbs = <&larb0>, <&larb1>, <&larb2>, <&larb3>;
> + #iommu-cells = <1>;
> + };
> +
> + infracfg_nao: infracfg-nao@1020e000 {
Other nodes are named syscon
> + compatible = "syscon";
No, syscon cannot be alone.
> + reg = <0 0x1020e000 0 0x1000>;
> + };
> +
> + rng: rng@1020f000 {
> + compatible = "mediatek,mt8365-rng",
> + "mediatek,mt7623-rng";
> + reg = <0 0x1020f000 0 0x100>;
> + clocks = <&infracfg CLK_IFR_TRNG>;
> + clock-names = "rng";
> + };
> +
> + apdma: dma-controller@11000280 {
> + compatible = "mediatek,mt8365-uart-dma",
> + "mediatek,mt6577-uart-dma";
> + reg = <0 0x11000280 0 0x80>,
> + <0 0x11000300 0 0x80>,
> + <0 0x11000380 0 0x80>,
> + <0 0x11000400 0 0x80>,
> + <0 0x11000580 0 0x80>,
> + <0 0x11000600 0 0x80>;
> + interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_LOW>,
> + <GIC_SPI 46 IRQ_TYPE_LEVEL_LOW>,
> + <GIC_SPI 47 IRQ_TYPE_LEVEL_LOW>,
> + <GIC_SPI 48 IRQ_TYPE_LEVEL_LOW>,
> + <GIC_SPI 51 IRQ_TYPE_LEVEL_LOW>,
> + <GIC_SPI 52 IRQ_TYPE_LEVEL_LOW>;
> + dma-requests = <6>;
> + clocks = <&infracfg CLK_IFR_AP_DMA>;
> + clock-names = "apdma";
> + #dma-cells = <1>;
> + };
> +
> + auxadc: adc@11001000 {
> + compatible = "mediatek,mt8365-auxadc",
> + "mediatek,mt8173-auxadc";
> + reg = <0 0x11001000 0 0x1000>;
> + clocks = <&infracfg CLK_IFR_AUXADC>;
> + clock-names = "main";
> + #io-channel-cells = <1>;
> + };
> +
> + uart0: serial@11002000 {
> + compatible = "mediatek,mt8365-uart",
> + "mediatek,mt6577-uart";
> + reg = <0 0x11002000 0 0x1000>;
> + interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_LOW>;
> + clocks = <&clk26m>, <&infracfg CLK_IFR_UART0>;
> + clock-names = "baud", "bus";
> + dmas = <&apdma 0
> + &apdma 1>;
You need to split these into two phandles.
> + dma-names = "tx", "rx";
> + status = "disabled";
> + };
> +
> + uart1: serial@11003000 {
> + compatible = "mediatek,mt8365-uart",
> + "mediatek,mt6577-uart";
> + reg = <0 0x11003000 0 0x1000>;
> + interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_LOW>;
> + clocks = <&clk26m>, <&infracfg CLK_IFR_UART1>;
> + clock-names = "baud", "bus";
> + dmas = <&apdma 2
> + &apdma 3>;
Ditto.
> + dma-names = "tx", "rx";
> + status = "disabled";
> + };
> +
> + uart2: serial@11004000 {
> + compatible = "mediatek,mt8365-uart",
> + "mediatek,mt6577-uart";
> + reg = <0 0x11004000 0 0x1000>;
> + interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_LOW>;
> + clocks = <&clk26m>, <&infracfg CLK_IFR_UART2>;
> + clock-names = "baud", "bus";
> + dmas = <&apdma 4
> + &apdma 5>;
> + dma-names = "tx", "rx";
> + status = "disabled";
> + };
> +
> + pwm: pwm@11006000 {
> + compatible = "mediatek,mt8365-pwm";
> + reg = <0 0x11006000 0 0x1000>;
> + #pwm-cells = <2>;
> + interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_LOW>;
> + clocks = <&infracfg CLK_IFR_PWM_HCLK>,
> + <&infracfg CLK_IFR_PWM>,
> + <&infracfg CLK_IFR_PWM1>,
> + <&infracfg CLK_IFR_PWM2>,
> + <&infracfg CLK_IFR_PWM3>;
> + clock-names = "top", "main", "pwm1", "pwm2", "pwm3";
> + };
> +
> + i2c0: i2c@11007000 {
> + compatible = "mediatek,mt8365-i2c",
> + "mediatek,mt8168-i2c";
> + reg = <0 0x11007000 0 0xa0>,
> + <0 0x11000080 0 0x80>;
> + interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_LOW>;
> + clock-div = <1>;
> + clocks = <&infracfg CLK_IFR_I2C0_AXI>,
> + <&infracfg CLK_IFR_AP_DMA>;
> + clock-names = "main", "dma";
> + #address-cells = <1>;
> + #size-cells = <0>;
> + status = "disabled";
> + };
> +
> + i2c1: i2c@11008000 {
> + compatible = "mediatek,mt8365-i2c",
> + "mediatek,mt8168-i2c";
> + reg = <0 0x11008000 0 0xa0>,
> + <0 0x11000100 0 0x80>;
> + interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_LOW>;
> + clock-div = <1>;
> + clocks = <&infracfg CLK_IFR_I2C1_AXI>,
> + <&infracfg CLK_IFR_AP_DMA>;
> + clock-names = "main", "dma";
> + #address-cells = <1>;
> + #size-cells = <0>;
> + status = "disabled";
> + };
> +
> + i2c2: i2c@11009000 {
> + compatible = "mediatek,mt8365-i2c",
> + "mediatek,mt8168-i2c";
> + reg = <0 0x11009000 0 0xa0>,
> + <0 0x11000180 0 0x80>;
> + interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_LOW>;
> + clock-div = <1>;
> + clocks = <&infracfg CLK_IFR_I2C2_AXI>,
> + <&infracfg CLK_IFR_AP_DMA>;
> + clock-names = "main", "dma";
> + #address-cells = <1>;
> + #size-cells = <0>;
> + status = "disabled";
> + };
> +
> + spi: spi@1100a000 {
> + compatible = "mediatek,mt8365-spi",
> + "mediatek,mt7622-spi";
> + #address-cells = <1>;
> + #size-cells = <0>;
> + reg = <0 0x1100a000 0 0x100>;
Reg goes after compatible.
> + interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_LOW>;
> + clocks = <&topckgen CLK_TOP_UNIVPLL2_D4>,
> + <&topckgen CLK_TOP_SPI_SEL>,
> + <&infracfg CLK_IFR_SPI0>;
> + clock-names = "parent-clk", "sel-clk", "spi-clk";
> + status = "disabled";
> + };
> +
> + thermal: thermal@1100b000 {
> + compatible = "mediatek,mt8365-thermal";
> + reg = <0 0x1100b000 0 0x1000>;
> + interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_LOW>;
> + clocks = <&infracfg CLK_IFR_THERM>,
> + <&infracfg CLK_IFR_AUXADC>;
> + clock-names = "therm", "auxadc";
> + mediatek,auxadc = <&auxadc>;
> + mediatek,apmixedsys = <&apmixedsys>;
> + nvmem-cells = <&thermal_calibration>;
> + nvmem-cell-names = "calibration-data";
> + #thermal-sensor-cells = <1>;
> + };
> +
> + disp_pwm: disp-pwm@1100e000 {
Generic node names, so "pwm"
> + compatible = "mediatek,mt8365-disp-pwm",
> + "mediatek,mt8183-disp-pwm";
> + reg = <0 0x1100e000 0 0x1000>;
> + #pwm-cells = <2>;
> + clocks = <&topckgen CLK_TOP_DISP_PWM_SEL>,
> + <&infracfg CLK_IFR_DISP_PWM>;
> + clock-names = "main", "mm";
> + power-domains = <&spm MT8365_POWER_DOMAIN_MM>;
> + status = "disabled";
> + };
> +
> + i2c3: i2c@1100f000 {
> + compatible = "mediatek,mt8365-i2c",
> + "mediatek,mt8168-i2c";
> + reg = <0 0x1100f000 0 0xa0>,
> + <0 0x11000200 0 0x80>;
> + interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_LOW>;
> + clock-div = <1>;
> + clocks = <&infracfg CLK_IFR_I2C3_AXI>,
> + <&infracfg CLK_IFR_AP_DMA>;
> + clock-names = "main", "dma";
> + #address-cells = <1>;
> + #size-cells = <0>;
> + status = "disabled";
> + };
> +
> + ssusb: usb@11201000 {
> + compatible = "mediatek,mt8365-mtu3", "mediatek,mtu3";
> + reg = <0 0x11201000 0 0x2e00>,
> + <0 0x11203e00 0 0x0100>;
> + reg-names = "mac", "ippc";
> + interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_LOW>;
> + phys = <&u2port0 PHY_TYPE_USB2>,
> + <&u2port1 PHY_TYPE_USB2>;
> + clocks = <&topckgen CLK_TOP_SSUSB_TOP_CK_EN>,
> + <&infracfg CLK_IFR_SSUSB_REF>,
> + <&infracfg CLK_IFR_SSUSB_SYS>,
> + <&infracfg CLK_IFR_ICUSB>;
> + clock-names = "sys_ck", "ref_ck", "mcu_ck",
> + "dma_ck";
> + #address-cells = <2>;
> + #size-cells = <2>;
> + ranges;
> + status = "disabled";
> +
> + usb_host: usb@11200000 {
> + compatible = "mediatek,mt8365-xhci",
> + "mediatek,mtk-xhci";
> + reg = <0 0x11200000 0 0x1000>;
> + reg-names = "mac";
> + interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_LOW>;
> + clocks = <&topckgen CLK_TOP_SSUSB_TOP_CK_EN>,
> + <&infracfg CLK_IFR_SSUSB_REF>,
> + <&infracfg CLK_IFR_SSUSB_SYS>,
> + <&infracfg CLK_IFR_ICUSB>,
> + <&infracfg CLK_IFR_SSUSB_XHCI>;
> + clock-names = "sys_ck", "ref_ck", "mcu_ck",
> + "dma_ck", "xhci_ck";
> + status = "disabled";
> + };
> + };
> +
> + mmc0: mmc@11230000 {
> + compatible = "mediatek,mt8365-mmc", "mediatek,mt8183-mmc";
> + reg = <0 0x11230000 0 0x1000>,
> + <0 0x11cd0000 0 0x1000>;
> + interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_LOW>;
> + clocks = <&topckgen CLK_TOP_MSDC50_0_SEL>,
> + <&infracfg CLK_IFR_MSDC0_HCLK>,
> + <&infracfg CLK_IFR_MSDC0_SRC>;
> + clock-names = "source", "hclk", "source_cg";
> + status = "disabled";
> + };
> +
> + mmc1: mmc@11240000 {
> + compatible = "mediatek,mt8365-mmc", "mediatek,mt8183-mmc";
> + reg = <0 0x11240000 0 0x1000>,
> + <0 0x11c90000 0 0x1000>;
> + interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_LOW>;
> + clocks = <&topckgen CLK_TOP_MSDC30_1_SEL>,
> + <&infracfg CLK_IFR_MSDC1_HCLK>,
> + <&infracfg CLK_IFR_MSDC1_SRC>;
> + clock-names = "source", "hclk", "source_cg";
> + status = "disabled";
> + };
> +
> + ethernet: ethernet@112a0000 {
> + compatible = "mediatek,mt8365-eth";
> + reg = <0 0x112a0000 0 0x1000>;
> + mediatek,pericfg = <&infracfg>;
> + interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&topckgen CLK_TOP_ETH_SEL>,
> + <&infracfg CLK_IFR_NIC_AXI>,
> + <&infracfg CLK_IFR_NIC_SLV_AXI>;
> + clock-names = "core", "reg", "trans";
> + status = "disabled";
> + };
> +
> + mipi_tx0: dsi-phy@11c00000 {
> + compatible = "mediatek,mt8365-mipi-tx",
> + "mediatek,mt8183-mipi-tx";
> + reg = <0 0x11c00000 0 0x800>;
> + clocks = <&clk26m>;
> + clock-names = "ref_clk";
> + #clock-cells = <0>;
> + #phy-cells = <0>;
> + clock-output-names = "mipi_tx0_pll";
> + };
> +
> + efuse: efuse@11c50000 {
> + compatible = "mediatek,mt8365-efuse", "mediatek,efuse";
> + reg = <0 0x11c50000 0 0x1000>;
> + #address-cells = <1>;
> + #size-cells = <1>;
> +
> + thermal_calibration: calib@180 {
> + reg = <0x180 0xc>;
> + };
> + };
> +
> + u3phy: t-phy@11cc0000 {
s/t-phy/phy/
> + compatible = "mediatek,mt8365-tphy",
> + "mediatek,generic-tphy-v2";
> + #address-cells = <2>;
> + #phy-cells = <1>;
address-cells, then size, then phy
> + #size-cells = <2>;
> + ranges;
> + status = "okay";
No need for status ok.
> +
> + u2port0: usb-phy@11cc0000 {
> + reg = <0 0x11cc0000 0 0x400>;
> + clocks = <&topckgen CLK_TOP_SSUSB_PHY_CK_EN>,
> + <&topckgen CLK_TOP_USB20_48M_EN>;
> + clock-names = "ref", "da_ref";
> + #phy-cells = <1>;
> + status = "okay";
Ditto
> + };
> +
> + u2port1: usb-phy@11cc1000 {
> + reg = <0 0x11cc1000 0 0x400>;
> + clocks = <&topckgen CLK_TOP_SSUSB_PHY_CK_EN>,
> + <&topckgen CLK_TOP_USB20_48M_EN>;
> + clock-names = "ref", "da_ref";
> + #phy-cells = <1>;
> + status = "okay";
> + };
> + };
> +
> + mfgcfg: syscon@13000000 {
> + compatible = "mediatek,mt8365-mfgcfg", "syscon";
> + reg = <0 0x13000000 0 0x1000>;
> + #clock-cells = <1>;
> + };
> +
> + mmsys: syscon@14000000 {
> + compatible = "mediatek,mt8365-mmsys", "syscon";
> + reg = <0 0x14000000 0 0x1000>;
> + #clock-cells = <1>;
> + };
> +
> + mutex: mutex@14001000 {
> + compatible = "mediatek,mt8365-disp-mutex";
> + reg = <0 0x14001000 0 0x1000>;
> + interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_LOW>;
> + power-domains = <&spm MT8365_POWER_DOMAIN_MM>;
> + };
> +
> + smi_common: smi@14002000 {
s/smi/memory-controller/ in node name?
> + compatible = "mediatek,mt8365-smi-common",
> + "mediatek,mt8186-smi-common";
> + reg = <0 0x14002000 0 0x1000>;
> + clocks = <&mmsys CLK_MM_MM_SMI_COMMON>,
> + <&mmsys CLK_MM_MM_SMI_COMMON>,
> + <&mmsys CLK_MM_MM_SMI_COMM0>,
> + <&mmsys CLK_MM_MM_SMI_COMM1>;
> + clock-names = "apb", "smi", "gals0", "gals1";
> + power-domains = <&spm MT8365_POWER_DOMAIN_MM>;
> + };
> +
> + larb0: larb@14003000 {
The same?
> + compatible = "mediatek,mt8365-smi-larb",
> + "mediatek,mt8186-smi-larb";
> + reg = <0 0x14003000 0 0x1000>;
> + mediatek,smi = <&smi_common>;
> + clocks = <&mmsys CLK_MM_MM_SMI_LARB0>,
> + <&mmsys CLK_MM_MM_SMI_LARB0>;
> + clock-names = "apb", "smi";
> + power-domains = <&spm MT8365_POWER_DOMAIN_MM>;
Best regards,
Krzysztof
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
WARNING: multiple messages have this Message-ID (diff)
From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
To: Fabien Parent <fparent@baylibre.com>,
robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org,
vkoul@kernel.org, qii.wang@mediatek.com, matthias.bgg@gmail.com,
jic23@kernel.org, chaotian.jing@mediatek.com,
ulf.hansson@linaro.org, srinivas.kandagatla@linaro.org,
chunfeng.yun@mediatek.com, broonie@kernel.org,
wim@linux-watchdog.org, linux@roeck-us.net
Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
dmaengine@vger.kernel.org, linux-i2c@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-mediatek@lists.infradead.org, linux-iio@vger.kernel.org,
linux-mmc@vger.kernel.org, linux-phy@lists.infradead.org,
linux-serial@vger.kernel.org, linux-spi@vger.kernel.org,
linux-usb@vger.kernel.org, linux-watchdog@vger.kernel.org
Subject: Re: [PATCH 16/17] arm64: dts: mediatek: add mt8365 device-tree
Date: Wed, 1 Jun 2022 12:37:23 +0200 [thread overview]
Message-ID: <2f7be7c4-9e61-7285-803b-979af6d28c11@linaro.org> (raw)
In-Reply-To: <20220531135026.238475-17-fparent@baylibre.com>
On 31/05/2022 15:50, Fabien Parent wrote:
> Add device-tree for the MT8365 SoC. More information can be found
> about that SoC at the following address:
> https://www.mediatek.com/products/aiot/i350-mt8365
>
> Signed-off-by: Fabien Parent <fparent@baylibre.com>
> ---
> arch/arm64/boot/dts/mediatek/mt8365.dtsi | 1047 ++++++++++++++++++++++
> 1 file changed, 1047 insertions(+)
> create mode 100644 arch/arm64/boot/dts/mediatek/mt8365.dtsi
>
> diff --git a/arch/arm64/boot/dts/mediatek/mt8365.dtsi b/arch/arm64/boot/dts/mediatek/mt8365.dtsi
> new file mode 100644
> index 000000000000..e22b1d259418
> --- /dev/null
> +++ b/arch/arm64/boot/dts/mediatek/mt8365.dtsi
> @@ -0,0 +1,1047 @@
> +// SPDX-License-Identifier: (GPL-2.0 OR MIT)
> +/*
> + * Copyright (c) 2018 MediaTek Inc.
> + */
> +
> +#include <dt-bindings/clock/mediatek,mt8365-clk.h>
> +#include <dt-bindings/interrupt-controller/arm-gic.h>
> +#include <dt-bindings/interrupt-controller/irq.h>
> +#include <dt-bindings/phy/phy.h>
> +#include <dt-bindings/power/mt8365-power.h>
> +#include <dt-bindings/memory/mt8365-larb-port.h>
> +#include <dt-bindings/thermal/thermal.h>
> +
> +/ {
> + compatible = "mediatek,mt8365";
> + interrupt-parent = <&sysirq>;
> + #address-cells = <2>;
> + #size-cells = <2>;
> +
> + aliases {
> + ovl0 = &ovl0;
> + rdma0 = &rdma0;
> + rdma1 = &rdma1;
> + color0 = &color0;
> + ccorr0 = &ccorr0;
> + aal0 = &aal0;
> + gamma0 = &gamma0;
> + dither0 = &dither0;
> + dsi0 = &dsi0;
> + dpi0 = &dpi0;
> + };
> +
> + cpus: cpus {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + cpu-map {
> + cluster0: cluster0 {
> + core0 {
> + cpu = <&cpu0>;
> + };
> + core1 {
> + cpu = <&cpu1>;
> + };
> + core2 {
> + cpu = <&cpu2>;
> + };
> + core3 {
> + cpu = <&cpu3>;
> + };
> + };
> + };
> +
> + cpu0: cpu@0 {
> + device_type = "cpu";
> + compatible = "arm,cortex-a53";
> + reg = <0x0>;
> + clock-frequency = <1600000000>;
> + clocks = <&mcucfg CLK_MCU_BUS_SEL>,
> + <&apmixedsys CLK_APMIXED_MAINPLL>;
> + clock-names = "cpu", "intermediate";
> + operating-points-v2 = <&cluster0_opp>;
> + #cooling-cells = <2>;
> + enable-method = "psci";
> + };
> +
> + cpu1: cpu@1 {
> + device_type = "cpu";
> + compatible = "arm,cortex-a53";
> + reg = <0x1>;
> + clock-frequency = <1600000000>;
> + clocks = <&mcucfg CLK_MCU_BUS_SEL>,
> + <&apmixedsys CLK_APMIXED_MAINPLL>;
> + clock-names = "cpu", "intermediate", "armpll";
> + operating-points-v2 = <&cluster0_opp>;
> + #cooling-cells = <2>;
> + enable-method = "psci";
> + };
> +
> + cpu2: cpu@2 {
> + device_type = "cpu";
> + compatible = "arm,cortex-a53";
> + reg = <0x2>;
> + clock-frequency = <1600000000>;
> + clocks = <&mcucfg CLK_MCU_BUS_SEL>,
> + <&apmixedsys CLK_APMIXED_MAINPLL>;
> + clock-names = "cpu", "intermediate", "armpll";
> + operating-points-v2 = <&cluster0_opp>;
> + #cooling-cells = <2>;
> + enable-method = "psci";
> + };
> +
> + cpu3: cpu@3 {
> + device_type = "cpu";
> + compatible = "arm,cortex-a53";
> + reg = <0x3>;
> + clock-frequency = <1600000000>;
> + clocks = <&mcucfg CLK_MCU_BUS_SEL>,
> + <&apmixedsys CLK_APMIXED_MAINPLL>;
> + clock-names = "cpu", "intermediate", "armpll";
> + operating-points-v2 = <&cluster0_opp>;
> + #cooling-cells = <2>;
> + enable-method = "psci";
> + };
> + };
> +
> + cluster0_opp: opp-table-0 {
> + compatible = "operating-points-v2";
> + opp-shared;
> + opp-850000000 {
> + opp-hz = /bits/ 64 <850000000>;
> + opp-microvolt = <650000>;
> + };
> + opp-918000000 {
> + opp-hz = /bits/ 64 <918000000>;
> + opp-microvolt = <668750>;
> + };
> + opp-987000000 {
> + opp-hz = /bits/ 64 <987000000>;
> + opp-microvolt = <687500>;
> + };
> + opp-1056000000 {
> + opp-hz = /bits/ 64 <1056000000>;
> + opp-microvolt = <706250>;
> + };
> + opp-1125000000 {
> + opp-hz = /bits/ 64 <1125000000>;
> + opp-microvolt = <725000>;
> + };
> + opp-1216000000 {
> + opp-hz = /bits/ 64 <1216000000>;
> + opp-microvolt = <750000>;
> + };
> + opp-1308000000 {
> + opp-hz = /bits/ 64 <1308000000>;
> + opp-microvolt = <775000>;
> + };
> + opp-1400000000 {
> + opp-hz = /bits/ 64 <1400000000>;
> + opp-microvolt = <800000>;
> + };
> + opp-1466000000 {
> + opp-hz = /bits/ 64 <1466000000>;
> + opp-microvolt = <825000>;
> + };
> + opp-1533000000 {
> + opp-hz = /bits/ 64 <1533000000>;
> + opp-microvolt = <850000>;
> + };
> + opp-1633000000 {
> + opp-hz = /bits/ 64 <1633000000>;
> + opp-microvolt = <887500>;
> + };
> + opp-1700000000 {
> + opp-hz = /bits/ 64 <1700000000>;
> + opp-microvolt = <912500>;
> + };
> + opp-1767000000 {
> + opp-hz = /bits/ 64 <1767000000>;
> + opp-microvolt = <937500>;
> + };
> + opp-1834000000 {
> + opp-hz = /bits/ 64 <1834000000>;
> + opp-microvolt = <962500>;
> + };
> + opp-1917000000 {
> + opp-hz = /bits/ 64 <1917000000>;
> + opp-microvolt = <993750>;
> + };
> + opp-2001000000 {
> + opp-hz = /bits/ 64 <2001000000>;
> + opp-microvolt = <1025000>;
> + };
> + };
> +
> + clk26m: oscillator {
> + compatible = "fixed-clock";
> + #clock-cells = <0>;
> + clock-frequency = <26000000>;
This does not look like property of a SoC. Are you sure MT8365 SoC has
this clock (not the board)?
> + clock-output-names = "clk26m";
> + };
> +
> + psci {
> + compatible = "arm,psci-1.0";
> + method = "smc";
> + };
> +
> + reserved-memory {
> + #address-cells = <2>;
> + #size-cells = <2>;
> + ranges;
> +
> + /* 128 KiB reserved for ARM Trusted Firmware (BL31) */
> + bl31_secmon_reserved: secmon@43000000 {
> + no-map;
> + reg = <0 0x43000000 0 0x20000>;
> + };
> + };
> +
> + soc {
> + #address-cells = <2>;
> + #size-cells = <2>;
> + compatible = "simple-bus";
> + ranges;
> +
> + gic: interrupt-controller@c000000 {
> + compatible = "arm,gic-v3";
> + #interrupt-cells = <4>;
Why do you have four cells here (and passing 0 as interrupt)?
> + interrupt-parent = <&gic>;
> + interrupt-controller;
> + reg = <0 0x0c000000 0 0x80000>,
> + <0 0x0c080000 0 0x80000>;
> +
> + interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH 0>;
> + };
> +
> + topckgen: syscon@10000000 {
> + compatible = "mediatek,mt8365-topckgen", "syscon";
> + reg = <0 0x10000000 0 0x1000>;
> + #clock-cells = <1>;
> + };
> +
> + infracfg: syscon@10001000 {
> + compatible = "mediatek,mt8365-infracfg", "syscon";
> + reg = <0 0x10001000 0 0x1000>;
> + #clock-cells = <1>;
> + };
> +
> + pericfg: syscon@10003000 {
> + compatible = "mediatek,mt8365-pericfg", "syscon";
> + reg = <0 0x10003000 0 0x1000>;
> + #clock-cells = <1>;
> + };
> +
> + syscfg_pctl: syscfg-pctl@10005000 {
This is I guess also syscon, like other nodes?
> + compatible = "syscon";
You need specific compatible. Please run `make dtbs_check` and fix the
errors.
> + reg = <0 0x10005000 0 0x1000>;
> + };
> +
> + scpsys: syscon@10006000 {
> + compatible = "syscon", "simple-mfd";
You need specific compatible.
> + reg = <0 0x10006000 0 0x1000>;
> + #power-domain-cells = <1>;
This is definitely wrong now. It's not a simple-mfd device, so please do
not use that property.
> +
> + /* System Power Manager */
> + spm: power-controller {
> + compatible = "mediatek,mt8365-power-controller";
> + #address-cells = <1>;
> + #size-cells = <0>;
> + #power-domain-cells = <1>;
> +
> + /* power domains of the SoC */
The comment suggests you will later add here power domains not for the
SoC. If that's not true, just skip the comment.
> + power-domain@MT8365_POWER_DOMAIN_MM {
> + reg = <MT8365_POWER_DOMAIN_MM>;
> + clocks = <&topckgen CLK_TOP_MM_SEL>,
> + <&mmsys CLK_MM_MM_SMI_COMMON>,
> + <&mmsys CLK_MM_MM_SMI_COMM0>,
> + <&mmsys CLK_MM_MM_SMI_COMM1>,
> + <&mmsys CLK_MM_MM_SMI_LARB0>;
> + clock-names = "mm", "mm-0", "mm-1",
> + "mm-2", "mm-3";
> + #power-domain-cells = <0>;
> + mediatek,infracfg = <&infracfg>;
> + mediatek,infracfg_nao = <&infracfg_nao>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + power-domain@MT8365_POWER_DOMAIN_CAM {
> + reg = <MT8365_POWER_DOMAIN_CAM>;
> + clocks = <&camsys CLK_CAM_LARB2>,
> + <&camsys CLK_CAM_SENIF>,
> + <&camsys CLK_CAMSV0>,
> + <&camsys CLK_CAMSV1>,
> + <&camsys CLK_CAM_FDVT>,
> + <&camsys CLK_CAM_WPE>;
> + clock-names = "cam-0", "cam-1",
> + "cam-2", "cam-3",
> + "cam-4", "cam-5";
> + #power-domain-cells = <0>;
> + mediatek,infracfg = <&infracfg>;
> + mediatek,smi = <&smi_common>;
> + };
> +
> + power-domain@MT8365_POWER_DOMAIN_VDEC {
> + reg = <MT8365_POWER_DOMAIN_VDEC>;
> + #power-domain-cells = <0>;
> + mediatek,smi = <&smi_common>;
> + };
> +
> + power-domain@MT8365_POWER_DOMAIN_VENC {
> + reg = <MT8365_POWER_DOMAIN_VENC>;
> + #power-domain-cells = <0>;
> + mediatek,smi = <&smi_common>;
> + };
> +
> + power-domain@MT8365_POWER_DOMAIN_APU {
> + reg = <MT8365_POWER_DOMAIN_APU>;
> + clocks = <&infracfg CLK_IFR_APU_AXI>,
> + <&apu CLK_APU_IPU_CK>,
> + <&apu CLK_APU_AXI>,
> + <&apu CLK_APU_JTAG>,
> + <&apu CLK_APU_IF_CK>,
> + <&apu CLK_APU_EDMA>,
> + <&apu CLK_APU_AHB>;
> + clock-names = "apu", "apu-0",
> + "apu-1", "apu-2",
> + "apu-3", "apu-4",
> + "apu-5";
> + #power-domain-cells = <0>;
> + mediatek,infracfg = <&infracfg>;
> + mediatek,smi = <&smi_common>;
> + };
> + };
> +
> + power-domain@MT8365_POWER_DOMAIN_CONN {
> + reg = <MT8365_POWER_DOMAIN_CONN>;
> + clocks = <&topckgen CLK_TOP_CONN_32K>,
> + <&topckgen CLK_TOP_CONN_26M>;
> + clock-names = "conn", "conn1";
> + #power-domain-cells = <0>;
> + mediatek,infracfg = <&infracfg>;
> + };
> +
> + power-domain@MT8365_POWER_DOMAIN_MFG {
> + reg = <MT8365_POWER_DOMAIN_MFG>;
> + clocks = <&topckgen CLK_TOP_MFG_SEL>;
> + clock-names = "mfg";
> + #power-domain-cells = <0>;
> + mediatek,infracfg = <&infracfg>;
> + };
> +
> + power-domain@MT8365_POWER_DOMAIN_AUDIO {
> + reg = <MT8365_POWER_DOMAIN_AUDIO>;
> + clocks = <&topckgen CLK_TOP_AUD_INTBUS_SEL>,
> + <&infracfg CLK_IFR_AUDIO>,
> + <&infracfg CLK_IFR_AUD_26M_BK>;
> + clock-names = "audio", "audio1", "audio2";
> + #power-domain-cells = <0>;
> + mediatek,infracfg = <&infracfg>;
> + };
> +
> + power-domain@MT8365_POWER_DOMAIN_DSP {
> + reg = <MT8365_POWER_DOMAIN_DSP>;
> + clocks = <&topckgen CLK_TOP_DSP_SEL>,
> + <&topckgen CLK_TOP_DSP_26M>;
> + clock-names = "dsp", "dsp1";
> + #power-domain-cells = <0>;
> + mediatek,infracfg = <&infracfg>;
> + };
> + };
> + };
> +
> + watchdog: watchdog@10007000 {
> + compatible = "mediatek,mt8365-wdt",
> + "mediatek,mt6589-wdt";
> + reg = <0 0x10007000 0 0x100>;
> + #reset-cells = <1>;
> + };
> +
> + gpt: apxgpt@10008000 {
Generic node names, so "timer"
> + compatible = "mediatek,mt8365-timer",
> + "mediatek,mt6577-timer";
> + reg = <0 0x10008000 0 0x1000>;
> + interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_LOW>;
> + clocks = <&topckgen CLK_TOP_SYS_26M_D2>;
> + clock-names = "clk13m";
> + };
> +
> + pio: pinctrl@1000b000 {
> + compatible = "mediatek,mt8365-pinctrl";
> + reg = <0 0x1000b000 0 0x1000>;
> + mediatek,pctl-regmap = <&syscfg_pctl>;
> + pins-are-numbered;
> + gpio-controller;
> + #gpio-cells = <2>;
> + interrupt-controller;
> + #interrupt-cells = <2>;
> + interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
> + };
> +
> + apmixedsys: syscon@1000c000 {
> + compatible = "mediatek,mt8365-apmixedsys", "syscon";
> + reg = <0 0x1000c000 0 0x1000>;
> + #clock-cells = <1>;
> + };
> +
> + pwrap: pwrap@1000d000 {
> + compatible = "mediatek,mt8365-pwrap";
> + reg = <0 0x1000d000 0 0x1000>;
> + reg-names = "pwrap";
> + interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&infracfg CLK_IFR_PWRAP_SPI>,
> + <&infracfg CLK_IFR_PMIC_AP>,
> + <&infracfg CLK_IFR_PWRAP_SYS>,
> + <&infracfg CLK_IFR_PWRAP_TMR>;
> + clock-names = "spi", "wrap", "sys", "tmr";
> + };
> +
> + keypad: kp@10010000 {
s/kp/keypad/
> + compatible = "mediatek,mt6779-keypad";
> + reg = <0 0x10010000 0 0x1000>;
> + wakeup-source;
> + interrupts = <GIC_SPI 124 IRQ_TYPE_EDGE_FALLING>;
> + clocks = <&clk26m>;
> + clock-names = "kpd";
> + status = "disabled";
> + };
> +
> + mcucfg: syscon@10200000 {
> + compatible = "mediatek,mt8365-mcucfg", "syscon";
> + reg = <0 0x10200000 0 0x2000>;
> + #clock-cells = <1>;
> + };
> +
> + sysirq: intpol-controller@10200a80 {
interrupt-controller
> + compatible = "mediatek,mt8365-sysirq",
> + "mediatek,mt6577-sysirq";
> + interrupt-controller;
> + #interrupt-cells = <3>;
> + interrupt-parent = <&gic>;
> + reg = <0 0x10200a80 0 0x20>;
> + };
> +
> + iommu: iommu@10205000 {
> + compatible = "mediatek,mt8365-m4u";
> + reg = <0 0x10205000 0 0x1000>;
> + interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_LOW>;
> + mediatek,larbs = <&larb0>, <&larb1>, <&larb2>, <&larb3>;
> + #iommu-cells = <1>;
> + };
> +
> + infracfg_nao: infracfg-nao@1020e000 {
Other nodes are named syscon
> + compatible = "syscon";
No, syscon cannot be alone.
> + reg = <0 0x1020e000 0 0x1000>;
> + };
> +
> + rng: rng@1020f000 {
> + compatible = "mediatek,mt8365-rng",
> + "mediatek,mt7623-rng";
> + reg = <0 0x1020f000 0 0x100>;
> + clocks = <&infracfg CLK_IFR_TRNG>;
> + clock-names = "rng";
> + };
> +
> + apdma: dma-controller@11000280 {
> + compatible = "mediatek,mt8365-uart-dma",
> + "mediatek,mt6577-uart-dma";
> + reg = <0 0x11000280 0 0x80>,
> + <0 0x11000300 0 0x80>,
> + <0 0x11000380 0 0x80>,
> + <0 0x11000400 0 0x80>,
> + <0 0x11000580 0 0x80>,
> + <0 0x11000600 0 0x80>;
> + interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_LOW>,
> + <GIC_SPI 46 IRQ_TYPE_LEVEL_LOW>,
> + <GIC_SPI 47 IRQ_TYPE_LEVEL_LOW>,
> + <GIC_SPI 48 IRQ_TYPE_LEVEL_LOW>,
> + <GIC_SPI 51 IRQ_TYPE_LEVEL_LOW>,
> + <GIC_SPI 52 IRQ_TYPE_LEVEL_LOW>;
> + dma-requests = <6>;
> + clocks = <&infracfg CLK_IFR_AP_DMA>;
> + clock-names = "apdma";
> + #dma-cells = <1>;
> + };
> +
> + auxadc: adc@11001000 {
> + compatible = "mediatek,mt8365-auxadc",
> + "mediatek,mt8173-auxadc";
> + reg = <0 0x11001000 0 0x1000>;
> + clocks = <&infracfg CLK_IFR_AUXADC>;
> + clock-names = "main";
> + #io-channel-cells = <1>;
> + };
> +
> + uart0: serial@11002000 {
> + compatible = "mediatek,mt8365-uart",
> + "mediatek,mt6577-uart";
> + reg = <0 0x11002000 0 0x1000>;
> + interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_LOW>;
> + clocks = <&clk26m>, <&infracfg CLK_IFR_UART0>;
> + clock-names = "baud", "bus";
> + dmas = <&apdma 0
> + &apdma 1>;
You need to split these into two phandles.
> + dma-names = "tx", "rx";
> + status = "disabled";
> + };
> +
> + uart1: serial@11003000 {
> + compatible = "mediatek,mt8365-uart",
> + "mediatek,mt6577-uart";
> + reg = <0 0x11003000 0 0x1000>;
> + interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_LOW>;
> + clocks = <&clk26m>, <&infracfg CLK_IFR_UART1>;
> + clock-names = "baud", "bus";
> + dmas = <&apdma 2
> + &apdma 3>;
Ditto.
> + dma-names = "tx", "rx";
> + status = "disabled";
> + };
> +
> + uart2: serial@11004000 {
> + compatible = "mediatek,mt8365-uart",
> + "mediatek,mt6577-uart";
> + reg = <0 0x11004000 0 0x1000>;
> + interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_LOW>;
> + clocks = <&clk26m>, <&infracfg CLK_IFR_UART2>;
> + clock-names = "baud", "bus";
> + dmas = <&apdma 4
> + &apdma 5>;
> + dma-names = "tx", "rx";
> + status = "disabled";
> + };
> +
> + pwm: pwm@11006000 {
> + compatible = "mediatek,mt8365-pwm";
> + reg = <0 0x11006000 0 0x1000>;
> + #pwm-cells = <2>;
> + interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_LOW>;
> + clocks = <&infracfg CLK_IFR_PWM_HCLK>,
> + <&infracfg CLK_IFR_PWM>,
> + <&infracfg CLK_IFR_PWM1>,
> + <&infracfg CLK_IFR_PWM2>,
> + <&infracfg CLK_IFR_PWM3>;
> + clock-names = "top", "main", "pwm1", "pwm2", "pwm3";
> + };
> +
> + i2c0: i2c@11007000 {
> + compatible = "mediatek,mt8365-i2c",
> + "mediatek,mt8168-i2c";
> + reg = <0 0x11007000 0 0xa0>,
> + <0 0x11000080 0 0x80>;
> + interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_LOW>;
> + clock-div = <1>;
> + clocks = <&infracfg CLK_IFR_I2C0_AXI>,
> + <&infracfg CLK_IFR_AP_DMA>;
> + clock-names = "main", "dma";
> + #address-cells = <1>;
> + #size-cells = <0>;
> + status = "disabled";
> + };
> +
> + i2c1: i2c@11008000 {
> + compatible = "mediatek,mt8365-i2c",
> + "mediatek,mt8168-i2c";
> + reg = <0 0x11008000 0 0xa0>,
> + <0 0x11000100 0 0x80>;
> + interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_LOW>;
> + clock-div = <1>;
> + clocks = <&infracfg CLK_IFR_I2C1_AXI>,
> + <&infracfg CLK_IFR_AP_DMA>;
> + clock-names = "main", "dma";
> + #address-cells = <1>;
> + #size-cells = <0>;
> + status = "disabled";
> + };
> +
> + i2c2: i2c@11009000 {
> + compatible = "mediatek,mt8365-i2c",
> + "mediatek,mt8168-i2c";
> + reg = <0 0x11009000 0 0xa0>,
> + <0 0x11000180 0 0x80>;
> + interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_LOW>;
> + clock-div = <1>;
> + clocks = <&infracfg CLK_IFR_I2C2_AXI>,
> + <&infracfg CLK_IFR_AP_DMA>;
> + clock-names = "main", "dma";
> + #address-cells = <1>;
> + #size-cells = <0>;
> + status = "disabled";
> + };
> +
> + spi: spi@1100a000 {
> + compatible = "mediatek,mt8365-spi",
> + "mediatek,mt7622-spi";
> + #address-cells = <1>;
> + #size-cells = <0>;
> + reg = <0 0x1100a000 0 0x100>;
Reg goes after compatible.
> + interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_LOW>;
> + clocks = <&topckgen CLK_TOP_UNIVPLL2_D4>,
> + <&topckgen CLK_TOP_SPI_SEL>,
> + <&infracfg CLK_IFR_SPI0>;
> + clock-names = "parent-clk", "sel-clk", "spi-clk";
> + status = "disabled";
> + };
> +
> + thermal: thermal@1100b000 {
> + compatible = "mediatek,mt8365-thermal";
> + reg = <0 0x1100b000 0 0x1000>;
> + interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_LOW>;
> + clocks = <&infracfg CLK_IFR_THERM>,
> + <&infracfg CLK_IFR_AUXADC>;
> + clock-names = "therm", "auxadc";
> + mediatek,auxadc = <&auxadc>;
> + mediatek,apmixedsys = <&apmixedsys>;
> + nvmem-cells = <&thermal_calibration>;
> + nvmem-cell-names = "calibration-data";
> + #thermal-sensor-cells = <1>;
> + };
> +
> + disp_pwm: disp-pwm@1100e000 {
Generic node names, so "pwm"
> + compatible = "mediatek,mt8365-disp-pwm",
> + "mediatek,mt8183-disp-pwm";
> + reg = <0 0x1100e000 0 0x1000>;
> + #pwm-cells = <2>;
> + clocks = <&topckgen CLK_TOP_DISP_PWM_SEL>,
> + <&infracfg CLK_IFR_DISP_PWM>;
> + clock-names = "main", "mm";
> + power-domains = <&spm MT8365_POWER_DOMAIN_MM>;
> + status = "disabled";
> + };
> +
> + i2c3: i2c@1100f000 {
> + compatible = "mediatek,mt8365-i2c",
> + "mediatek,mt8168-i2c";
> + reg = <0 0x1100f000 0 0xa0>,
> + <0 0x11000200 0 0x80>;
> + interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_LOW>;
> + clock-div = <1>;
> + clocks = <&infracfg CLK_IFR_I2C3_AXI>,
> + <&infracfg CLK_IFR_AP_DMA>;
> + clock-names = "main", "dma";
> + #address-cells = <1>;
> + #size-cells = <0>;
> + status = "disabled";
> + };
> +
> + ssusb: usb@11201000 {
> + compatible = "mediatek,mt8365-mtu3", "mediatek,mtu3";
> + reg = <0 0x11201000 0 0x2e00>,
> + <0 0x11203e00 0 0x0100>;
> + reg-names = "mac", "ippc";
> + interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_LOW>;
> + phys = <&u2port0 PHY_TYPE_USB2>,
> + <&u2port1 PHY_TYPE_USB2>;
> + clocks = <&topckgen CLK_TOP_SSUSB_TOP_CK_EN>,
> + <&infracfg CLK_IFR_SSUSB_REF>,
> + <&infracfg CLK_IFR_SSUSB_SYS>,
> + <&infracfg CLK_IFR_ICUSB>;
> + clock-names = "sys_ck", "ref_ck", "mcu_ck",
> + "dma_ck";
> + #address-cells = <2>;
> + #size-cells = <2>;
> + ranges;
> + status = "disabled";
> +
> + usb_host: usb@11200000 {
> + compatible = "mediatek,mt8365-xhci",
> + "mediatek,mtk-xhci";
> + reg = <0 0x11200000 0 0x1000>;
> + reg-names = "mac";
> + interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_LOW>;
> + clocks = <&topckgen CLK_TOP_SSUSB_TOP_CK_EN>,
> + <&infracfg CLK_IFR_SSUSB_REF>,
> + <&infracfg CLK_IFR_SSUSB_SYS>,
> + <&infracfg CLK_IFR_ICUSB>,
> + <&infracfg CLK_IFR_SSUSB_XHCI>;
> + clock-names = "sys_ck", "ref_ck", "mcu_ck",
> + "dma_ck", "xhci_ck";
> + status = "disabled";
> + };
> + };
> +
> + mmc0: mmc@11230000 {
> + compatible = "mediatek,mt8365-mmc", "mediatek,mt8183-mmc";
> + reg = <0 0x11230000 0 0x1000>,
> + <0 0x11cd0000 0 0x1000>;
> + interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_LOW>;
> + clocks = <&topckgen CLK_TOP_MSDC50_0_SEL>,
> + <&infracfg CLK_IFR_MSDC0_HCLK>,
> + <&infracfg CLK_IFR_MSDC0_SRC>;
> + clock-names = "source", "hclk", "source_cg";
> + status = "disabled";
> + };
> +
> + mmc1: mmc@11240000 {
> + compatible = "mediatek,mt8365-mmc", "mediatek,mt8183-mmc";
> + reg = <0 0x11240000 0 0x1000>,
> + <0 0x11c90000 0 0x1000>;
> + interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_LOW>;
> + clocks = <&topckgen CLK_TOP_MSDC30_1_SEL>,
> + <&infracfg CLK_IFR_MSDC1_HCLK>,
> + <&infracfg CLK_IFR_MSDC1_SRC>;
> + clock-names = "source", "hclk", "source_cg";
> + status = "disabled";
> + };
> +
> + ethernet: ethernet@112a0000 {
> + compatible = "mediatek,mt8365-eth";
> + reg = <0 0x112a0000 0 0x1000>;
> + mediatek,pericfg = <&infracfg>;
> + interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&topckgen CLK_TOP_ETH_SEL>,
> + <&infracfg CLK_IFR_NIC_AXI>,
> + <&infracfg CLK_IFR_NIC_SLV_AXI>;
> + clock-names = "core", "reg", "trans";
> + status = "disabled";
> + };
> +
> + mipi_tx0: dsi-phy@11c00000 {
> + compatible = "mediatek,mt8365-mipi-tx",
> + "mediatek,mt8183-mipi-tx";
> + reg = <0 0x11c00000 0 0x800>;
> + clocks = <&clk26m>;
> + clock-names = "ref_clk";
> + #clock-cells = <0>;
> + #phy-cells = <0>;
> + clock-output-names = "mipi_tx0_pll";
> + };
> +
> + efuse: efuse@11c50000 {
> + compatible = "mediatek,mt8365-efuse", "mediatek,efuse";
> + reg = <0 0x11c50000 0 0x1000>;
> + #address-cells = <1>;
> + #size-cells = <1>;
> +
> + thermal_calibration: calib@180 {
> + reg = <0x180 0xc>;
> + };
> + };
> +
> + u3phy: t-phy@11cc0000 {
s/t-phy/phy/
> + compatible = "mediatek,mt8365-tphy",
> + "mediatek,generic-tphy-v2";
> + #address-cells = <2>;
> + #phy-cells = <1>;
address-cells, then size, then phy
> + #size-cells = <2>;
> + ranges;
> + status = "okay";
No need for status ok.
> +
> + u2port0: usb-phy@11cc0000 {
> + reg = <0 0x11cc0000 0 0x400>;
> + clocks = <&topckgen CLK_TOP_SSUSB_PHY_CK_EN>,
> + <&topckgen CLK_TOP_USB20_48M_EN>;
> + clock-names = "ref", "da_ref";
> + #phy-cells = <1>;
> + status = "okay";
Ditto
> + };
> +
> + u2port1: usb-phy@11cc1000 {
> + reg = <0 0x11cc1000 0 0x400>;
> + clocks = <&topckgen CLK_TOP_SSUSB_PHY_CK_EN>,
> + <&topckgen CLK_TOP_USB20_48M_EN>;
> + clock-names = "ref", "da_ref";
> + #phy-cells = <1>;
> + status = "okay";
> + };
> + };
> +
> + mfgcfg: syscon@13000000 {
> + compatible = "mediatek,mt8365-mfgcfg", "syscon";
> + reg = <0 0x13000000 0 0x1000>;
> + #clock-cells = <1>;
> + };
> +
> + mmsys: syscon@14000000 {
> + compatible = "mediatek,mt8365-mmsys", "syscon";
> + reg = <0 0x14000000 0 0x1000>;
> + #clock-cells = <1>;
> + };
> +
> + mutex: mutex@14001000 {
> + compatible = "mediatek,mt8365-disp-mutex";
> + reg = <0 0x14001000 0 0x1000>;
> + interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_LOW>;
> + power-domains = <&spm MT8365_POWER_DOMAIN_MM>;
> + };
> +
> + smi_common: smi@14002000 {
s/smi/memory-controller/ in node name?
> + compatible = "mediatek,mt8365-smi-common",
> + "mediatek,mt8186-smi-common";
> + reg = <0 0x14002000 0 0x1000>;
> + clocks = <&mmsys CLK_MM_MM_SMI_COMMON>,
> + <&mmsys CLK_MM_MM_SMI_COMMON>,
> + <&mmsys CLK_MM_MM_SMI_COMM0>,
> + <&mmsys CLK_MM_MM_SMI_COMM1>;
> + clock-names = "apb", "smi", "gals0", "gals1";
> + power-domains = <&spm MT8365_POWER_DOMAIN_MM>;
> + };
> +
> + larb0: larb@14003000 {
The same?
> + compatible = "mediatek,mt8365-smi-larb",
> + "mediatek,mt8186-smi-larb";
> + reg = <0 0x14003000 0 0x1000>;
> + mediatek,smi = <&smi_common>;
> + clocks = <&mmsys CLK_MM_MM_SMI_LARB0>,
> + <&mmsys CLK_MM_MM_SMI_LARB0>;
> + clock-names = "apb", "smi";
> + power-domains = <&spm MT8365_POWER_DOMAIN_MM>;
Best regards,
Krzysztof
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2022-06-01 10:37 UTC|newest]
Thread overview: 174+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-31 13:50 [PATCH 00/17] Add support for MT8365 EVK board Fabien Parent
2022-05-31 13:50 ` Fabien Parent
2022-05-31 13:50 ` Fabien Parent
2022-05-31 13:50 ` Fabien Parent
2022-05-31 13:50 ` [PATCH 01/17] dt-bindings: i2c: i2c-mt65xx: add binding for MT8365 SoC Fabien Parent
2022-05-31 13:50 ` Fabien Parent
2022-05-31 13:50 ` Fabien Parent
2022-05-31 13:50 ` Fabien Parent
2022-06-01 9:34 ` Krzysztof Kozlowski
2022-06-01 9:34 ` Krzysztof Kozlowski
2022-06-01 9:34 ` Krzysztof Kozlowski
2022-06-01 9:34 ` Krzysztof Kozlowski
2022-05-31 13:50 ` [PATCH 02/17] dt-bindings: memory: add mt8365 SoC binding documentation Fabien Parent
2022-05-31 13:50 ` Fabien Parent
2022-05-31 13:50 ` Fabien Parent
2022-05-31 13:50 ` Fabien Parent
2022-06-01 9:34 ` Krzysztof Kozlowski
2022-06-01 9:34 ` Krzysztof Kozlowski
2022-06-01 9:34 ` Krzysztof Kozlowski
2022-06-01 9:34 ` Krzysztof Kozlowski
2022-05-31 13:50 ` [PATCH 03/17] dt-bindings: mmc: mtk-sd: add bindings for MT8365 SoC Fabien Parent
2022-05-31 13:50 ` Fabien Parent
2022-05-31 13:50 ` Fabien Parent
2022-05-31 13:50 ` Fabien Parent
2022-06-01 9:35 ` Krzysztof Kozlowski
2022-06-01 9:35 ` Krzysztof Kozlowski
2022-06-01 9:35 ` Krzysztof Kozlowski
2022-06-01 9:35 ` Krzysztof Kozlowski
2022-05-31 13:50 ` [PATCH 04/17] dt-bindings: arm: mediatek: Add binding for mt8365-evk board Fabien Parent
2022-05-31 13:50 ` Fabien Parent
2022-05-31 13:50 ` Fabien Parent
2022-05-31 13:50 ` Fabien Parent
2022-06-01 9:36 ` Krzysztof Kozlowski
2022-06-01 9:36 ` Krzysztof Kozlowski
2022-06-01 9:36 ` Krzysztof Kozlowski
2022-06-01 9:36 ` Krzysztof Kozlowski
2022-05-31 13:50 ` [PATCH 05/17] dt-bindings: dma: mediatek,uart-dma: add MT8365 bindings Fabien Parent
2022-05-31 13:50 ` Fabien Parent
2022-05-31 13:50 ` Fabien Parent
2022-05-31 13:50 ` Fabien Parent
2022-06-01 9:36 ` Krzysztof Kozlowski
2022-06-01 9:36 ` Krzysztof Kozlowski
2022-06-01 9:36 ` Krzysztof Kozlowski
2022-06-01 9:36 ` Krzysztof Kozlowski
2022-06-09 5:56 ` Vinod Koul
2022-06-09 5:56 ` Vinod Koul
2022-06-09 5:56 ` Vinod Koul
2022-06-09 5:56 ` Vinod Koul
2022-05-31 13:50 ` [PATCH 06/17] dt-bindings: iio: adc: mediatek: add MT8365 SoC bindings Fabien Parent
2022-05-31 13:50 ` Fabien Parent
2022-05-31 13:50 ` Fabien Parent
2022-05-31 13:50 ` Fabien Parent
2022-06-01 10:01 ` Krzysztof Kozlowski
2022-06-01 10:01 ` Krzysztof Kozlowski
2022-06-01 10:01 ` Krzysztof Kozlowski
2022-06-01 10:01 ` Krzysztof Kozlowski
2022-05-31 13:50 ` [PATCH 07/17] dt-bindings: nvmem: mediatek,efuse: add MT8365 bindings Fabien Parent
2022-05-31 13:50 ` Fabien Parent
2022-05-31 13:50 ` Fabien Parent
2022-05-31 13:50 ` Fabien Parent
2022-06-01 10:01 ` Krzysztof Kozlowski
2022-06-01 10:01 ` Krzysztof Kozlowski
2022-06-01 10:01 ` Krzysztof Kozlowski
2022-06-01 10:01 ` Krzysztof Kozlowski
2022-05-31 13:50 ` [PATCH 08/17] dt-bindings: watchdog: mtk-wdt: Add MT8365 SoC bindings Fabien Parent
2022-05-31 13:50 ` Fabien Parent
2022-05-31 13:50 ` Fabien Parent
2022-05-31 13:50 ` Fabien Parent
2022-06-01 10:03 ` Krzysztof Kozlowski
2022-06-01 10:03 ` Krzysztof Kozlowski
2022-06-01 10:03 ` Krzysztof Kozlowski
2022-06-01 10:03 ` Krzysztof Kozlowski
2023-02-25 16:41 ` Guenter Roeck
2023-02-25 16:41 ` Guenter Roeck
2023-02-25 16:41 ` Guenter Roeck
2022-05-31 13:50 ` [PATCH 09/17] dt-bindings: spi: mt65xx: add " Fabien Parent
2022-05-31 13:50 ` Fabien Parent
2022-05-31 13:50 ` Fabien Parent
2022-05-31 13:50 ` Fabien Parent
2022-06-01 10:02 ` Krzysztof Kozlowski
2022-06-01 10:02 ` Krzysztof Kozlowski
2022-06-01 10:02 ` Krzysztof Kozlowski
2022-06-01 10:02 ` Krzysztof Kozlowski
2022-05-31 13:50 ` [PATCH 10/17] dt-bindings: serial: mediatek: add MT8365 bindings Fabien Parent
2022-05-31 13:50 ` Fabien Parent
2022-05-31 13:50 ` Fabien Parent
2022-05-31 13:50 ` Fabien Parent
2022-06-01 10:12 ` Krzysztof Kozlowski
2022-06-01 10:12 ` Krzysztof Kozlowski
2022-06-01 10:12 ` Krzysztof Kozlowski
2022-06-01 10:12 ` Krzysztof Kozlowski
2022-05-31 13:50 ` [PATCH 11/17] dt-bindings: phy: mediatek,dsi-phy: Add MT8365 SoC bindings Fabien Parent
2022-05-31 13:50 ` Fabien Parent
2022-05-31 13:50 ` Fabien Parent
2022-05-31 13:50 ` Fabien Parent
2022-06-01 10:13 ` Krzysztof Kozlowski
2022-06-01 10:13 ` Krzysztof Kozlowski
2022-06-01 10:13 ` Krzysztof Kozlowski
2022-06-01 10:13 ` Krzysztof Kozlowski
2022-06-09 5:58 ` Vinod Koul
2022-06-09 5:58 ` Vinod Koul
2022-06-09 5:58 ` Vinod Koul
2022-06-09 5:58 ` Vinod Koul
2022-05-31 13:50 ` [PATCH 12/17] dt-bindings: phy: mediatek,tphy: add " Fabien Parent
2022-05-31 13:50 ` Fabien Parent
2022-05-31 13:50 ` Fabien Parent
2022-05-31 13:50 ` Fabien Parent
2022-06-01 10:13 ` Krzysztof Kozlowski
2022-06-01 10:13 ` Krzysztof Kozlowski
2022-06-01 10:13 ` Krzysztof Kozlowski
2022-06-01 10:13 ` Krzysztof Kozlowski
2022-05-31 13:50 ` [PATCH 13/17] dt-bindings: usb: mediatek,mtu3: " Fabien Parent
2022-05-31 13:50 ` Fabien Parent
2022-05-31 13:50 ` Fabien Parent
2022-05-31 13:50 ` Fabien Parent
2022-06-01 10:14 ` Krzysztof Kozlowski
2022-06-01 10:14 ` Krzysztof Kozlowski
2022-06-01 10:14 ` Krzysztof Kozlowski
2022-06-01 10:14 ` Krzysztof Kozlowski
2022-05-31 13:50 ` [PATCH 14/17] dt-bindings: usb: mediatek,mtk-xhci: " Fabien Parent
2022-05-31 13:50 ` Fabien Parent
2022-05-31 13:50 ` Fabien Parent
2022-05-31 13:50 ` Fabien Parent
2022-06-01 10:14 ` Krzysztof Kozlowski
2022-06-01 10:14 ` Krzysztof Kozlowski
2022-06-01 10:14 ` Krzysztof Kozlowski
2022-06-01 10:14 ` Krzysztof Kozlowski
2022-05-31 13:50 ` [PATCH 15/17] arm64: dts: mediatek: add mt6357 device-tree Fabien Parent
2022-05-31 13:50 ` Fabien Parent
2022-05-31 13:50 ` Fabien Parent
2022-05-31 13:50 ` Fabien Parent
2022-06-01 10:15 ` Krzysztof Kozlowski
2022-06-01 10:15 ` Krzysztof Kozlowski
2022-06-01 10:15 ` Krzysztof Kozlowski
2022-06-01 10:15 ` Krzysztof Kozlowski
2022-05-31 13:50 ` [PATCH 16/17] arm64: dts: mediatek: add mt8365 device-tree Fabien Parent
2022-05-31 13:50 ` Fabien Parent
2022-05-31 13:50 ` Fabien Parent
2022-05-31 13:50 ` Fabien Parent
2022-06-01 10:37 ` Krzysztof Kozlowski [this message]
2022-06-01 10:37 ` Krzysztof Kozlowski
2022-06-01 10:37 ` Krzysztof Kozlowski
2022-06-01 10:37 ` Krzysztof Kozlowski
2022-09-22 2:49 ` Chunfeng Yun
2022-09-22 2:49 ` Chunfeng Yun
2022-09-22 2:49 ` Chunfeng Yun
2022-09-22 2:54 ` Chunfeng Yun
2022-09-22 2:54 ` Chunfeng Yun
2022-09-22 2:54 ` Chunfeng Yun
2022-07-20 13:12 ` Amjad Ouled-Ameur
2022-07-20 13:12 ` Amjad Ouled-Ameur
2022-07-20 13:12 ` Amjad Ouled-Ameur
2022-09-14 13:27 ` Amjad Ouled-Ameur
2022-09-14 13:27 ` Amjad Ouled-Ameur
2022-09-14 13:27 ` Amjad Ouled-Ameur
2022-07-26 9:57 ` Amjad Ouled-Ameur
2022-07-26 9:57 ` Amjad Ouled-Ameur
2022-07-26 9:57 ` Amjad Ouled-Ameur
2022-05-31 13:50 ` [PATCH 17/17] arm64: dts: mediatek: add mt8365-evk board device-tree Fabien Parent
2022-05-31 13:50 ` Fabien Parent
2022-05-31 13:50 ` Fabien Parent
2022-05-31 13:50 ` Fabien Parent
2022-06-01 10:41 ` Krzysztof Kozlowski
2022-06-01 10:41 ` Krzysztof Kozlowski
2022-06-01 10:41 ` Krzysztof Kozlowski
2022-06-01 10:41 ` Krzysztof Kozlowski
2022-06-01 9:32 ` [PATCH 00/17] Add support for MT8365 EVK board Krzysztof Kozlowski
2022-06-01 9:32 ` Krzysztof Kozlowski
2022-06-01 9:32 ` Krzysztof Kozlowski
2022-06-01 9:32 ` Krzysztof Kozlowski
2022-06-07 10:46 ` (subset) " Mark Brown
2022-06-07 10:46 ` Mark Brown
2022-06-07 10:46 ` Mark Brown
2022-06-07 10:46 ` Mark Brown
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=2f7be7c4-9e61-7285-803b-979af6d28c11@linaro.org \
--to=krzysztof.kozlowski@linaro.org \
--cc=broonie@kernel.org \
--cc=chaotian.jing@mediatek.com \
--cc=chunfeng.yun@mediatek.com \
--cc=devicetree@vger.kernel.org \
--cc=dmaengine@vger.kernel.org \
--cc=fparent@baylibre.com \
--cc=jic23@kernel.org \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-i2c@vger.kernel.org \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=linux-mmc@vger.kernel.org \
--cc=linux-phy@lists.infradead.org \
--cc=linux-serial@vger.kernel.org \
--cc=linux-spi@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=linux-watchdog@vger.kernel.org \
--cc=linux@roeck-us.net \
--cc=matthias.bgg@gmail.com \
--cc=qii.wang@mediatek.com \
--cc=robh+dt@kernel.org \
--cc=srinivas.kandagatla@linaro.org \
--cc=ulf.hansson@linaro.org \
--cc=vkoul@kernel.org \
--cc=wim@linux-watchdog.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.