Apple SoC DT updates for 5.17, round 2:

- Various cleanups (removing useless props, sorting nodes, renaming
   things)
 - Add PMGR min-state binding & props (see PMGR pull for driver change)
 - Initial compatibles for t600x machines (M1 Pro/Max). This covers the
   bindings that just need compatible bumps & minor tweaks, no driver
   changes.
 - Add watchdog node (driver not merged yet, hopefully will be; binding
   went in the previous pull)
 - Add missing power-domains property to the mailbox binding
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYIAB0WIQSU7I7lUkZru3Mt15+lhN6SrnTN2AUCYbn3nQAKCRClhN6SrnTN
 2BllAP47kTDqaFjphvPlwtqLQNkNLdGwA41raizbDb1bN37CLAD+Prd8qZMC06Jg
 5hisgJXYIjqc1BcU99RaWIsbcwA6lgI=
 =D74S
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmG6AigACgkQmmx57+YA
 GNmjcRAAsD0DxGIClPBrTV7rxhyrKdG753P93BOWtztVHMt6Nn4FEn9e5bqGZg5G
 NPR9dJ83N+cOzZaLjispwId+WA4WdJCNNV8xy/MzwvvN+X1NNrk/9/pun/xnyaGk
 IfpBrHn5kxsa4iV8pWasVGAdW/JvoKZ2TLhToAFSKX9mJQGwwbmdxdU2QlnH/BHC
 sxM24zZglzNYYIxZetpkr/V7mMSoB+pT4xp2w8Rh+z8S13qNVj8lMpH05UJJYGmG
 eUpFeWmOsPWuNTO6SPKqQUjiA94E57fUYTDv//bIBYfqb0iUXsW4e3Gwh94rqtmz
 dCpc+3WmHqc7ODjEvoXleUah8lAY5VOUbgDMS75lECsmNs5s7Y3/753SbXZBl+oh
 VwKrdPfgumjHT7NNvd6IJwG0V8VSDWm6/PihUkRdatJn1lZblgrKVRfu83hZG/7V
 Zrp7A5C1E3XGIKeT2FjpXaOu547el33XHfro3qkFi72SYTz2+C5VRzRRF6IZ/fqd
 oZYrmpQxFQeudAtRIiNKq9GeHNvsMysc03aQxUhkSqvDKy90MhTRA6QyPjsGqZo/
 DFwOQej7mMfNPtdLR5m57VYRWh6iMQ0QY2KHpI6appAYvhia+zPraykr25OFebSE
 ycTbPrSE5Mv7cp/9pzsDLHud9saXUPLzREhLmwjlBs1yfYiyK8E=
 =BbdH
 -----END PGP SIGNATURE-----

Merge tag 'asahi-soc-dt-5.17-v2' of https://github.com/AsahiLinux/linux into arm/dt

Apple SoC DT updates for 5.17, round 2:

- Various cleanups (removing useless props, sorting nodes, renaming
  things)
- Add PMGR min-state binding & props (see PMGR pull for driver change)
- Initial compatibles for t600x machines (M1 Pro/Max). This covers the
  bindings that just need compatible bumps & minor tweaks, no driver
  changes.
- Add watchdog node (driver not merged yet, hopefully will be; binding
  went in the previous pull)
- Add missing power-domains property to the mailbox binding

* tag 'asahi-soc-dt-5.17-v2' of https://github.com/AsahiLinux/linux:
  dt-bindings: mailbox: apple,mailbox: Add power-domains property
  arm64: dts: apple: t8103: Sort nodes by address
  arm64: dts: apple: t8103: Rename clk24 to clkref
  arm64: dts: apple: t8103: Add watchdog node
  dt-bindings: pinctrl: apple,pinctrl: Add apple,t6000-pinctrl compatible
  dt-bindings: pci: apple,pcie: Add t6000 support
  dt-bindings: i2c: apple,i2c: Add apple,t6000-i2c compatible
  dt-bindings: arm: apple: Add t6000/t6001 MacBook Pro 14/16" compatibles
  arm64: dts: apple: t8103: Add apple,min-state to DCP PMGR nodes
  dt-bindings: power: apple,pmgr-pwrstate: Add apple,min-state prop
  arm64: dts: apple: t8103: Remove PCIe max-link-speed properties

Link: https://lore.kernel.org/r/a24faafd-f2ae-c3a7-5327-b27da7d9e34b@marcan.st
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
Arnd Bergmann 2021-12-15 15:56:39 +01:00
commit 5f424ff299
8 changed files with 106 additions and 49 deletions

