Message ID | 20240110095118.25598-2-zajec5@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/2] dt-bindings: arm64: mediatek: Add MT7981B and Xiaomi AX3000T | expand |
Il 10/01/24 10:51, Rafał Miłecki ha scritto: > From: Rafał Miłecki <rafal@milecki.pl> > > MT7981B (AKA MediaTek Filogic 820) is a dual-core ARM Cortex-A53 SoC. > One of market devices using this SoC is Xiaomi AX3000T. > > This is initial contribution with basic SoC support. More hardware block > will get added later. Some will need their bindings (like auxadc). > > Signed-off-by: Rafał Miłecki <rafal@milecki.pl> > --- > arch/arm64/boot/dts/mediatek/Makefile | 1 + > .../dts/mediatek/mt7981b-xiaomi-ax3000t.dts | 15 +++ > arch/arm64/boot/dts/mediatek/mt7981b.dtsi | 108 ++++++++++++++++++ > 3 files changed, 124 insertions(+) > create mode 100644 arch/arm64/boot/dts/mediatek/mt7981b-xiaomi-ax3000t.dts > create mode 100644 arch/arm64/boot/dts/mediatek/mt7981b.dtsi > > diff --git a/arch/arm64/boot/dts/mediatek/Makefile b/arch/arm64/boot/dts/mediatek/Makefile > index 0a189d5d8006..8bff11acfe1f 100644 > --- a/arch/arm64/boot/dts/mediatek/Makefile > +++ b/arch/arm64/boot/dts/mediatek/Makefile > @@ -8,6 +8,7 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += mt6797-evb.dtb > dtb-$(CONFIG_ARCH_MEDIATEK) += mt6797-x20-dev.dtb > dtb-$(CONFIG_ARCH_MEDIATEK) += mt7622-rfb1.dtb > dtb-$(CONFIG_ARCH_MEDIATEK) += mt7622-bananapi-bpi-r64.dtb > +dtb-$(CONFIG_ARCH_MEDIATEK) += mt7981b-xiaomi-ax3000t.dtb > dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3.dtb > dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3-emmc.dtbo > dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3-nand.dtbo > diff --git a/arch/arm64/boot/dts/mediatek/mt7981b-xiaomi-ax3000t.dts b/arch/arm64/boot/dts/mediatek/mt7981b-xiaomi-ax3000t.dts > new file mode 100644 > index 000000000000..a314c3e05e50 > --- /dev/null > +++ b/arch/arm64/boot/dts/mediatek/mt7981b-xiaomi-ax3000t.dts > @@ -0,0 +1,15 @@ > +// SPDX-License-Identifier: GPL-2.0-only OR MIT > + > +/dts-v1/; > + > +#include "mt7981b.dtsi" > + > +/ { > + compatible = "xiaomi,ax3000t", "mediatek,mt7981b"; > + model = "Xiaomi AX3000T"; > + > + memory@40000000 { > + reg = <0 0x40000000 0 0x10000000>; > + device_type = "memory"; > + }; > +}; > diff --git a/arch/arm64/boot/dts/mediatek/mt7981b.dtsi b/arch/arm64/boot/dts/mediatek/mt7981b.dtsi > new file mode 100644 > index 000000000000..ce878ad55204 > --- /dev/null > +++ b/arch/arm64/boot/dts/mediatek/mt7981b.dtsi > @@ -0,0 +1,108 @@ > +// SPDX-License-Identifier: GPL-2.0-only OR MIT > + > +#include <dt-bindings/clock/mediatek,mt7981-clk.h> > +#include <dt-bindings/interrupt-controller/arm-gic.h> > + > +/ { > + compatible = "mediatek,mt7981b"; > + interrupt-parent = <&gic>; > + #address-cells = <2>; > + #size-cells = <2>; > + > + cpus { > + #address-cells = <1>; > + #size-cells = <0>; > + > + cpu@0 { > + compatible = "arm,cortex-a53"; > + reg = <0x0>; > + device_type = "cpu"; > + enable-method = "psci"; > + }; > + > + cpu@1 { > + compatible = "arm,cortex-a53"; > + reg = <0x1>; > + device_type = "cpu"; > + enable-method = "psci"; > + }; > + }; > + > + oscillator-40m { > + compatible = "fixed-clock"; > + clock-frequency = <40000000>; > + clock-output-names = "clkxtal"; > + #clock-cells = <0>; > + }; > + > + psci { > + compatible = "arm,psci-0.2"; PSCI 0.2? I invite you to check a kernel log for a string like this one: `PSCIv%d.%d detected in firmware` ...because of course if it says v1.0, this should be "arm,psci-1.0". This is just a nitpick anyway, so you can already get my Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> P.S.: but please, confirm or deny that PSCI thing ASAP :-) P.P.S.: For next time - I'd be happy if you could add a cover letter to your patch series..! Cheers, Angelo
On 10.01.2024 14:38, AngeloGioacchino Del Regno wrote: > Il 10/01/24 10:51, Rafał Miłecki ha scritto: >> From: Rafał Miłecki <rafal@milecki.pl> >> >> MT7981B (AKA MediaTek Filogic 820) is a dual-core ARM Cortex-A53 SoC. >> One of market devices using this SoC is Xiaomi AX3000T. >> >> This is initial contribution with basic SoC support. More hardware block >> will get added later. Some will need their bindings (like auxadc). >> >> Signed-off-by: Rafał Miłecki <rafal@milecki.pl> >> --- >> arch/arm64/boot/dts/mediatek/Makefile | 1 + >> .../dts/mediatek/mt7981b-xiaomi-ax3000t.dts | 15 +++ >> arch/arm64/boot/dts/mediatek/mt7981b.dtsi | 108 ++++++++++++++++++ >> 3 files changed, 124 insertions(+) >> create mode 100644 arch/arm64/boot/dts/mediatek/mt7981b-xiaomi-ax3000t.dts >> create mode 100644 arch/arm64/boot/dts/mediatek/mt7981b.dtsi >> >> diff --git a/arch/arm64/boot/dts/mediatek/Makefile b/arch/arm64/boot/dts/mediatek/Makefile >> index 0a189d5d8006..8bff11acfe1f 100644 >> --- a/arch/arm64/boot/dts/mediatek/Makefile >> +++ b/arch/arm64/boot/dts/mediatek/Makefile >> @@ -8,6 +8,7 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += mt6797-evb.dtb >> dtb-$(CONFIG_ARCH_MEDIATEK) += mt6797-x20-dev.dtb >> dtb-$(CONFIG_ARCH_MEDIATEK) += mt7622-rfb1.dtb >> dtb-$(CONFIG_ARCH_MEDIATEK) += mt7622-bananapi-bpi-r64.dtb >> +dtb-$(CONFIG_ARCH_MEDIATEK) += mt7981b-xiaomi-ax3000t.dtb >> dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3.dtb >> dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3-emmc.dtbo >> dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3-nand.dtbo >> diff --git a/arch/arm64/boot/dts/mediatek/mt7981b-xiaomi-ax3000t.dts b/arch/arm64/boot/dts/mediatek/mt7981b-xiaomi-ax3000t.dts >> new file mode 100644 >> index 000000000000..a314c3e05e50 >> --- /dev/null >> +++ b/arch/arm64/boot/dts/mediatek/mt7981b-xiaomi-ax3000t.dts >> @@ -0,0 +1,15 @@ >> +// SPDX-License-Identifier: GPL-2.0-only OR MIT >> + >> +/dts-v1/; >> + >> +#include "mt7981b.dtsi" >> + >> +/ { >> + compatible = "xiaomi,ax3000t", "mediatek,mt7981b"; >> + model = "Xiaomi AX3000T"; >> + >> + memory@40000000 { >> + reg = <0 0x40000000 0 0x10000000>; >> + device_type = "memory"; >> + }; >> +}; >> diff --git a/arch/arm64/boot/dts/mediatek/mt7981b.dtsi b/arch/arm64/boot/dts/mediatek/mt7981b.dtsi >> new file mode 100644 >> index 000000000000..ce878ad55204 >> --- /dev/null >> +++ b/arch/arm64/boot/dts/mediatek/mt7981b.dtsi >> @@ -0,0 +1,108 @@ >> +// SPDX-License-Identifier: GPL-2.0-only OR MIT >> + >> +#include <dt-bindings/clock/mediatek,mt7981-clk.h> >> +#include <dt-bindings/interrupt-controller/arm-gic.h> >> + >> +/ { >> + compatible = "mediatek,mt7981b"; >> + interrupt-parent = <&gic>; >> + #address-cells = <2>; >> + #size-cells = <2>; >> + >> + cpus { >> + #address-cells = <1>; >> + #size-cells = <0>; >> + >> + cpu@0 { >> + compatible = "arm,cortex-a53"; >> + reg = <0x0>; >> + device_type = "cpu"; >> + enable-method = "psci"; >> + }; >> + >> + cpu@1 { >> + compatible = "arm,cortex-a53"; >> + reg = <0x1>; >> + device_type = "cpu"; >> + enable-method = "psci"; >> + }; >> + }; >> + >> + oscillator-40m { >> + compatible = "fixed-clock"; >> + clock-frequency = <40000000>; >> + clock-output-names = "clkxtal"; >> + #clock-cells = <0>; >> + }; >> + >> + psci { >> + compatible = "arm,psci-0.2"; > > PSCI 0.2? I invite you to check a kernel log for a string like this one: > > `PSCIv%d.%d detected in firmware` > ...because of course if it says v1.0, this should be "arm,psci-1.0". > > This is just a nitpick anyway, so you can already get my > > Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> > > P.S.: but please, confirm or deny that PSCI thing ASAP :-) > P.P.S.: For next time - I'd be happy if you could add a cover letter to your > patch series..! You were right, good catch! [ 0.000000] psci: probing for conduit method from DT. [ 0.000000] psci: PSCIv1.1 detected in firmware. [ 0.000000] psci: Using standard PSCI v0.2 function IDs [ 0.000000] psci: MIGRATE_INFO_TYPE not supported. [ 0.000000] psci: SMC Calling Convention v1.0 I'll fix that in V2. Thanks!
Il 10/01/24 16:41, Rafał Miłecki ha scritto: > On 10.01.2024 14:38, AngeloGioacchino Del Regno wrote: >> Il 10/01/24 10:51, Rafał Miłecki ha scritto: >>> From: Rafał Miłecki <rafal@milecki.pl> >>> >>> MT7981B (AKA MediaTek Filogic 820) is a dual-core ARM Cortex-A53 SoC. >>> One of market devices using this SoC is Xiaomi AX3000T. >>> >>> This is initial contribution with basic SoC support. More hardware block >>> will get added later. Some will need their bindings (like auxadc). >>> >>> Signed-off-by: Rafał Miłecki <rafal@milecki.pl> >>> --- >>> arch/arm64/boot/dts/mediatek/Makefile | 1 + >>> .../dts/mediatek/mt7981b-xiaomi-ax3000t.dts | 15 +++ >>> arch/arm64/boot/dts/mediatek/mt7981b.dtsi | 108 ++++++++++++++++++ >>> 3 files changed, 124 insertions(+) >>> create mode 100644 arch/arm64/boot/dts/mediatek/mt7981b-xiaomi-ax3000t.dts >>> create mode 100644 arch/arm64/boot/dts/mediatek/mt7981b.dtsi >>> >>> diff --git a/arch/arm64/boot/dts/mediatek/Makefile >>> b/arch/arm64/boot/dts/mediatek/Makefile >>> index 0a189d5d8006..8bff11acfe1f 100644 >>> --- a/arch/arm64/boot/dts/mediatek/Makefile >>> +++ b/arch/arm64/boot/dts/mediatek/Makefile >>> @@ -8,6 +8,7 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += mt6797-evb.dtb >>> dtb-$(CONFIG_ARCH_MEDIATEK) += mt6797-x20-dev.dtb >>> dtb-$(CONFIG_ARCH_MEDIATEK) += mt7622-rfb1.dtb >>> dtb-$(CONFIG_ARCH_MEDIATEK) += mt7622-bananapi-bpi-r64.dtb >>> +dtb-$(CONFIG_ARCH_MEDIATEK) += mt7981b-xiaomi-ax3000t.dtb >>> dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3.dtb >>> dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3-emmc.dtbo >>> dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3-nand.dtbo >>> diff --git a/arch/arm64/boot/dts/mediatek/mt7981b-xiaomi-ax3000t.dts >>> b/arch/arm64/boot/dts/mediatek/mt7981b-xiaomi-ax3000t.dts >>> new file mode 100644 >>> index 000000000000..a314c3e05e50 >>> --- /dev/null >>> +++ b/arch/arm64/boot/dts/mediatek/mt7981b-xiaomi-ax3000t.dts >>> @@ -0,0 +1,15 @@ >>> +// SPDX-License-Identifier: GPL-2.0-only OR MIT >>> + >>> +/dts-v1/; >>> + >>> +#include "mt7981b.dtsi" >>> + >>> +/ { >>> + compatible = "xiaomi,ax3000t", "mediatek,mt7981b"; >>> + model = "Xiaomi AX3000T"; >>> + >>> + memory@40000000 { >>> + reg = <0 0x40000000 0 0x10000000>; >>> + device_type = "memory"; >>> + }; >>> +}; >>> diff --git a/arch/arm64/boot/dts/mediatek/mt7981b.dtsi >>> b/arch/arm64/boot/dts/mediatek/mt7981b.dtsi >>> new file mode 100644 >>> index 000000000000..ce878ad55204 >>> --- /dev/null >>> +++ b/arch/arm64/boot/dts/mediatek/mt7981b.dtsi >>> @@ -0,0 +1,108 @@ >>> +// SPDX-License-Identifier: GPL-2.0-only OR MIT >>> + >>> +#include <dt-bindings/clock/mediatek,mt7981-clk.h> >>> +#include <dt-bindings/interrupt-controller/arm-gic.h> >>> + >>> +/ { >>> + compatible = "mediatek,mt7981b"; >>> + interrupt-parent = <&gic>; >>> + #address-cells = <2>; >>> + #size-cells = <2>; >>> + >>> + cpus { >>> + #address-cells = <1>; >>> + #size-cells = <0>; >>> + >>> + cpu@0 { >>> + compatible = "arm,cortex-a53"; >>> + reg = <0x0>; >>> + device_type = "cpu"; >>> + enable-method = "psci"; >>> + }; >>> + >>> + cpu@1 { >>> + compatible = "arm,cortex-a53"; >>> + reg = <0x1>; >>> + device_type = "cpu"; >>> + enable-method = "psci"; >>> + }; >>> + }; >>> + >>> + oscillator-40m { >>> + compatible = "fixed-clock"; >>> + clock-frequency = <40000000>; >>> + clock-output-names = "clkxtal"; >>> + #clock-cells = <0>; >>> + }; >>> + >>> + psci { >>> + compatible = "arm,psci-0.2"; >> >> PSCI 0.2? I invite you to check a kernel log for a string like this one: >> >> `PSCIv%d.%d detected in firmware` >> ...because of course if it says v1.0, this should be "arm,psci-1.0". >> >> This is just a nitpick anyway, so you can already get my >> >> Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> >> >> P.S.: but please, confirm or deny that PSCI thing ASAP :-) >> P.P.S.: For next time - I'd be happy if you could add a cover letter to your >> patch series..! > > You were right, good catch! > > [ 0.000000] psci: probing for conduit method from DT. > [ 0.000000] psci: PSCIv1.1 detected in firmware. > [ 0.000000] psci: Using standard PSCI v0.2 function IDs > [ 0.000000] psci: MIGRATE_INFO_TYPE not supported. > [ 0.000000] psci: SMC Calling Convention v1.0 > > I'll fix that in V2. Thanks! > Cool! You're welcome! For v1.1 it's still "arm,psci-1.0" btw :-) You can keep my R-b tag with that compatible change, no need to drop it. Cheers, Angelo
diff --git a/arch/arm64/boot/dts/mediatek/Makefile b/arch/arm64/boot/dts/mediatek/Makefile index 0a189d5d8006..8bff11acfe1f 100644 --- a/arch/arm64/boot/dts/mediatek/Makefile +++ b/arch/arm64/boot/dts/mediatek/Makefile @@ -8,6 +8,7 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += mt6797-evb.dtb dtb-$(CONFIG_ARCH_MEDIATEK) += mt6797-x20-dev.dtb dtb-$(CONFIG_ARCH_MEDIATEK) += mt7622-rfb1.dtb dtb-$(CONFIG_ARCH_MEDIATEK) += mt7622-bananapi-bpi-r64.dtb +dtb-$(CONFIG_ARCH_MEDIATEK) += mt7981b-xiaomi-ax3000t.dtb dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3.dtb dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3-emmc.dtbo dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3-nand.dtbo diff --git a/arch/arm64/boot/dts/mediatek/mt7981b-xiaomi-ax3000t.dts b/arch/arm64/boot/dts/mediatek/mt7981b-xiaomi-ax3000t.dts new file mode 100644 index 000000000000..a314c3e05e50 --- /dev/null +++ b/arch/arm64/boot/dts/mediatek/mt7981b-xiaomi-ax3000t.dts @@ -0,0 +1,15 @@ +// SPDX-License-Identifier: GPL-2.0-only OR MIT + +/dts-v1/; + +#include "mt7981b.dtsi" + +/ { + compatible = "xiaomi,ax3000t", "mediatek,mt7981b"; + model = "Xiaomi AX3000T"; + + memory@40000000 { + reg = <0 0x40000000 0 0x10000000>; + device_type = "memory"; + }; +}; diff --git a/arch/arm64/boot/dts/mediatek/mt7981b.dtsi b/arch/arm64/boot/dts/mediatek/mt7981b.dtsi new file mode 100644 index 000000000000..ce878ad55204 --- /dev/null +++ b/arch/arm64/boot/dts/mediatek/mt7981b.dtsi @@ -0,0 +1,108 @@ +// SPDX-License-Identifier: GPL-2.0-only OR MIT + +#include <dt-bindings/clock/mediatek,mt7981-clk.h> +#include <dt-bindings/interrupt-controller/arm-gic.h> + +/ { + compatible = "mediatek,mt7981b"; + interrupt-parent = <&gic>; + #address-cells = <2>; + #size-cells = <2>; + + cpus { + #address-cells = <1>; + #size-cells = <0>; + + cpu@0 { + compatible = "arm,cortex-a53"; + reg = <0x0>; + device_type = "cpu"; + enable-method = "psci"; + }; + + cpu@1 { + compatible = "arm,cortex-a53"; + reg = <0x1>; + device_type = "cpu"; + enable-method = "psci"; + }; + }; + + oscillator-40m { + compatible = "fixed-clock"; + clock-frequency = <40000000>; + clock-output-names = "clkxtal"; + #clock-cells = <0>; + }; + + psci { + compatible = "arm,psci-0.2"; + method = "smc"; + }; + + soc { + compatible = "simple-bus"; + ranges; + #address-cells = <2>; + #size-cells = <2>; + + gic: interrupt-controller@c000000 { + compatible = "arm,gic-v3"; + reg = <0 0x0c000000 0 0x40000>, /* GICD */ + <0 0x0c080000 0 0x200000>, /* GICR */ + <0 0x0c400000 0 0x2000>, /* GICC */ + <0 0x0c410000 0 0x1000>, /* GICH */ + <0 0x0c420000 0 0x2000>; /* GICV */ + interrupt-parent = <&gic>; + interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>; + interrupt-controller; + #interrupt-cells = <3>; + }; + + infracfg: clock-controller@10001000 { + compatible = "mediatek,mt7981-infracfg", "syscon"; + reg = <0 0x10001000 0 0x1000>; + #clock-cells = <1>; + }; + + clock-controller@1001b000 { + compatible = "mediatek,mt7981-topckgen", "syscon"; + reg = <0 0x1001b000 0 0x1000>; + #clock-cells = <1>; + }; + + clock-controller@1001e000 { + compatible = "mediatek,mt7981-apmixedsys"; + reg = <0 0x1001e000 0 0x1000>; + #clock-cells = <1>; + }; + + pwm@10048000 { + compatible = "mediatek,mt7981-pwm"; + reg = <0 0x10048000 0 0x1000>; + clocks = <&infracfg CLK_INFRA_PWM_STA>, + <&infracfg CLK_INFRA_PWM_HCK>, + <&infracfg CLK_INFRA_PWM1_CK>, + <&infracfg CLK_INFRA_PWM2_CK>, + <&infracfg CLK_INFRA_PWM3_CK>; + clock-names = "top", "main", "pwm1", "pwm2", "pwm3"; + #pwm-cells = <2>; + }; + + clock-controller@15000000 { + compatible = "mediatek,mt7981-ethsys", "syscon"; + reg = <0 0x15000000 0 0x1000>; + #clock-cells = <1>; + #reset-cells = <1>; + }; + }; + + timer { + compatible = "arm,armv8-timer"; + interrupt-parent = <&gic>; + 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>; + }; +};