xref: /freebsd/sys/contrib/device-tree/Bindings/arm/apple.yaml (revision aa1a8ff2d6dbc51ef058f46f3db5a8bb77967145)
1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/arm/apple.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Apple ARM Machine
8
9maintainers:
10  - Hector Martin <marcan@marcan.st>
11
12description: |
13  ARM platforms using SoCs designed by Apple Inc., branded "Apple Silicon".
14
15  This currently includes devices based on the "M1" SoC:
16
17  - Mac mini (M1, 2020)
18  - MacBook Pro (13-inch, M1, 2020)
19  - MacBook Air (M1, 2020)
20  - iMac (24-inch, M1, 2021)
21
22  Devices based on the "M2" SoC:
23
24  - MacBook Air (M2, 2022)
25  - MacBook Pro (13-inch, M2, 2022)
26  - Mac mini (M2, 2023)
27
28  And devices based on the "M1 Pro", "M1 Max" and "M1 Ultra" SoCs:
29
30  - MacBook Pro (14-inch, M1 Pro, 2021)
31  - MacBook Pro (14-inch, M1 Max, 2021)
32  - MacBook Pro (16-inch, M1 Pro, 2021)
33  - MacBook Pro (16-inch, M1 Max, 2021)
34  - Mac Studio (M1 Max, 2022)
35  - Mac Studio (M1 Ultra, 2022)
36
37  The compatible property should follow this format:
38
39  compatible = "apple,<targettype>", "apple,<socid>", "apple,arm-platform";
40
41  <targettype> represents the board/device and comes from the `target-type`
42  property of the root node of the Apple Device Tree, lowercased. It can be
43  queried on macOS using the following command:
44
45  $ ioreg -d2 -l | grep target-type
46
47  <socid> is the lowercased SoC ID. Apple uses at least *five* different
48  names for their SoCs:
49
50  - Marketing name ("M1")
51  - Internal name ("H13G")
52  - Codename ("Tonga")
53  - SoC ID ("T8103")
54  - Package/IC part number ("APL1102")
55
56  Devicetrees should use the lowercased SoC ID, to avoid confusion if
57  multiple SoCs share the same marketing name. This can be obtained from
58  the `compatible` property of the arm-io node of the Apple Device Tree,
59  which can be queried as follows on macOS:
60
61  $ ioreg -n arm-io | grep compatible
62
63properties:
64  $nodename:
65    const: "/"
66  compatible:
67    oneOf:
68      - description: Apple M1 SoC based platforms
69        items:
70          - enum:
71              - apple,j274 # Mac mini (M1, 2020)
72              - apple,j293 # MacBook Pro (13-inch, M1, 2020)
73              - apple,j313 # MacBook Air (M1, 2020)
74              - apple,j456 # iMac (24-inch, 4x USB-C, M1, 2021)
75              - apple,j457 # iMac (24-inch, 2x USB-C, M1, 2021)
76          - const: apple,t8103
77          - const: apple,arm-platform
78
79      - description: Apple M2 SoC based platforms
80        items:
81          - enum:
82              - apple,j413 # MacBook Air (M2, 2022)
83              - apple,j473 # Mac mini (M2, 2023)
84              - apple,j493 # MacBook Pro (13-inch, M2, 2022)
85          - const: apple,t8112
86          - const: apple,arm-platform
87
88      - description: Apple M1 Pro SoC based platforms
89        items:
90          - enum:
91              - apple,j314s # MacBook Pro (14-inch, M1 Pro, 2021)
92              - apple,j316s # MacBook Pro (16-inch, M1 Pro, 2021)
93          - const: apple,t6000
94          - const: apple,arm-platform
95
96      - description: Apple M1 Max SoC based platforms
97        items:
98          - enum:
99              - apple,j314c # MacBook Pro (14-inch, M1 Max, 2021)
100              - apple,j316c # MacBook Pro (16-inch, M1 Max, 2021)
101              - apple,j375c # Mac Studio (M1 Max, 2022)
102          - const: apple,t6001
103          - const: apple,arm-platform
104
105      - description: Apple M1 Ultra SoC based platforms
106        items:
107          - enum:
108              - apple,j375d # Mac Studio (M1 Ultra, 2022)
109          - const: apple,t6002
110          - const: apple,arm-platform
111
112additionalProperties: true
113
114...
115