View file

@ -19,6 +19,13 @@ description: |
- MacBook Air (M1, 2020) - MacBook Air (M1, 2020)
- iMac (24-inch, M1, 2021) - iMac (24-inch, M1, 2021)
And devices based on the "M1 Pro" and "M1 Max" SoCs:
- MacBook Pro (14-inch, M1 Pro, 2021)
- MacBook Pro (14-inch, M1 Max, 2021)
- MacBook Pro (16-inch, M1 Pro, 2021)
- MacBook Pro (16-inch, M1 Max, 2021)
The compatible property should follow this format: The compatible property should follow this format:
compatible = "apple,<targettype>", "apple,<socid>", "apple,arm-platform"; compatible = "apple,<targettype>", "apple,<socid>", "apple,arm-platform";
@ -60,6 +67,20 @@ properties:
- apple,j457 # iMac (24-inch, 2x USB-C, M1, 2021) - apple,j457 # iMac (24-inch, 2x USB-C, M1, 2021)
- const: apple,t8103 - const: apple,t8103
- const: apple,arm-platform - const: apple,arm-platform
- description: Apple M1 Pro SoC based platforms
items:
- enum:
- apple,j314s # MacBook Pro (14-inch, M1 Pro, 2021)
- apple,j316s # MacBook Pro (16-inch, M1 Pro, 2021)
- const: apple,t6000
- const: apple,arm-platform
- description: Apple M1 Max SoC based platforms
items:
- enum:
- apple,j314c # MacBook Pro (14-inch, M1 Max, 2021)
- apple,j316c # MacBook Pro (16-inch, M1 Max, 2021)
- const: apple,t6001
- const: apple,arm-platform
additionalProperties: true additionalProperties: true

View file

@ -21,7 +21,9 @@ allOf:
properties: properties:
compatible: compatible:
items: items:
- const: apple,t8103-i2c - enum:
- apple,t8103-i2c
- apple,t6000-i2c
- const: apple,i2c - const: apple,i2c
reg: reg:

View file

@ -56,6 +56,9 @@ properties:
"#mbox-cells": "#mbox-cells":
const: 0 const: 0
power-domains:
maxItems: 1
required: required:
- compatible - compatible
- reg - reg

View file

@ -28,19 +28,17 @@ description: |
distributed over the root ports as the OS sees fit by programming distributed over the root ports as the OS sees fit by programming
the PCIe controller's port registers. the PCIe controller's port registers.
allOf:
- $ref: /schemas/pci/pci-bus.yaml#
- $ref: /schemas/interrupt-controller/msi-controller.yaml#
properties: properties:
compatible: compatible:
items: items:
- const: apple,t8103-pcie - enum:
- apple,t8103-pcie
- apple,t6000-pcie
- const: apple,pcie - const: apple,pcie
reg: reg:
minItems: 3 minItems: 3
maxItems: 5 maxItems: 6
reg-names: reg-names:
minItems: 3 minItems: 3
@ -50,6 +48,7 @@ properties:
- const: port0 - const: port0
- const: port1 - const: port1
- const: port2 - const: port2
- const: port3
ranges: ranges:
minItems: 2 minItems: 2
@ -59,7 +58,7 @@ properties:
description: description:
Interrupt specifiers, one for each root port. Interrupt specifiers, one for each root port.
minItems: 1 minItems: 1
maxItems: 3 maxItems: 4
msi-parent: true msi-parent: true
@ -81,6 +80,21 @@ required:
unevaluatedProperties: false unevaluatedProperties: false
allOf:
- $ref: /schemas/pci/pci-bus.yaml#
- $ref: /schemas/interrupt-controller/msi-controller.yaml#
- if:
properties:
compatible:
contains:
const: apple,t8103-pcie
then:
properties:
reg:
maxItems: 5
interrupts:
maxItems: 3
examples: examples:
- | - |
#include <dt-bindings/interrupt-controller/apple-aic.h> #include <dt-bindings/interrupt-controller/apple-aic.h>

View file

@ -17,7 +17,9 @@ description: |
properties: properties:
compatible: compatible:
items: items:
- const: apple,t8103-pinctrl - enum:
- apple,t8103-pinctrl
- apple,t6000-pinctrl
- const: apple,pinctrl - const: apple,pinctrl
reg: reg:

View file

