On 2023-02-13 12:22:11 +0100, Krzysztof Kozlowski wrote: > On 12/02/2023 16:41, Janne Grunau wrote: > > From: Hector Martin <marcan@xxxxxxxxx> > > > > This adds device trees for the following devices: > > - Macbook Air (M2, 2022) > > - Macbook Pro 13" (M2, 2022) > > - Mac mini (M2, 2023) > > > > Signed-off-by: Hector Martin <marcan@xxxxxxxxx> > > Co-developed-by: Janne Grunau <j@xxxxxxxxxx> > > Signed-off-by: Janne Grunau <j@xxxxxxxxxx> > > --- > > arch/arm64/boot/dts/apple/Makefile | 3 + > > arch/arm64/boot/dts/apple/t8112-j413.dts | 71 ++ > > arch/arm64/boot/dts/apple/t8112-j473.dts | 60 ++ > > arch/arm64/boot/dts/apple/t8112-j493.dts | 60 ++ > > arch/arm64/boot/dts/apple/t8112-jxxx.dtsi | 81 ++ > > arch/arm64/boot/dts/apple/t8112-pmgr.dtsi | 1141 +++++++++++++++++++++++++++++ > > arch/arm64/boot/dts/apple/t8112.dtsi | 904 +++++++++++++++++++++++ > > 7 files changed, 2320 insertions(+) > > > > diff --git a/arch/arm64/boot/dts/apple/Makefile b/arch/arm64/boot/dts/apple/Makefile > > index 5a7506ff5ea3..aec5e29cdfb7 100644 > > --- a/arch/arm64/boot/dts/apple/Makefile > > +++ b/arch/arm64/boot/dts/apple/Makefile > > @@ -10,3 +10,6 @@ dtb-$(CONFIG_ARCH_APPLE) += t6000-j316s.dtb > > dtb-$(CONFIG_ARCH_APPLE) += t6001-j316c.dtb > > dtb-$(CONFIG_ARCH_APPLE) += t6001-j375c.dtb > > dtb-$(CONFIG_ARCH_APPLE) += t6002-j375d.dtb > > +dtb-$(CONFIG_ARCH_APPLE) += t8112-j413.dtb > > +dtb-$(CONFIG_ARCH_APPLE) += t8112-j473.dtb > > +dtb-$(CONFIG_ARCH_APPLE) += t8112-j493.dtb > > diff --git a/arch/arm64/boot/dts/apple/t8112-j413.dts b/arch/arm64/boot/dts/apple/t8112-j413.dts > > new file mode 100644 > > index 000000000000..0e5b5add92cf > > --- /dev/null > > +++ b/arch/arm64/boot/dts/apple/t8112-j413.dts > > @@ -0,0 +1,71 @@ > > +// SPDX-License-Identifier: GPL-2.0+ OR MIT > > +/* > > + * Apple MacBook Air (M2, 2022) > > + * > > + * target-type: J413 > > + * > > + * Copyright The Asahi Linux Contributors > > + */ > > + > > +/dts-v1/; > > + > > +#include "t8112.dtsi" > > +#include "t8112-jxxx.dtsi" > > + > > +/ { > > + compatible = "apple,j413", "apple,t8112", "apple,arm-platform"; > > + model = "Apple MacBook Air (13-inch, M2, 2022)"; > > + > > + aliases { > > + bluetooth0 = &bluetooth0; > > + wifi0 = &wifi0; > > + }; > > +}; > > + > > +/* > > + * Force the bus number assignments so that we can declare some of the > > + * on-board devices and properties that are populated by the bootloader > > + * (such as MAC addresses). > > + */ > > +&port00 { > > + bus-range = <1 1>; > > + wifi0: wifi@0,0 { > > + compatible = "pci14e4,4433"; > > + reg = <0x10000 0x0 0x0 0x0 0x0>; > > + /* To be filled by the loader */ > > + local-mac-address = [00 10 18 00 00 10]; > > + apple,antenna-sku = "XX"; > > + brcm,board-type = "apple,hokkaido"; > > + }; > > + > > + bluetooth0: bluetooth@0,1 { > > + compatible = "pci14e4,5f71"; > > + reg = <0x10100 0x0 0x0 0x0 0x0>; > > + /* To be filled by the loader */ > > + local-bd-address = [00 00 00 00 00 00]; > > + brcm,board-type = "apple,hokkaido"; > > + }; > > +}; > > + > > +/* > > + * Remove unused PCIe ports > > + */ > > + > > +/delete-node/ &port01; > > You should not delete devices just because they are unused. Externally > visible buses should be just disabled in DTSI and you enable them when > needed. Not the opposite way. > > What's more, you must node delete nodes just because they are "not > used". This not anymore proper description of hardware. I agree, this is copied from the M1 and M1 Pro/Max/Ultra devictrees. I'll fix it there as well. > > > +/delete-node/ &port02; > > +/delete-node/ &port03; > > + > > +&i2c0 { > > + /* MagSafe port */ > > + hpm5: usb-pd@3a { > > + compatible = "apple,cd321x"; > > + reg = <0x3a>; > > + interrupt-parent = <&pinctrl_ap>; > > + interrupts = <8 IRQ_TYPE_LEVEL_LOW>; > > + interrupt-names = "irq"; > > + }; > > +}; > > + > > +&i2c4 { > > + status = "okay"; > > +}; > > diff --git a/arch/arm64/boot/dts/apple/t8112-j473.dts b/arch/arm64/boot/dts/apple/t8112-j473.dts > > new file mode 100644 > > index 000000000000..55950d0a73c5 > > --- /dev/null > > +++ b/arch/arm64/boot/dts/apple/t8112-j473.dts > > @@ -0,0 +1,60 @@ > > +// SPDX-License-Identifier: GPL-2.0+ OR MIT > > +/* > > + * Apple Mac mini (M2, 2023) > > + * > > + * target-type: J473 > > + * > > + * Copyright The Asahi Linux Contributors > > + */ > > + > > +/dts-v1/; > > (....) > > > > + > > + ps_debug_switch: power-controller@b8 { > > + compatible = "apple,t8112-pmgr-pwrstate", "apple,pmgr-pwrstate"; > > + reg = <0xb8 4>; > > + #power-domain-cells = <0>; > > + #reset-cells = <0>; > > + label = "debug_switch"; > > + apple,always-on; /* Core AON device */ > > + }; > > +}; > > + > > diff --git a/arch/arm64/boot/dts/apple/t8112.dtsi b/arch/arm64/boot/dts/apple/t8112.dtsi > > new file mode 100644 > > index 000000000000..974443913f6a > > --- /dev/null > > +++ b/arch/arm64/boot/dts/apple/t8112.dtsi > > @@ -0,0 +1,904 @@ > > +// SPDX-License-Identifier: GPL-2.0+ OR MIT > > +/* > > + * Apple T8112 "M2" SoC > > + * > > + * Other names: H14G > > + * > > + * Copyright The Asahi Linux Contributors > > + */ > > > (...) > > > + > > + aic: interrupt-controller@23b0c0000 { > > + compatible = "apple,t8112-aic", "apple,aic2"; > > + #interrupt-cells = <3>; > > + interrupt-controller; > > + reg = <0x2 0x3b0c0000 0x0 0x8000>, > > + <0x2 0x3b0c8000 0x0 0x4>; > > + reg-names = "core", "event"; > > + power-domains = <&ps_aic>; > > + > > + affinities { > > + e-core-pmu-affinity { > > + apple,fiq-index = <AIC_CPU_PMU_E>; > > + cpus = <&cpu_e0 &cpu_e1 &cpu_e2 &cpu_e3>; > > + }; > > + > > + p-core-pmu-affinity { > > + apple,fiq-index = <AIC_CPU_PMU_P>; > > + cpus = <&cpu_p0 &cpu_p1 &cpu_p2 &cpu_p3>; > > + }; > > + }; > > + }; > > + > > + pmgr: power-management@23b700000 { > > + compatible = "apple,t8112-pmgr", "apple,pmgr", "syscon", "simple-mfd"; > > Why this is simple-mfd? I suppose because the syscon device is not limited to power domain controls. The dt-bindings in arm/apple/apple,pmgr.yaml specify those compatibles. See the original discussion in: https://lore.kernel.org/linux-devicetree/57991dac-196e-a76d-831a-d4ac166bfe29@xxxxxxxxx/ > > > + #address-cells = <1>; > > + #size-cells = <1>; > > + reg = <0x2 0x3b700000 0 0x14000>; > > + }; > > > > + > > + pmgr_mini: power-management@23d280000 { > > + compatible = "apple,t8112-pmgr", "apple,pmgr", "syscon", "simple-mfd"; > > Why this is simple-mfd? see above > > + #address-cells = <1>; > > + #size-cells = <1>; > > + reg = <0x2 0x3d280000 0 0x4000>; > > + }; > thanks Janne