From: Johan Jonker <jbx6244@gmail.com>
To: "Andreas Färber" <afaerber@suse.de>, linux-rockchip@lists.infradead.org
Cc: linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, Rob Herring <robh+dt@kernel.org>,
Heiko Stuebner <heiko@sntech.de>,
devicetree@vger.kernel.org
Subject: Re: [PATCH 3/9] arm64: dts: rockchip: Prepare Rockchip RK1808
Date: Mon, 17 May 2021 03:29:33 +0200 [thread overview]
Message-ID: <f46625ed-4c83-9fd2-52cd-e07a4d93a254@gmail.com> (raw)
In-Reply-To: <20210516230551.12469-4-afaerber@suse.de>
Hi Andreas,
Send the complete serie to all maintainers and mail lists.
===
Heiko's sort rules:
compatible
reg
interrupts
[alphabetical]
status [if needed]
===
My incomplete list:
For nodes:
If exists on top: model, compatible and chosen.
Sort things without reg alphabetical first,
then sort the rest by reg address.
Inside nodes:
If exists on top: compatible, reg and interrupts.
In alphabetical order the required properties.
Then in alphabetical order the other properties.
And as last things that start with '#' in alphabetical order.
Add status below all other properties for soc internal components with
any board-specifics.
Keep an empty line between properties and nodes.
Exceptions:
Sort pinctrl-0 above pinctrl-names, so it stays in line with clock-names
and dma-names.
Sort simple-audio-card,name above other simple-audio-card properties.
Sort regulator-name above other regulator properties.
Sort regulator-min-microvolt above regulator-max-microvolt.
===
Fix complete dtsi for property sort order!
Add more drivers. (cru, pinctrl)
Johan
On 5/17/21 1:05 AM, Andreas Färber wrote:
> Add an initial Device Tree for Rockchip RK1808 SoC.
> Based on shipping TB-RK1808M0 DTB.
>
> Signed-off-by: Andreas Färber <afaerber@suse.de>
> ---
> arch/arm64/boot/dts/rockchip/rk1808.dtsi | 203 +++++++++++++++++++++++
> 1 file changed, 203 insertions(+)
> create mode 100644 arch/arm64/boot/dts/rockchip/rk1808.dtsi
>
> diff --git a/arch/arm64/boot/dts/rockchip/rk1808.dtsi b/arch/arm64/boot/dts/rockchip/rk1808.dtsi
> new file mode 100644
> index 000000000000..af2b51afda7d
> --- /dev/null
> +++ b/arch/arm64/boot/dts/rockchip/rk1808.dtsi
> @@ -0,0 +1,203 @@
> +// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
> +/*
> + * Copyright (c) 2021 Andreas Färber
> + */
> +
#include <dt-bindings/clock/rk1808-cru.h>
> +#include <dt-bindings/interrupt-controller/arm-gic.h>
> +#include <dt-bindings/interrupt-controller/irq.h>
> +
> +/ {
> + compatible = "rockchip,rk1808";
> + interrupt-parent = <&gic>;
> + #address-cells = <1>;
> + #size-cells = <1>;
#address-cells = <2>;
#size-cells = <2>;
64 bit ??
> +
> + aliases {
> + serial0 = &uart0;
> + serial1 = &uart1;
> + serial2 = &uart2;
> + serial3 = &uart3;
> + serial4 = &uart4;
> + serial5 = &uart5;
> + serial6 = &uart6;
> + serial7 = &uart7;
> + };
> +
> + cpus {
> + #address-cells = <2>;
> + #size-cells = <0>;
> +
> + cpu0: cpu@0 {
> + device_type = "cpu";
> + compatible = "arm,cortex-a35";
> + reg = <0x0 0x0>;
> + enable-method = "psci";
> + cpu-idle-states = <&CPU_SLEEP>;
> + };
> +
> + cpu1: cpu@1 {
> + device_type = "cpu";
> + compatible = "arm,cortex-a35";
> + reg = <0x0 0x1>;
> + enable-method = "psci";
> + cpu-idle-states = <&CPU_SLEEP>;
> + };
> +
> + idle-states {
> + entry-method = "psci";
> +
> + CPU_SLEEP: cpu-sleep {
> + compatible = "arm,idle-state";
> + local-timer-stop;
> + arm,psci-suspend-param = <0x10000>;
> + entry-latency-us = <120>;
> + exit-latency-us = <250>;
> + min-residency-us = <900>;
> + };
> + };
> + };
> +
> + arm-pmu {
sort node names
> + compatible = "arm,cortex-a35-pmu";
> + interrupts = <GIC_SPI 228 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>;
> + interrupt-affinity = <&cpu0>, <&cpu1>;
> + };
> +
> + timer {
> + compatible = "arm,armv8-timer";
> + interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
> + <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
> + <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
> + <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
> + arm,no-tick-in-suspend;
> + };
> +
> + xin24m: xin24m {
> + compatible = "fixed-clock";
> + clock-frequency = <24000000>;
> + #clock-cells = <0>;
> + clock-output-names = "xin24m";
> + };
> +
> + firmware {
sort node names
> + psci {
> + compatible = "arm,psci-1.0";
> + method = "smc";
> + };
> +
> + tee {
> + compatible = "linaro,optee-tz";
> + method = "smc";
> + };
> + };
> +
> + soc {
> + compatible = "simple-bus";
> + #address-cells = <1>;
> + #size-cells = <1>;
> + ranges;
Remove, use 64bit reg.
See:
https://github.com/rockchip-linux/kernel/blob/develop-4.19/arch/arm64/boot/dts/rockchip/rk1808.dtsi
> +
> + system_sram: sram@fec00000 {
> + compatible = "mmio-sram";
> + reg = <0xfec00000 0x200000>;
> + #address-cells = <1>;
> + #size-cells = <1>;
> + ranges = <0x0 0xfec00000 0x200000>;
> + };
> +
> + gic: interrupt-controller@ff100000 {
> + compatible = "arm,gic-v3";
> + reg = <0xff100000 0x10000>, /* GICD */
> + <0xff140000 0xc0000>, /* GICR */
> + <0xff300000 0x10000>, /* GICC */
> + <0xff310000 0x10000>, /* GICH */
> + <0xff320000 0x10000>; /* GICV */
> + interrupt-controller;
> + #interrupt-cells = <3>;
> + interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
> + #address-cells = <1>;
> + #size-cells = <1>;
> + ranges;
> +
> + gic_its: msi-controller@ff120000 {
> + compatible = "arm,gic-v3-its";
> + reg = <0xff120000 0x20000>;
> + msi-controller;
> + #msi-cells = <1>;
> + };
> + };
> +
> + uart0: serial@ff430000 {
> + compatible = "rockchip,rk1808-uart", "snps,dw-apb-uart";
> + reg = <0xff430000 0x100>;
> + reg-shift = <2>;
> + reg-io-width = <4>;
> + interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
> + status = "disabled";
> + };
From manufacturer tree:
uart0: serial@ff430000 {
compatible = "rockchip,rk1808-uart", "snps,dw-apb-uart";
reg = <0x0 0xff430000 0x0 0x100>;
interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&cru SCLK_UART0_PMU>, <&cru PCLK_UART0_PMU>;
clock-names = "baudclk", "apb_pclk";
dmas = <&dmac 0>, <&dmac 1>;
pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
pinctrl-names = "default";
reg-io-width = <4>;
reg-shift = <2>;
status = "disabled";
};
Sort all uart nodes.
Does this work without SCLK_UART0_PMU, PCLK_UART0_PMU and pinctrl??
Add clk-rk1808.c rk1808-cru.h
In mainline pinctrl and gpio are WIP and split elsewhere now.
pinctrl: rockchip: add support for rk1808 SoCs
https://github.com/rockchip-linux/kernel/commit/b2828bc4417c9669fdaca3b8ef392f41850c86e7
> +
> + uart1: serial@ff540000 {
> + compatible = "rockchip,rk1808-uart", "snps,dw-apb-uart";
> + reg = <0xff540000 0x100>;
> + reg-shift = <2>;
> + reg-io-width = <4>;
> + interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
> + status = "disabled";
> + };
> +
> + uart2: serial@ff550000 {
> + compatible = "rockchip,rk1808-uart", "snps,dw-apb-uart";
> + reg = <0xff550000 0x100>;
> + reg-shift = <2>;
> + reg-io-width = <4>;
> + interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
> + status = "disabled";
> + };
> +
> + uart3: serial@ff560000 {
> + compatible = "rockchip,rk1808-uart", "snps,dw-apb-uart";
> + reg = <0xff560000 0x100>;
> + reg-shift = <2>;
> + reg-io-width = <4>;
> + interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
> + status = "disabled";
> + };
> +
> + uart4: serial@ff570000 {
> + compatible = "rockchip,rk1808-uart", "snps,dw-apb-uart";
> + reg = <0xff570000 0x100>;
> + reg-shift = <2>;
> + reg-io-width = <4>;
> + interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
> + status = "disabled";
> + };
> +
> + uart5: serial@ff5a0000 {
> + compatible = "rockchip,rk1808-uart", "snps,dw-apb-uart";
> + reg = <0xff5a0000 0x100>;
> + reg-shift = <2>;
> + reg-io-width = <4>;
> + interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
> + status = "disabled";
> + };
> +
> + uart6: serial@ff5b0000 {
> + compatible = "rockchip,rk1808-uart", "snps,dw-apb-uart";
> + reg = <0xff5b0000 0x100>;
> + reg-shift = <2>;
> + reg-io-width = <4>;
> + interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
> + status = "disabled";
> + };
> +
> + uart7: serial@ff5c0000 {
> + compatible = "rockchip,rk1808-uart", "snps,dw-apb-uart";
> + reg = <0xff5c0000 0x100>;
> + reg-shift = <2>;
> + reg-io-width = <4>;
> + interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
> + status = "disabled";
> + };
> + };
> +};
>
_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip
WARNING: multiple messages have this Message-ID (diff)
From: Johan Jonker <jbx6244@gmail.com>
To: "Andreas Färber" <afaerber@suse.de>, linux-rockchip@lists.infradead.org
Cc: linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, Rob Herring <robh+dt@kernel.org>,
Heiko Stuebner <heiko@sntech.de>,
devicetree@vger.kernel.org
Subject: Re: [PATCH 3/9] arm64: dts: rockchip: Prepare Rockchip RK1808
Date: Mon, 17 May 2021 03:29:33 +0200 [thread overview]
Message-ID: <f46625ed-4c83-9fd2-52cd-e07a4d93a254@gmail.com> (raw)
In-Reply-To: <20210516230551.12469-4-afaerber@suse.de>
Hi Andreas,
Send the complete serie to all maintainers and mail lists.
===
Heiko's sort rules:
compatible
reg
interrupts
[alphabetical]
status [if needed]
===
My incomplete list:
For nodes:
If exists on top: model, compatible and chosen.
Sort things without reg alphabetical first,
then sort the rest by reg address.
Inside nodes:
If exists on top: compatible, reg and interrupts.
In alphabetical order the required properties.
Then in alphabetical order the other properties.
And as last things that start with '#' in alphabetical order.
Add status below all other properties for soc internal components with
any board-specifics.
Keep an empty line between properties and nodes.
Exceptions:
Sort pinctrl-0 above pinctrl-names, so it stays in line with clock-names
and dma-names.
Sort simple-audio-card,name above other simple-audio-card properties.
Sort regulator-name above other regulator properties.
Sort regulator-min-microvolt above regulator-max-microvolt.
===
Fix complete dtsi for property sort order!
Add more drivers. (cru, pinctrl)
Johan
On 5/17/21 1:05 AM, Andreas Färber wrote:
> Add an initial Device Tree for Rockchip RK1808 SoC.
> Based on shipping TB-RK1808M0 DTB.
>
> Signed-off-by: Andreas Färber <afaerber@suse.de>
> ---
> arch/arm64/boot/dts/rockchip/rk1808.dtsi | 203 +++++++++++++++++++++++
> 1 file changed, 203 insertions(+)
> create mode 100644 arch/arm64/boot/dts/rockchip/rk1808.dtsi
>
> diff --git a/arch/arm64/boot/dts/rockchip/rk1808.dtsi b/arch/arm64/boot/dts/rockchip/rk1808.dtsi
> new file mode 100644
> index 000000000000..af2b51afda7d
> --- /dev/null
> +++ b/arch/arm64/boot/dts/rockchip/rk1808.dtsi
> @@ -0,0 +1,203 @@
> +// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
> +/*
> + * Copyright (c) 2021 Andreas Färber
> + */
> +
#include <dt-bindings/clock/rk1808-cru.h>
> +#include <dt-bindings/interrupt-controller/arm-gic.h>
> +#include <dt-bindings/interrupt-controller/irq.h>
> +
> +/ {
> + compatible = "rockchip,rk1808";
> + interrupt-parent = <&gic>;
> + #address-cells = <1>;
> + #size-cells = <1>;
#address-cells = <2>;
#size-cells = <2>;
64 bit ??
> +
> + aliases {
> + serial0 = &uart0;
> + serial1 = &uart1;
> + serial2 = &uart2;
> + serial3 = &uart3;
> + serial4 = &uart4;
> + serial5 = &uart5;
> + serial6 = &uart6;
> + serial7 = &uart7;
> + };
> +
> + cpus {
> + #address-cells = <2>;
> + #size-cells = <0>;
> +
> + cpu0: cpu@0 {
> + device_type = "cpu";
> + compatible = "arm,cortex-a35";
> + reg = <0x0 0x0>;
> + enable-method = "psci";
> + cpu-idle-states = <&CPU_SLEEP>;
> + };
> +
> + cpu1: cpu@1 {
> + device_type = "cpu";
> + compatible = "arm,cortex-a35";
> + reg = <0x0 0x1>;
> + enable-method = "psci";
> + cpu-idle-states = <&CPU_SLEEP>;
> + };
> +
> + idle-states {
> + entry-method = "psci";
> +
> + CPU_SLEEP: cpu-sleep {
> + compatible = "arm,idle-state";
> + local-timer-stop;
> + arm,psci-suspend-param = <0x10000>;
> + entry-latency-us = <120>;
> + exit-latency-us = <250>;
> + min-residency-us = <900>;
> + };
> + };
> + };
> +
> + arm-pmu {
sort node names
> + compatible = "arm,cortex-a35-pmu";
> + interrupts = <GIC_SPI 228 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>;
> + interrupt-affinity = <&cpu0>, <&cpu1>;
> + };
> +
> + timer {
> + compatible = "arm,armv8-timer";
> + interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
> + <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
> + <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
> + <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
> + arm,no-tick-in-suspend;
> + };
> +
> + xin24m: xin24m {
> + compatible = "fixed-clock";
> + clock-frequency = <24000000>;
> + #clock-cells = <0>;
> + clock-output-names = "xin24m";
> + };
> +
> + firmware {
sort node names
> + psci {
> + compatible = "arm,psci-1.0";
> + method = "smc";
> + };
> +
> + tee {
> + compatible = "linaro,optee-tz";
> + method = "smc";
> + };
> + };
> +
> + soc {
> + compatible = "simple-bus";
> + #address-cells = <1>;
> + #size-cells = <1>;
> + ranges;
Remove, use 64bit reg.
See:
https://github.com/rockchip-linux/kernel/blob/develop-4.19/arch/arm64/boot/dts/rockchip/rk1808.dtsi
> +
> + system_sram: sram@fec00000 {
> + compatible = "mmio-sram";
> + reg = <0xfec00000 0x200000>;
> + #address-cells = <1>;
> + #size-cells = <1>;
> + ranges = <0x0 0xfec00000 0x200000>;
> + };
> +
> + gic: interrupt-controller@ff100000 {
> + compatible = "arm,gic-v3";
> + reg = <0xff100000 0x10000>, /* GICD */
> + <0xff140000 0xc0000>, /* GICR */
> + <0xff300000 0x10000>, /* GICC */
> + <0xff310000 0x10000>, /* GICH */
> + <0xff320000 0x10000>; /* GICV */
> + interrupt-controller;
> + #interrupt-cells = <3>;
> + interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
> + #address-cells = <1>;
> + #size-cells = <1>;
> + ranges;
> +
> + gic_its: msi-controller@ff120000 {
> + compatible = "arm,gic-v3-its";
> + reg = <0xff120000 0x20000>;
> + msi-controller;
> + #msi-cells = <1>;
> + };
> + };
> +
> + uart0: serial@ff430000 {
> + compatible = "rockchip,rk1808-uart", "snps,dw-apb-uart";
> + reg = <0xff430000 0x100>;
> + reg-shift = <2>;
> + reg-io-width = <4>;
> + interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
> + status = "disabled";
> + };
From manufacturer tree:
uart0: serial@ff430000 {
compatible = "rockchip,rk1808-uart", "snps,dw-apb-uart";
reg = <0x0 0xff430000 0x0 0x100>;
interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&cru SCLK_UART0_PMU>, <&cru PCLK_UART0_PMU>;
clock-names = "baudclk", "apb_pclk";
dmas = <&dmac 0>, <&dmac 1>;
pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
pinctrl-names = "default";
reg-io-width = <4>;
reg-shift = <2>;
status = "disabled";
};
Sort all uart nodes.
Does this work without SCLK_UART0_PMU, PCLK_UART0_PMU and pinctrl??
Add clk-rk1808.c rk1808-cru.h
In mainline pinctrl and gpio are WIP and split elsewhere now.
pinctrl: rockchip: add support for rk1808 SoCs
https://github.com/rockchip-linux/kernel/commit/b2828bc4417c9669fdaca3b8ef392f41850c86e7
> +
> + uart1: serial@ff540000 {
> + compatible = "rockchip,rk1808-uart", "snps,dw-apb-uart";
> + reg = <0xff540000 0x100>;
> + reg-shift = <2>;
> + reg-io-width = <4>;
> + interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
> + status = "disabled";
> + };
> +
> + uart2: serial@ff550000 {
> + compatible = "rockchip,rk1808-uart", "snps,dw-apb-uart";
> + reg = <0xff550000 0x100>;
> + reg-shift = <2>;
> + reg-io-width = <4>;
> + interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
> + status = "disabled";
> + };
> +
> + uart3: serial@ff560000 {
> + compatible = "rockchip,rk1808-uart", "snps,dw-apb-uart";
> + reg = <0xff560000 0x100>;
> + reg-shift = <2>;
> + reg-io-width = <4>;
> + interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
> + status = "disabled";
> + };
> +
> + uart4: serial@ff570000 {
> + compatible = "rockchip,rk1808-uart", "snps,dw-apb-uart";
> + reg = <0xff570000 0x100>;
> + reg-shift = <2>;
> + reg-io-width = <4>;
> + interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
> + status = "disabled";
> + };
> +
> + uart5: serial@ff5a0000 {
> + compatible = "rockchip,rk1808-uart", "snps,dw-apb-uart";
> + reg = <0xff5a0000 0x100>;
> + reg-shift = <2>;
> + reg-io-width = <4>;
> + interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
> + status = "disabled";
> + };
> +
> + uart6: serial@ff5b0000 {
> + compatible = "rockchip,rk1808-uart", "snps,dw-apb-uart";
> + reg = <0xff5b0000 0x100>;
> + reg-shift = <2>;
> + reg-io-width = <4>;
> + interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
> + status = "disabled";
> + };
> +
> + uart7: serial@ff5c0000 {
> + compatible = "rockchip,rk1808-uart", "snps,dw-apb-uart";
> + reg = <0xff5c0000 0x100>;
> + reg-shift = <2>;
> + reg-io-width = <4>;
> + interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
> + status = "disabled";
> + };
> + };
> +};
>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
WARNING: multiple messages have this Message-ID (diff)
From: Johan Jonker <jbx6244@gmail.com>
To: "Andreas Färber" <afaerber@suse.de>, linux-rockchip@lists.infradead.org
Cc: linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, Rob Herring <robh+dt@kernel.org>,
Heiko Stuebner <heiko@sntech.de>,
devicetree@vger.kernel.org
Subject: Re: [PATCH 3/9] arm64: dts: rockchip: Prepare Rockchip RK1808
Date: Mon, 17 May 2021 03:29:33 +0200 [thread overview]
Message-ID: <f46625ed-4c83-9fd2-52cd-e07a4d93a254@gmail.com> (raw)
In-Reply-To: <20210516230551.12469-4-afaerber@suse.de>
Hi Andreas,
Send the complete serie to all maintainers and mail lists.
===
Heiko's sort rules:
compatible
reg
interrupts
[alphabetical]
status [if needed]
===
My incomplete list:
For nodes:
If exists on top: model, compatible and chosen.
Sort things without reg alphabetical first,
then sort the rest by reg address.
Inside nodes:
If exists on top: compatible, reg and interrupts.
In alphabetical order the required properties.
Then in alphabetical order the other properties.
And as last things that start with '#' in alphabetical order.
Add status below all other properties for soc internal components with
any board-specifics.
Keep an empty line between properties and nodes.
Exceptions:
Sort pinctrl-0 above pinctrl-names, so it stays in line with clock-names
and dma-names.
Sort simple-audio-card,name above other simple-audio-card properties.
Sort regulator-name above other regulator properties.
Sort regulator-min-microvolt above regulator-max-microvolt.
===
Fix complete dtsi for property sort order!
Add more drivers. (cru, pinctrl)
Johan
On 5/17/21 1:05 AM, Andreas Färber wrote:
> Add an initial Device Tree for Rockchip RK1808 SoC.
> Based on shipping TB-RK1808M0 DTB.
>
> Signed-off-by: Andreas Färber <afaerber@suse.de>
> ---
> arch/arm64/boot/dts/rockchip/rk1808.dtsi | 203 +++++++++++++++++++++++
> 1 file changed, 203 insertions(+)
> create mode 100644 arch/arm64/boot/dts/rockchip/rk1808.dtsi
>
> diff --git a/arch/arm64/boot/dts/rockchip/rk1808.dtsi b/arch/arm64/boot/dts/rockchip/rk1808.dtsi
> new file mode 100644
> index 000000000000..af2b51afda7d
> --- /dev/null
> +++ b/arch/arm64/boot/dts/rockchip/rk1808.dtsi
> @@ -0,0 +1,203 @@
> +// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
> +/*
> + * Copyright (c) 2021 Andreas Färber
> + */
> +
#include <dt-bindings/clock/rk1808-cru.h>
> +#include <dt-bindings/interrupt-controller/arm-gic.h>
> +#include <dt-bindings/interrupt-controller/irq.h>
> +
> +/ {
> + compatible = "rockchip,rk1808";
> + interrupt-parent = <&gic>;
> + #address-cells = <1>;
> + #size-cells = <1>;
#address-cells = <2>;
#size-cells = <2>;
64 bit ??
> +
> + aliases {
> + serial0 = &uart0;
> + serial1 = &uart1;
> + serial2 = &uart2;
> + serial3 = &uart3;
> + serial4 = &uart4;
> + serial5 = &uart5;
> + serial6 = &uart6;
> + serial7 = &uart7;
> + };
> +
> + cpus {
> + #address-cells = <2>;
> + #size-cells = <0>;
> +
> + cpu0: cpu@0 {
> + device_type = "cpu";
> + compatible = "arm,cortex-a35";
> + reg = <0x0 0x0>;
> + enable-method = "psci";
> + cpu-idle-states = <&CPU_SLEEP>;
> + };
> +
> + cpu1: cpu@1 {
> + device_type = "cpu";
> + compatible = "arm,cortex-a35";
> + reg = <0x0 0x1>;
> + enable-method = "psci";
> + cpu-idle-states = <&CPU_SLEEP>;
> + };
> +
> + idle-states {
> + entry-method = "psci";
> +
> + CPU_SLEEP: cpu-sleep {
> + compatible = "arm,idle-state";
> + local-timer-stop;
> + arm,psci-suspend-param = <0x10000>;
> + entry-latency-us = <120>;
> + exit-latency-us = <250>;
> + min-residency-us = <900>;
> + };
> + };
> + };
> +
> + arm-pmu {
sort node names
> + compatible = "arm,cortex-a35-pmu";
> + interrupts = <GIC_SPI 228 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>;
> + interrupt-affinity = <&cpu0>, <&cpu1>;
> + };
> +
> + timer {
> + compatible = "arm,armv8-timer";
> + interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
> + <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
> + <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
> + <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
> + arm,no-tick-in-suspend;
> + };
> +
> + xin24m: xin24m {
> + compatible = "fixed-clock";
> + clock-frequency = <24000000>;
> + #clock-cells = <0>;
> + clock-output-names = "xin24m";
> + };
> +
> + firmware {
sort node names
> + psci {
> + compatible = "arm,psci-1.0";
> + method = "smc";
> + };
> +
> + tee {
> + compatible = "linaro,optee-tz";
> + method = "smc";
> + };
> + };
> +
> + soc {
> + compatible = "simple-bus";
> + #address-cells = <1>;
> + #size-cells = <1>;
> + ranges;
Remove, use 64bit reg.
See:
https://github.com/rockchip-linux/kernel/blob/develop-4.19/arch/arm64/boot/dts/rockchip/rk1808.dtsi
> +
> + system_sram: sram@fec00000 {
> + compatible = "mmio-sram";
> + reg = <0xfec00000 0x200000>;
> + #address-cells = <1>;
> + #size-cells = <1>;
> + ranges = <0x0 0xfec00000 0x200000>;
> + };
> +
> + gic: interrupt-controller@ff100000 {
> + compatible = "arm,gic-v3";
> + reg = <0xff100000 0x10000>, /* GICD */
> + <0xff140000 0xc0000>, /* GICR */
> + <0xff300000 0x10000>, /* GICC */
> + <0xff310000 0x10000>, /* GICH */
> + <0xff320000 0x10000>; /* GICV */
> + interrupt-controller;
> + #interrupt-cells = <3>;
> + interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
> + #address-cells = <1>;
> + #size-cells = <1>;
> + ranges;
> +
> + gic_its: msi-controller@ff120000 {
> + compatible = "arm,gic-v3-its";
> + reg = <0xff120000 0x20000>;
> + msi-controller;
> + #msi-cells = <1>;
> + };
> + };
> +
> + uart0: serial@ff430000 {
> + compatible = "rockchip,rk1808-uart", "snps,dw-apb-uart";
> + reg = <0xff430000 0x100>;
> + reg-shift = <2>;
> + reg-io-width = <4>;
> + interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
> + status = "disabled";
> + };
From manufacturer tree:
uart0: serial@ff430000 {
compatible = "rockchip,rk1808-uart", "snps,dw-apb-uart";
reg = <0x0 0xff430000 0x0 0x100>;
interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&cru SCLK_UART0_PMU>, <&cru PCLK_UART0_PMU>;
clock-names = "baudclk", "apb_pclk";
dmas = <&dmac 0>, <&dmac 1>;
pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
pinctrl-names = "default";
reg-io-width = <4>;
reg-shift = <2>;
status = "disabled";
};
Sort all uart nodes.
Does this work without SCLK_UART0_PMU, PCLK_UART0_PMU and pinctrl??
Add clk-rk1808.c rk1808-cru.h
In mainline pinctrl and gpio are WIP and split elsewhere now.
pinctrl: rockchip: add support for rk1808 SoCs
https://github.com/rockchip-linux/kernel/commit/b2828bc4417c9669fdaca3b8ef392f41850c86e7
> +
> + uart1: serial@ff540000 {
> + compatible = "rockchip,rk1808-uart", "snps,dw-apb-uart";
> + reg = <0xff540000 0x100>;
> + reg-shift = <2>;
> + reg-io-width = <4>;
> + interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
> + status = "disabled";
> + };
> +
> + uart2: serial@ff550000 {
> + compatible = "rockchip,rk1808-uart", "snps,dw-apb-uart";
> + reg = <0xff550000 0x100>;
> + reg-shift = <2>;
> + reg-io-width = <4>;
> + interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
> + status = "disabled";
> + };
> +
> + uart3: serial@ff560000 {
> + compatible = "rockchip,rk1808-uart", "snps,dw-apb-uart";
> + reg = <0xff560000 0x100>;
> + reg-shift = <2>;
> + reg-io-width = <4>;
> + interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
> + status = "disabled";
> + };
> +
> + uart4: serial@ff570000 {
> + compatible = "rockchip,rk1808-uart", "snps,dw-apb-uart";
> + reg = <0xff570000 0x100>;
> + reg-shift = <2>;
> + reg-io-width = <4>;
> + interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
> + status = "disabled";
> + };
> +
> + uart5: serial@ff5a0000 {
> + compatible = "rockchip,rk1808-uart", "snps,dw-apb-uart";
> + reg = <0xff5a0000 0x100>;
> + reg-shift = <2>;
> + reg-io-width = <4>;
> + interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
> + status = "disabled";
> + };
> +
> + uart6: serial@ff5b0000 {
> + compatible = "rockchip,rk1808-uart", "snps,dw-apb-uart";
> + reg = <0xff5b0000 0x100>;
> + reg-shift = <2>;
> + reg-io-width = <4>;
> + interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
> + status = "disabled";
> + };
> +
> + uart7: serial@ff5c0000 {
> + compatible = "rockchip,rk1808-uart", "snps,dw-apb-uart";
> + reg = <0xff5c0000 0x100>;
> + reg-shift = <2>;
> + reg-io-width = <4>;
> + interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
> + status = "disabled";
> + };
> + };
> +};
>
next prev parent reply other threads:[~2021-05-17 1:30 UTC|newest]
Thread overview: 78+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-05-16 23:05 [PATCH 0/9] arm64: dts: rockchip: Initial Toybrick TB-RK1808M0 support Andreas Färber
2021-05-16 23:05 ` Andreas Färber
2021-05-16 23:05 ` Andreas Färber
2021-05-16 23:05 ` [PATCH 1/9] dt-bindings: arm: rockchip: Add Rockchip RK1808 and TB-RK1808M0 Andreas Färber
2021-05-16 23:05 ` Andreas Färber
2021-05-16 23:05 ` Andreas Färber
2021-05-18 14:15 ` Rob Herring
2021-05-18 14:15 ` Rob Herring
2021-05-18 14:15 ` Rob Herring
2021-05-16 23:05 ` [PATCH 2/9] dt-bindings: serial: snps-dw-apb-uart: Add Rockchip RK1808 Andreas Färber
2021-05-16 23:05 ` Andreas Färber
2021-05-16 23:05 ` Andreas Färber
2021-05-18 14:16 ` Rob Herring
2021-05-18 14:16 ` Rob Herring
2021-05-18 14:16 ` Rob Herring
2021-05-16 23:05 ` [PATCH 3/9] arm64: dts: rockchip: Prepare " Andreas Färber
2021-05-16 23:05 ` Andreas Färber
2021-05-16 23:05 ` Andreas Färber
2021-05-17 1:29 ` Johan Jonker [this message]
2021-05-17 1:29 ` Johan Jonker
2021-05-17 1:29 ` Johan Jonker
2021-05-17 11:03 ` Andreas Färber
2021-05-17 11:03 ` Andreas Färber
2021-05-17 11:03 ` Andreas Färber
2021-05-17 9:21 ` Marc Zyngier
2021-05-17 9:21 ` Marc Zyngier
2021-05-17 9:21 ` Marc Zyngier
2021-05-24 13:32 ` Andreas Färber
2021-05-24 13:32 ` Andreas Färber
2021-05-24 13:32 ` Andreas Färber
2021-05-24 15:21 ` Marc Zyngier
2021-05-24 15:21 ` Marc Zyngier
2021-05-24 15:21 ` Marc Zyngier
2021-05-24 21:13 ` Heiko Stübner
2021-05-24 21:13 ` Heiko Stübner
2021-05-24 21:13 ` Heiko Stübner
2021-05-16 23:05 ` [PATCH 4/9] arm64: dts: rockchip: Add Rockchip TB-RK1808M0 Andreas Färber
2021-05-16 23:05 ` Andreas Färber
2021-05-16 23:05 ` Andreas Färber
2021-05-16 23:05 ` [PATCH RFC 5/9] arm64: dts: rockchip: rk1808k-toybrick-m0: Suppress vGIC interrupt Andreas Färber
2021-05-16 23:05 ` Andreas Färber
2021-05-16 23:05 ` Andreas Färber
2021-05-17 9:29 ` Marc Zyngier
2021-05-17 9:29 ` Marc Zyngier
2021-05-17 9:29 ` Marc Zyngier
2021-05-24 14:40 ` Andreas Färber
2021-05-24 14:40 ` Andreas Färber
2021-05-24 14:40 ` Andreas Färber
2021-05-24 15:46 ` Marc Zyngier
2021-05-24 15:46 ` Marc Zyngier
2021-05-24 15:46 ` Marc Zyngier
2021-05-16 23:05 ` [PATCH 6/9] dt-bindings: mmc: rockchip-dw-mshc: Add Rockchip RK1808 Andreas Färber
2021-05-16 23:05 ` Andreas Färber
2021-05-16 23:05 ` Andreas Färber
2021-05-18 14:16 ` Rob Herring
2021-05-18 14:16 ` Rob Herring
2021-05-18 14:16 ` Rob Herring
2021-05-24 14:10 ` Ulf Hansson
2021-05-24 14:10 ` Ulf Hansson
2021-05-24 14:10 ` Ulf Hansson
2021-05-16 23:05 ` [PATCH 7/9] arm64: dts: rockchip: rk1808: Prepare eMMC node Andreas Färber
2021-05-16 23:05 ` Andreas Färber
2021-05-16 23:05 ` Andreas Färber
2021-05-16 23:05 ` [PATCH 8/9] arm64: dts: rockchip: rk1808k-toybrick-m0: Enable eMMC Andreas Färber
2021-05-16 23:05 ` Andreas Färber
2021-05-16 23:05 ` Andreas Färber
2021-05-16 23:05 ` [PATCH 9/9] arm64: dts: rockchip: rk1808: Add CPU operating points Andreas Färber
2021-05-16 23:05 ` Andreas Färber
2021-05-16 23:05 ` Andreas Färber
2021-05-17 9:02 ` [PATCH 0/9] arm64: dts: rockchip: Initial Toybrick TB-RK1808M0 support Marc Zyngier
2021-05-17 9:02 ` Marc Zyngier
2021-05-17 9:02 ` Marc Zyngier
2021-05-17 12:22 ` Andreas Färber
2021-05-17 12:22 ` Andreas Färber
2021-05-17 12:22 ` Andreas Färber
2021-05-17 13:42 ` Marc Zyngier
2021-05-17 13:42 ` Marc Zyngier
2021-05-17 13:42 ` Marc Zyngier
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=f46625ed-4c83-9fd2-52cd-e07a4d93a254@gmail.com \
--to=jbx6244@gmail.com \
--cc=afaerber@suse.de \
--cc=devicetree@vger.kernel.org \
--cc=heiko@sntech.de \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rockchip@lists.infradead.org \
--cc=robh+dt@kernel.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.