@ -61,6 +61,14 @@ properties:
Forces this power domain to always be powered up. Forces this power domain to always be powered up.
type: boolean type: boolean
apple,min-state:
description:
Specifies the minimum power state for auto-PM.
0 = power gated, 4 = clock gated, 15 = on.
$ref: /schemas/types.yaml#/definitions/uint32
minimum: 0
maximum: 15
required: required:
- compatible - compatible
- reg - reg

View file

@ -665,6 +665,7 @@ ps_dispext_cpu0: power-controller@378 {
#reset-cells = <0>; #reset-cells = <0>;
label = "dispext_cpu0"; label = "dispext_cpu0";
power-domains = <&ps_dispext_fe>; power-domains = <&ps_dispext_fe>;
apple,min-state = <4>;
}; };
ps_jpg: power-controller@3c0 { ps_jpg: power-controller@3c0 {
@ -1005,6 +1006,7 @@ ps_disp0_cpu0: power-controller@10018 {
label = "disp0_cpu0"; label = "disp0_cpu0";
power-domains = <&ps_disp0_fe>; power-domains = <&ps_disp0_fe>;
apple,always-on; /* TODO: figure out if we can enable PM here */ apple,always-on; /* TODO: figure out if we can enable PM here */
apple,min-state = <4>;
}; };
}; };

View file

@ -96,11 +96,11 @@ timer {
<AIC_FIQ AIC_TMR_HV_VIRT IRQ_TYPE_LEVEL_HIGH>; <AIC_FIQ AIC_TMR_HV_VIRT IRQ_TYPE_LEVEL_HIGH>;
}; };
clk24: clock-24m { clkref: clock-ref {
compatible = "fixed-clock"; compatible = "fixed-clock";
#clock-cells = <0>; #clock-cells = <0>;
clock-frequency = <24000000>; clock-frequency = <24000000>;
clock-output-names = "clk24"; clock-output-names = "clkref";
}; };
soc { soc {
@ -114,7 +114,7 @@ soc {
i2c0: i2c@235010000 { i2c0: i2c@235010000 {
compatible = "apple,t8103-i2c", "apple,i2c"; compatible = "apple,t8103-i2c", "apple,i2c";
reg = <0x2 0x35010000 0x0 0x4000>; reg = <0x2 0x35010000 0x0 0x4000>;
clocks = <&clk24>; clocks = <&clkref>;
interrupt-parent = <&aic>; interrupt-parent = <&aic>;
interrupts = <AIC_IRQ 627 IRQ_TYPE_LEVEL_HIGH>; interrupts = <AIC_IRQ 627 IRQ_TYPE_LEVEL_HIGH>;
pinctrl-0 = <&i2c0_pins>; pinctrl-0 = <&i2c0_pins>;
@ -127,7 +127,7 @@ i2c0: i2c@235010000 {
i2c1: i2c@235014000 { i2c1: i2c@235014000 {
compatible = "apple,t8103-i2c", "apple,i2c"; compatible = "apple,t8103-i2c", "apple,i2c";
reg = <0x2 0x35014000 0x0 0x4000>; reg = <0x2 0x35014000 0x0 0x4000>;
clocks = <&clk24>; clocks = <&clkref>;
interrupt-parent = <&aic>; interrupt-parent = <&aic>;
interrupts = <AIC_IRQ 628 IRQ_TYPE_LEVEL_HIGH>; interrupts = <AIC_IRQ 628 IRQ_TYPE_LEVEL_HIGH>;
pinctrl-0 = <&i2c1_pins>; pinctrl-0 = <&i2c1_pins>;
@ -140,7 +140,7 @@ i2c1: i2c@235014000 {
i2c2: i2c@235018000 { i2c2: i2c@235018000 {
compatible = "apple,t8103-i2c", "apple,i2c"; compatible = "apple,t8103-i2c", "apple,i2c";
reg = <0x2 0x35018000 0x0 0x4000>; reg = <0x2 0x35018000 0x0 0x4000>;
clocks = <&clk24>; clocks = <&clkref>;
interrupt-parent = <&aic>; interrupt-parent = <&aic>;
interrupts = <AIC_IRQ 629 IRQ_TYPE_LEVEL_HIGH>; interrupts = <AIC_IRQ 629 IRQ_TYPE_LEVEL_HIGH>;
pinctrl-0 = <&i2c2_pins>; pinctrl-0 = <&i2c2_pins>;
@ -154,7 +154,7 @@ i2c2: i2c@235018000 {
i2c3: i2c@23501c000 { i2c3: i2c@23501c000 {
compatible = "apple,t8103-i2c", "apple,i2c"; compatible = "apple,t8103-i2c", "apple,i2c";
reg = <0x2 0x3501c000 0x0 0x4000>; reg = <0x2 0x3501c000 0x0 0x4000>;
clocks = <&clk24>; clocks = <&clkref>;
interrupt-parent = <&aic>; interrupt-parent = <&aic>;
interrupts = <AIC_IRQ 630 IRQ_TYPE_LEVEL_HIGH>; interrupts = <AIC_IRQ 630 IRQ_TYPE_LEVEL_HIGH>;
pinctrl-0 = <&i2c3_pins>; pinctrl-0 = <&i2c3_pins>;
@ -167,7 +167,7 @@ i2c3: i2c@23501c000 {
i2c4: i2c@235020000 { i2c4: i2c@235020000 {
compatible = "apple,t8103-i2c", "apple,i2c"; compatible = "apple,t8103-i2c", "apple,i2c";
reg = <0x2 0x35020000 0x0 0x4000>; reg = <0x2 0x35020000 0x0 0x4000>;
clocks = <&clk24>; clocks = <&clkref>;
interrupt-parent = <&aic>; interrupt-parent = <&aic>;
interrupts = <AIC_IRQ 631 IRQ_TYPE_LEVEL_HIGH>; interrupts = <AIC_IRQ 631 IRQ_TYPE_LEVEL_HIGH>;
pinctrl-0 = <&i2c4_pins>; pinctrl-0 = <&i2c4_pins>;
@ -188,7 +188,7 @@ serial0: serial@235200000 {
* TODO: figure out the clocking properly, there may * TODO: figure out the clocking properly, there may
* be a third selectable clock. * be a third selectable clock.
*/ */
clocks = <&clk24>, <&clk24>; clocks = <&clkref>, <&clkref>;
clock-names = "uart", "clk_uart_baud0"; clock-names = "uart", "clk_uart_baud0";
power-domains = <&ps_uart0>; power-domains = <&ps_uart0>;
status = "disabled"; status = "disabled";
@ -200,7 +200,7 @@ serial2: serial@235208000 {
reg-io-width = <4>; reg-io-width = <4>;
interrupt-parent = <&aic>; interrupt-parent = <&aic>;
interrupts = <AIC_IRQ 607 IRQ_TYPE_LEVEL_HIGH>; interrupts = <AIC_IRQ 607 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk24>, <&clk24>; clocks = <&clkref>, <&clkref>;
clock-names = "uart", "clk_uart_baud0"; clock-names = "uart", "clk_uart_baud0";
power-domains = <&ps_uart2>; power-domains = <&ps_uart2>;
status = "disabled"; status = "disabled";
@ -274,34 +274,6 @@ pcie_pins: pcie-pins {
}; };
}; };
pmgr_mini: power-management@23d280000 {
compatible = "apple,t8103-pmgr", "apple,pmgr", "syscon", "simple-mfd";
#address-cells = <1>;
#size-cells = <1>;
reg = <0x2 0x3d280000 0 0x4000>;
};
pinctrl_aop: pinctrl@24a820000 {
compatible = "apple,t8103-pinctrl", "apple,pinctrl";
reg = <0x2 0x4a820000 0x0 0x4000>;
gpio-controller;
#gpio-cells = <2>;
gpio-ranges = <&pinctrl_aop 0 0 42>;
apple,npins = <42>;
interrupt-controller;
#interrupt-cells = <2>;
interrupt-parent = <&aic>;
interrupts = <AIC_IRQ 268 IRQ_TYPE_LEVEL_HIGH>,
<AIC_IRQ 269 IRQ_TYPE_LEVEL_HIGH>,
<AIC_IRQ 270 IRQ_TYPE_LEVEL_HIGH>,
<AIC_IRQ 271 IRQ_TYPE_LEVEL_HIGH>,
<AIC_IRQ 272 IRQ_TYPE_LEVEL_HIGH>,
<AIC_IRQ 273 IRQ_TYPE_LEVEL_HIGH>,
<AIC_IRQ 274 IRQ_TYPE_LEVEL_HIGH>;
};
pinctrl_nub: pinctrl@23d1f0000 { pinctrl_nub: pinctrl@23d1f0000 {
compatible = "apple,t8103-pinctrl", "apple,pinctrl"; compatible = "apple,t8103-pinctrl", "apple,pinctrl";
reg = <0x2 0x3d1f0000 0x0 0x4000>; reg = <0x2 0x3d1f0000 0x0 0x4000>;
@ -324,6 +296,21 @@ pinctrl_nub: pinctrl@23d1f0000 {
<AIC_IRQ 336 IRQ_TYPE_LEVEL_HIGH>; <AIC_IRQ 336 IRQ_TYPE_LEVEL_HIGH>;
}; };
pmgr_mini: power-management@23d280000 {
compatible = "apple,t8103-pmgr", "apple,pmgr", "syscon", "simple-mfd";
#address-cells = <1>;
#size-cells = <1>;
reg = <0x2 0x3d280000 0 0x4000>;
};
wdt: watchdog@23d2b0000 {
compatible = "apple,t8103-wdt", "apple,wdt";
reg = <0x2 0x3d2b0000 0x0 0x4000>;
clocks = <&clkref>;
interrupt-parent = <&aic>;
interrupts = <AIC_IRQ 338 IRQ_TYPE_LEVEL_HIGH>;
};
pinctrl_smc: pinctrl@23e820000 { pinctrl_smc: pinctrl@23e820000 {
compatible = "apple,t8103-pinctrl", "apple,pinctrl"; compatible = "apple,t8103-pinctrl", "apple,pinctrl";
reg = <0x2 0x3e820000 0x0 0x4000>; reg = <0x2 0x3e820000 0x0 0x4000>;
@ -345,6 +332,27 @@ pinctrl_smc: pinctrl@23e820000 {
<AIC_IRQ 397 IRQ_TYPE_LEVEL_HIGH>; <AIC_IRQ 397 IRQ_TYPE_LEVEL_HIGH>;
}; };
pinctrl_aop: pinctrl@24a820000 {
compatible = "apple,t8103-pinctrl", "apple,pinctrl";
reg = <0x2 0x4a820000 0x0 0x4000>;
gpio-controller;
#gpio-cells = <2>;
gpio-ranges = <&pinctrl_aop 0 0 42>;
apple,npins = <42>;
interrupt-controller;
#interrupt-cells = <2>;
interrupt-parent = <&aic>;
interrupts = <AIC_IRQ 268 IRQ_TYPE_LEVEL_HIGH>,
<AIC_IRQ 269 IRQ_TYPE_LEVEL_HIGH>,
<AIC_IRQ 270 IRQ_TYPE_LEVEL_HIGH>,
<AIC_IRQ 271 IRQ_TYPE_LEVEL_HIGH>,
<AIC_IRQ 272 IRQ_TYPE_LEVEL_HIGH>,
<AIC_IRQ 273 IRQ_TYPE_LEVEL_HIGH>,
<AIC_IRQ 274 IRQ_TYPE_LEVEL_HIGH>;
};
pcie0_dart_0: dart@681008000 { pcie0_dart_0: dart@681008000 {
compatible = "apple,t8103-dart"; compatible = "apple,t8103-dart";
reg = <0x6 0x81008000 0x0 0x4000>; reg = <0x6 0x81008000 0x0 0x4000>;
@ -412,7 +420,6 @@ port00: pci@0,0 {
device_type = "pci"; device_type = "pci";
reg = <0x0 0x0 0x0 0x0 0x0>; reg = <0x0 0x0 0x0 0x0 0x0>;
reset-gpios = <&pinctrl_ap 152 0>; reset-gpios = <&pinctrl_ap 152 0>;
max-link-speed = <2>;
#address-cells = <3>; #address-cells = <3>;
#size-cells = <2>; #size-cells = <2>;
@ -432,7 +439,6 @@ port01: pci@1,0 {
device_type = "pci"; device_type = "pci";
reg = <0x800 0x0 0x0 0x0 0x0>; reg = <0x800 0x0 0x0 0x0 0x0>;
reset-gpios = <&pinctrl_ap 153 0>; reset-gpios = <&pinctrl_ap 153 0>;
max-link-speed = <2>;
#address-cells = <3>; #address-cells = <3>;
#size-cells = <2>; #size-cells = <2>;
@ -452,7 +458,6 @@ port02: pci@2,0 {
device_type = "pci"; device_type = "pci";
reg = <0x1000 0x0 0x0 0x0 0x0>; reg = <0x1000 0x0 0x0 0x0 0x0>;
reset-gpios = <&pinctrl_ap 33 0>; reset-gpios = <&pinctrl_ap 33 0>;
max-link-speed = <1>;
#address-cells = <3>; #address-cells = <3>;
#size-cells = <2>; #size-cells = <2>;