Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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

Apple SoC DT updates for 6.13:

- Added base DTs for a bunch of non-Mac Apple iDevices (pre-M1)

* tag 'asahi-soc-dt-6.13' of https://github.com/AsahiLinux/linux:
arm64: Kconfig: Update help text for CONFIG_ARCH_APPLE
arm64: dts: apple: Add A11 devices
arm64: dts: apple: Add A10X devices
arm64: dts: apple: Add A10 devices
arm64: dts: apple: Add A9X devices
arm64: dts: apple: Add A9 devices
arm64: dts: apple: Add A8X devices
arm64: dts: apple: Add A8 devices
arm64: dts: apple: Add A7 devices
dt-bindings: arm: apple: Add A11 devices
dt-bindings: arm: apple: Add A10X devices
dt-bindings: arm: apple: Add A10 devices
dt-bindings: arm: apple: Add A9X devices
dt-bindings: arm: apple: Add A9 devices
dt-bindings: arm: apple: Add A8X devices
dt-bindings: arm: apple: Add A8 devices
dt-bindings: arm: apple: Add A7 devices
dt-bindings: pinctrl: apple,pinctrl: Add A7-A11 compatibles
dt-bindings: watchdog: apple,wdt: Add A7-A11 compatibles
dt-bindings: arm: cpus: Add Apple A7-A11 CPU cores

Link: https://lore.kernel.org/r/a8a19596-5d46-4562-9555-3b3ae7a5a3e5@marcan.st
Signed-off-by: Arnd Bergmann <arnd@arndb.de>

+3298 -4
+159 -1
Documentation/devicetree/bindings/arm/apple.yaml
··· 12 12 description: | 13 13 ARM platforms using SoCs designed by Apple Inc., branded "Apple Silicon". 14 14 15 - This currently includes devices based on the "M1" SoC: 15 + This currently includes devices based on the "A7" SoC: 16 + 17 + - iPhone 5s 18 + - iPad Air (1) 19 + - iPad mini 2 20 + - iPad mini 3 21 + 22 + Devices based on the "A8" SoC: 23 + 24 + - iPhone 6 25 + - iPhone 6 Plus 26 + - iPad mini 4 27 + - iPod touch 6 28 + - Apple TV HD 29 + 30 + Device based on the "A8X" SoC: 31 + 32 + - iPad Air 2 33 + 34 + Devices based on the "A9" SoC: 35 + 36 + - iPhone 6s 37 + - iPhone 6s Plus 38 + - iPhone SE (2016) 39 + - iPad 5 40 + 41 + Devices based on the "A9X" SoC: 42 + 43 + - iPad Pro (9.7-inch) 44 + - iPad Pro (12.9-inch) 45 + 46 + Devices based on the "A10" SoC: 47 + 48 + - iPhone 7 49 + - iPhone 7 Plus 50 + - iPod touch 7 51 + - iPad 6 52 + - iPad 7 53 + 54 + Devices based on the "A10X" SoC: 55 + 56 + - Apple TV 4K (1st generation) 57 + - iPad Pro (2nd Generation) (10.5 Inch) 58 + - iPad Pro (2nd Generation) (12.9 Inch) 59 + 60 + Devices based on the "A11" SoC: 61 + 62 + - iPhone 8 63 + - iPhone 8 Plus 64 + - iPhone X 65 + 66 + Devices based on the "M1" SoC: 16 67 17 68 - Mac mini (M1, 2020) 18 69 - MacBook Pro (13-inch, M1, 2020) ··· 116 65 const: "/" 117 66 compatible: 118 67 oneOf: 68 + - description: Apple A7 SoC based platforms 69 + items: 70 + - enum: 71 + - apple,j71 # iPad Air (Wi-Fi) 72 + - apple,j72 # iPad Air (Cellular) 73 + - apple,j73 # iPad Air (Cellular, China) 74 + - apple,j85 # iPad mini 2 (Wi-Fi) 75 + - apple,j85m # iPad mini 3 (Wi-Fi) 76 + - apple,j86 # iPad mini 2 (Cellular) 77 + - apple,j86m # iPad mini 3 (Cellular) 78 + - apple,j87 # iPad mini 2 (Cellular, China) 79 + - apple,j87m # iPad mini 3 (Cellular, China) 80 + - apple,n51 # iPhone 5s (GSM) 81 + - apple,n53 # iPhone 5s (LTE) 82 + - const: apple,s5l8960x 83 + - const: apple,arm-platform 84 + 85 + - description: Apple A8 SoC based platforms 86 + items: 87 + - enum: 88 + - apple,j42d # Apple TV HD 89 + - apple,j96 # iPad mini 4 (Wi-Fi) 90 + - apple,j97 # iPad mini 4 (Cellular) 91 + - apple,n56 # iPhone 6 Plus 92 + - apple,n61 # iPhone 6 93 + - apple,n102 # iPod touch 6 94 + - const: apple,t7000 95 + - const: apple,arm-platform 96 + 97 + - description: Apple A8X SoC based platforms 98 + items: 99 + - enum: 100 + - apple,j81 # iPad Air 2 (Wi-Fi) 101 + - apple,j82 # iPad Air 2 (Cellular) 102 + - const: apple,t7001 103 + - const: apple,arm-platform 104 + 105 + - description: Apple Samsung A9 SoC based platforms 106 + items: 107 + - enum: 108 + - apple,j71s # iPad 5 (Wi-Fi) (S8000) 109 + - apple,j72s # iPad 5 (Cellular) (S8000) 110 + - apple,n66 # iPhone 6s Plus (S8000) 111 + - apple,n69u # iPhone SE (S8000) 112 + - apple,n71 # iPhone 6S (S8000) 113 + - const: apple,s8000 114 + - const: apple,arm-platform 115 + 116 + - description: Apple TSMC A9 SoC based platforms 117 + items: 118 + - enum: 119 + - apple,j71t # iPad 5 (Wi-Fi) (S8003) 120 + - apple,j72t # iPad 5 (Cellular) (S8003) 121 + - apple,n66m # iPhone 6s Plus (S8003) 122 + - apple,n69 # iPhone SE (S8003) 123 + - apple,n71m # iPhone 6S (S8003) 124 + - const: apple,s8003 125 + - const: apple,arm-platform 126 + 127 + - description: Apple A9X SoC based platforms 128 + items: 129 + - enum: 130 + - apple,j127 # iPad Pro (9.7-inch) (Wi-Fi) 131 + - apple,j128 # iPad Pro (9.7-inch) (Cellular) 132 + - apple,j98a # iPad Pro (12.9-inch) (Wi-Fi) 133 + - apple,j99a # iPad Pro (12.9-inch) (Cellular) 134 + - const: apple,s8001 135 + - const: apple,arm-platform 136 + 137 + - description: Apple A10 SoC based platforms 138 + items: 139 + - enum: 140 + - apple,d10 # iPhone 7 (Qualcomm) 141 + - apple,d11 # iPhone 7 (Intel) 142 + - apple,d101 # iPhone 7 Plus (Qualcomm) 143 + - apple,d111 # iPhone 7 Plus (Intel) 144 + - apple,j71b # iPad 6 (Wi-Fi) 145 + - apple,j72b # iPad 6 (Cellular) 146 + - apple,j171 # iPad 7 (Wi-Fi) 147 + - apple,j172 # iPad 7 (Cellular) 148 + - apple,n112 # iPod touch 7 149 + - const: apple,t8010 150 + - const: apple,arm-platform 151 + 152 + - description: Apple A10X SoC based platforms 153 + items: 154 + - enum: 155 + - apple,j105a # Apple TV 4K (1st Generation) 156 + - apple,j120 # iPad Pro 2 (12.9-inch) (Wi-Fi) 157 + - apple,j121 # iPad Pro 2 (12.9-inch) (Cellular) 158 + - apple,j207 # iPad Pro 2 (10.5-inch) (Wi-Fi) 159 + - apple,j208 # iPad Pro 2 (10.5-inch) (Cellular) 160 + - const: apple,t8011 161 + - const: apple,arm-platform 162 + 163 + - description: Apple A11 SoC based platforms 164 + items: 165 + - enum: 166 + - apple,d20 # iPhone 8 (Global) 167 + - apple,d21 # iPhone 8 Plus (Global) 168 + - apple,d22 # iPhone X (Global) 169 + - apple,d201 # iPhone 8 (GSM) 170 + - apple,d211 # iPhone 8 Plus (GSM) 171 + - apple,d221 # iPhone X (GSM) 172 + - const: apple,t8015 173 + - const: apple,arm-platform 174 + 119 175 - description: Apple M1 SoC based platforms 120 176 items: 121 177 - enum:
+7 -1
Documentation/devicetree/bindings/arm/cpus.yaml
··· 87 87 enum: 88 88 - apple,avalanche 89 89 - apple,blizzard 90 - - apple,icestorm 90 + - apple,cyclone 91 91 - apple,firestorm 92 + - apple,hurricane-zephyr 93 + - apple,icestorm 94 + - apple,mistral 95 + - apple,monsoon 96 + - apple,twister 97 + - apple,typhoon 92 98 - arm,arm710t 93 99 - arm,arm720t 94 100 - arm,arm740t
+5
Documentation/devicetree/bindings/pinctrl/apple,pinctrl.yaml
··· 18 18 compatible: 19 19 items: 20 20 - enum: 21 + - apple,s5l8960x-pinctrl 22 + - apple,t7000-pinctrl 23 + - apple,s8000-pinctrl 24 + - apple,t8010-pinctrl 25 + - apple,t8015-pinctrl 21 26 - apple,t8103-pinctrl 22 27 - apple,t8112-pinctrl 23 28 - apple,t6000-pinctrl
+5
Documentation/devicetree/bindings/watchdog/apple,wdt.yaml
··· 16 16 compatible: 17 17 items: 18 18 - enum: 19 + - apple,s5l8960x-wdt 20 + - apple,t7000-wdt 21 + - apple,s8000-wdt 22 + - apple,t8010-wdt 23 + - apple,t8015-wdt 19 24 - apple,t8103-wdt 20 25 - apple,t8112-wdt 21 26 - apple,t6000-wdt
+2 -2
arch/arm64/Kconfig.platforms
··· 37 37 bool "Apple Silicon SoC family" 38 38 select APPLE_AIC 39 39 help 40 - This enables support for Apple's in-house ARM SoC family, starting 41 - with the Apple M1. 40 + This enables support for Apple's in-house ARM SoC family, such 41 + as the Apple M1. 42 42 43 43 menuconfig ARCH_BCM 44 44 bool "Broadcom SoC Support"
+53
arch/arm64/boot/dts/apple/Makefile
··· 1 1 # SPDX-License-Identifier: GPL-2.0 2 + dtb-$(CONFIG_ARCH_APPLE) += s5l8960x-j71.dtb 3 + dtb-$(CONFIG_ARCH_APPLE) += s5l8960x-j73.dtb 4 + dtb-$(CONFIG_ARCH_APPLE) += s5l8960x-j85m.dtb 5 + dtb-$(CONFIG_ARCH_APPLE) += s5l8960x-j86m.dtb 6 + dtb-$(CONFIG_ARCH_APPLE) += s5l8960x-j87m.dtb 7 + dtb-$(CONFIG_ARCH_APPLE) += s5l8960x-n53.dtb 8 + dtb-$(CONFIG_ARCH_APPLE) += s5l8960x-j72.dtb 9 + dtb-$(CONFIG_ARCH_APPLE) += s5l8960x-j85.dtb 10 + dtb-$(CONFIG_ARCH_APPLE) += s5l8960x-j86.dtb 11 + dtb-$(CONFIG_ARCH_APPLE) += s5l8960x-j87.dtb 12 + dtb-$(CONFIG_ARCH_APPLE) += s5l8960x-n51.dtb 13 + dtb-$(CONFIG_ARCH_APPLE) += t7000-j42d.dtb 14 + dtb-$(CONFIG_ARCH_APPLE) += t7000-j96.dtb 15 + dtb-$(CONFIG_ARCH_APPLE) += t7000-j97.dtb 16 + dtb-$(CONFIG_ARCH_APPLE) += t7000-n102.dtb 17 + dtb-$(CONFIG_ARCH_APPLE) += t7000-n56.dtb 18 + dtb-$(CONFIG_ARCH_APPLE) += t7000-n61.dtb 19 + dtb-$(CONFIG_ARCH_APPLE) += t7001-j81.dtb 20 + dtb-$(CONFIG_ARCH_APPLE) += t7001-j82.dtb 21 + dtb-$(CONFIG_ARCH_APPLE) += s8000-j71s.dtb 22 + dtb-$(CONFIG_ARCH_APPLE) += s8000-j72s.dtb 23 + dtb-$(CONFIG_ARCH_APPLE) += s8000-n66.dtb 24 + dtb-$(CONFIG_ARCH_APPLE) += s8000-n69u.dtb 25 + dtb-$(CONFIG_ARCH_APPLE) += s8000-n71.dtb 26 + dtb-$(CONFIG_ARCH_APPLE) += s8003-j71t.dtb 27 + dtb-$(CONFIG_ARCH_APPLE) += s8003-j72t.dtb 28 + dtb-$(CONFIG_ARCH_APPLE) += s8003-n66m.dtb 29 + dtb-$(CONFIG_ARCH_APPLE) += s8003-n69.dtb 30 + dtb-$(CONFIG_ARCH_APPLE) += s8003-n71m.dtb 31 + dtb-$(CONFIG_ARCH_APPLE) += s8001-j127.dtb 32 + dtb-$(CONFIG_ARCH_APPLE) += s8001-j128.dtb 33 + dtb-$(CONFIG_ARCH_APPLE) += s8001-j98a.dtb 34 + dtb-$(CONFIG_ARCH_APPLE) += s8001-j99a.dtb 35 + dtb-$(CONFIG_ARCH_APPLE) += t8010-d101.dtb 36 + dtb-$(CONFIG_ARCH_APPLE) += t8010-d10.dtb 37 + dtb-$(CONFIG_ARCH_APPLE) += t8010-d111.dtb 38 + dtb-$(CONFIG_ARCH_APPLE) += t8010-d11.dtb 39 + dtb-$(CONFIG_ARCH_APPLE) += t8010-j171.dtb 40 + dtb-$(CONFIG_ARCH_APPLE) += t8010-j172.dtb 41 + dtb-$(CONFIG_ARCH_APPLE) += t8010-j71b.dtb 42 + dtb-$(CONFIG_ARCH_APPLE) += t8010-j72b.dtb 43 + dtb-$(CONFIG_ARCH_APPLE) += t8010-n112.dtb 44 + dtb-$(CONFIG_ARCH_APPLE) += t8011-j105a.dtb 45 + dtb-$(CONFIG_ARCH_APPLE) += t8011-j120.dtb 46 + dtb-$(CONFIG_ARCH_APPLE) += t8011-j121.dtb 47 + dtb-$(CONFIG_ARCH_APPLE) += t8011-j207.dtb 48 + dtb-$(CONFIG_ARCH_APPLE) += t8011-j208.dtb 49 + dtb-$(CONFIG_ARCH_APPLE) += t8015-d201.dtb 50 + dtb-$(CONFIG_ARCH_APPLE) += t8015-d20.dtb 51 + dtb-$(CONFIG_ARCH_APPLE) += t8015-d211.dtb 52 + dtb-$(CONFIG_ARCH_APPLE) += t8015-d21.dtb 53 + dtb-$(CONFIG_ARCH_APPLE) += t8015-d221.dtb 54 + dtb-$(CONFIG_ARCH_APPLE) += t8015-d22.dtb 2 55 dtb-$(CONFIG_ARCH_APPLE) += t8103-j274.dtb 3 56 dtb-$(CONFIG_ARCH_APPLE) += t8103-j293.dtb 4 57 dtb-$(CONFIG_ARCH_APPLE) += t8103-j313.dtb
+51
arch/arm64/boot/dts/apple/s5l8960x-5s.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPhone 5s common device tree 4 + * Based on A7 (APL0698), up to 1.3GHz 5 + * 6 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 7 + */ 8 + 9 + #include "s5l8960x.dtsi" 10 + #include "s5l8960x-common.dtsi" 11 + #include <dt-bindings/input/input.h> 12 + 13 + / { 14 + chassis-type = "handset"; 15 + 16 + gpio-keys { 17 + compatible = "gpio-keys"; 18 + 19 + button-home { 20 + label = "Home Button"; 21 + gpios = <&pinctrl 2 GPIO_ACTIVE_LOW>; 22 + linux,code = <KEY_HOMEPAGE>; 23 + wakeup-source; 24 + }; 25 + 26 + button-power { 27 + label = "Power Button"; 28 + gpios = <&pinctrl 3 GPIO_ACTIVE_LOW>; 29 + linux,code = <KEY_POWER>; 30 + wakeup-source; 31 + }; 32 + 33 + button-voldown { 34 + label = "Volume Down"; 35 + gpios = <&pinctrl 5 GPIO_ACTIVE_LOW>; 36 + linux,code = <KEY_VOLUMEDOWN>; 37 + }; 38 + 39 + button-volup { 40 + label = "Volume Up"; 41 + gpios = <&pinctrl 4 GPIO_ACTIVE_LOW>; 42 + linux,code = <KEY_VOLUMEUP>; 43 + }; 44 + 45 + switch-mute { 46 + label = "Mute Switch"; 47 + gpios = <&pinctrl 16 GPIO_ACTIVE_LOW>; 48 + linux,code = <KEY_MUTE>; 49 + }; 50 + }; 51 + };
+51
arch/arm64/boot/dts/apple/s5l8960x-air1.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPad Air common device tree 4 + * Based on A7 (APL5698), up to 1.4GHz 5 + * 6 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 7 + */ 8 + 9 + #include "s5l8960x.dtsi" 10 + #include "s5l8960x-common.dtsi" 11 + #include <dt-bindings/input/input.h> 12 + 13 + / { 14 + chassis-type = "tablet"; 15 + 16 + gpio-keys { 17 + compatible = "gpio-keys"; 18 + 19 + button-home { 20 + label = "Home Button"; 21 + gpios = <&pinctrl 2 GPIO_ACTIVE_LOW>; 22 + linux,code = <KEY_HOMEPAGE>; 23 + wakeup-source; 24 + }; 25 + 26 + button-power { 27 + label = "Power Button"; 28 + gpios = <&pinctrl 3 GPIO_ACTIVE_LOW>; 29 + linux,code = <KEY_POWER>; 30 + wakeup-source; 31 + }; 32 + 33 + button-voldown { 34 + label = "Volume Down"; 35 + gpios = <&pinctrl 4 GPIO_ACTIVE_LOW>; 36 + linux,code = <KEY_VOLUMEDOWN>; 37 + }; 38 + 39 + button-volup { 40 + label = "Volume Up"; 41 + gpios = <&pinctrl 5 GPIO_ACTIVE_LOW>; 42 + linux,code = <KEY_VOLUMEUP>; 43 + }; 44 + 45 + switch-mute { 46 + label = "Mute Switch"; 47 + gpios = <&pinctrl 110 GPIO_ACTIVE_LOW>; 48 + linux,code = <KEY_MUTE>; 49 + }; 50 + }; 51 + };
+48
arch/arm64/boot/dts/apple/s5l8960x-common.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPhone 5s, iPad mini 2/3, iPad Air 4 + * 5 + * This file contains parts common to all Apple A7 devices. 6 + * 7 + * target-type: J71, J72, J73, J85, J85m, J86, J86m, J87, J87m, N51, N53 8 + * 9 + * Copyright (c) 2024, Nick Chan <towinchenmi@gmail.com> 10 + */ 11 + 12 + / { 13 + aliases { 14 + serial0 = &serial0; 15 + }; 16 + 17 + chosen { 18 + #address-cells = <2>; 19 + #size-cells = <2>; 20 + ranges; 21 + 22 + stdout-path = "serial0"; 23 + 24 + framebuffer0: framebuffer@0 { 25 + compatible = "apple,simple-framebuffer", "simple-framebuffer"; 26 + reg = <0 0 0 0>; /* To be filled by loader */ 27 + /* Format properties will be added by loader */ 28 + status = "disabled"; 29 + }; 30 + }; 31 + 32 + memory@800000000 { 33 + device_type = "memory"; 34 + reg = <0x8 0 0 0>; /* To be filled by loader */ 35 + }; 36 + 37 + reserved-memory { 38 + #address-cells = <2>; 39 + #size-cells = <2>; 40 + ranges; 41 + 42 + /* To be filled by loader */ 43 + }; 44 + }; 45 + 46 + &serial0 { 47 + status = "okay"; 48 + };
+14
arch/arm64/boot/dts/apple/s5l8960x-j71.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPad Air (Wi-Fi), J71, iPad4,1 (A1474) 4 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "s5l8960x-air1.dtsi" 10 + 11 + / { 12 + compatible = "apple,j71", "apple,s5l8960x", "apple,arm-platform"; 13 + model = "Apple iPad Air (Wi-Fi)"; 14 + };
+14
arch/arm64/boot/dts/apple/s5l8960x-j72.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPad Air (Cellular), J72, iPad4,2 (A1475) 4 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "s5l8960x-air1.dtsi" 10 + 11 + / { 12 + compatible = "apple,j72", "apple,s5l8960x", "apple,arm-platform"; 13 + model = "Apple iPad Air (Cellular)"; 14 + };
+14
arch/arm64/boot/dts/apple/s5l8960x-j73.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPad Air (Cellular, China), J73, iPad4,2 (A1476) 4 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "s5l8960x-air1.dtsi" 10 + 11 + / { 12 + compatible = "apple,j73", "apple,s5l8960x", "apple,arm-platform"; 13 + model = "Apple iPad Air (Cellular, China)"; 14 + };
+14
arch/arm64/boot/dts/apple/s5l8960x-j85.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPad mini 2 (Wi-Fi), J85, iPad4,4 (A1489) 4 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "s5l8960x-mini2.dtsi" 10 + 11 + / { 12 + compatible = "apple,j85", "apple,s5l8960x", "apple,arm-platform"; 13 + model = "Apple iPad mini 2 (Wi-Fi)"; 14 + };
+14
arch/arm64/boot/dts/apple/s5l8960x-j85m.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPad mini 3 (Wi-Fi), J85m, iPad4,7 (A1599) 4 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "s5l8960x-mini3.dtsi" 10 + 11 + / { 12 + compatible = "apple,j85m", "apple,s5l8960x", "apple,arm-platform"; 13 + model = "Apple iPad mini 3 (Wi-Fi)"; 14 + };
+14
arch/arm64/boot/dts/apple/s5l8960x-j86.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPad mini 2 (Cellular), J86, iPad4,5 (A1490) 4 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "s5l8960x-mini2.dtsi" 10 + 11 + / { 12 + compatible = "apple,j86", "apple,s5l8960x", "apple,arm-platform"; 13 + model = "Apple iPad mini 2 (Cellular)"; 14 + };
+14
arch/arm64/boot/dts/apple/s5l8960x-j86m.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPad mini 3 (Cellular), J86m, iPad4,8 (A1600) 4 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "s5l8960x-mini3.dtsi" 10 + 11 + / { 12 + compatible = "apple,j86m", "apple,s5l8960x", "apple,arm-platform"; 13 + model = "Apple iPad mini 3 (Cellular)"; 14 + };
+14
arch/arm64/boot/dts/apple/s5l8960x-j87.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPad mini 2 (Cellular, China), J87, iPad4,6 (A1491) 4 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "s5l8960x-mini2.dtsi" 10 + 11 + / { 12 + compatible = "apple,j87", "apple,s5l8960x", "apple,arm-platform"; 13 + model = "Apple iPad mini 2 (Cellular, China)"; 14 + };
+14
arch/arm64/boot/dts/apple/s5l8960x-j87m.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPad mini 3 (Cellular, China), J87m, iPad4,9 (A1601) 4 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "s5l8960x-mini3.dtsi" 10 + 11 + / { 12 + compatible = "apple,j87m", "apple,s5l8960x", "apple,arm-platform"; 13 + model = "Apple iPad mini 3 (Cellular, China)"; 14 + };
+51
arch/arm64/boot/dts/apple/s5l8960x-mini2.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPad mini 2 common device tree 4 + * Based on A7 (APL0698), up to 1.3GHz 5 + * 6 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 7 + */ 8 + 9 + #include "s5l8960x.dtsi" 10 + #include "s5l8960x-common.dtsi" 11 + #include <dt-bindings/input/input.h> 12 + 13 + / { 14 + chassis-type = "tablet"; 15 + 16 + gpio-keys { 17 + compatible = "gpio-keys"; 18 + 19 + button-home { 20 + label = "Home Button"; 21 + gpios = <&pinctrl 2 GPIO_ACTIVE_LOW>; 22 + linux,code = <KEY_HOMEPAGE>; 23 + wakeup-source; 24 + }; 25 + 26 + button-power { 27 + label = "Power Button"; 28 + gpios = <&pinctrl 3 GPIO_ACTIVE_LOW>; 29 + linux,code = <KEY_POWER>; 30 + wakeup-source; 31 + }; 32 + 33 + button-voldown { 34 + label = "Volume Down"; 35 + gpios = <&pinctrl 5 GPIO_ACTIVE_LOW>; 36 + linux,code = <KEY_VOLUMEDOWN>; 37 + }; 38 + 39 + button-volup { 40 + label = "Volume Up"; 41 + gpios = <&pinctrl 4 GPIO_ACTIVE_LOW>; 42 + linux,code = <KEY_VOLUMEUP>; 43 + }; 44 + 45 + switch-mute { 46 + label = "Mute Switch"; 47 + gpios = <&pinctrl 6 GPIO_ACTIVE_LOW>; 48 + linux,code = <KEY_MUTE>; 49 + }; 50 + }; 51 + };
+14
arch/arm64/boot/dts/apple/s5l8960x-mini3.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPad mini 3 common device tree 4 + * Based on A7 (APL0698), up to 1.3GHz 5 + * 6 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 7 + */ 8 + 9 + /* 10 + * The Mini 3 seems to be only an iteration over the Mini 2 with some 11 + * small changes, like the introduction of Touch ID, hence there is little 12 + * to no differentiation between these 2 for now. 13 + */ 14 + #include "s5l8960x-mini2.dtsi"
+14
arch/arm64/boot/dts/apple/s5l8960x-n51.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPhone 5s (GSM), N51, iPhone6,1 (A1453/A1533) 4 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "s5l8960x-5s.dtsi" 10 + 11 + / { 12 + compatible = "apple,n51", "apple,s5l8960x", "apple,arm-platform"; 13 + model = "Apple iPhone 5s (GSM)"; 14 + };
+14
arch/arm64/boot/dts/apple/s5l8960x-n53.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPhone 5s (LTE), N53, iPhone6,2 (A1457/A1518/A1528/A1530) 4 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "s5l8960x-5s.dtsi" 10 + 11 + / { 12 + compatible = "apple,n53", "apple,s5l8960x", "apple,arm-platform"; 13 + model = "Apple iPhone 5s (LTE)"; 14 + };
+113
arch/arm64/boot/dts/apple/s5l8960x.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple S5L8960X "A7" SoC 4 + * 5 + * Other Names: H6, "Alcatraz" 6 + * 7 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 8 + * Based on Asahi Linux's M1 (t8103.dtsi) and Corellium's A10 efforts. 9 + */ 10 + 11 + #include <dt-bindings/gpio/gpio.h> 12 + #include <dt-bindings/interrupt-controller/apple-aic.h> 13 + #include <dt-bindings/interrupt-controller/irq.h> 14 + #include <dt-bindings/pinctrl/apple.h> 15 + 16 + / { 17 + interrupt-parent = <&aic>; 18 + #address-cells = <2>; 19 + #size-cells = <2>; 20 + 21 + clkref: clock-ref { 22 + compatible = "fixed-clock"; 23 + #clock-cells = <0>; 24 + clock-frequency = <24000000>; 25 + clock-output-names = "clkref"; 26 + }; 27 + 28 + cpus { 29 + #address-cells = <2>; 30 + #size-cells = <0>; 31 + 32 + cpu0: cpu@0 { 33 + compatible = "apple,cyclone"; 34 + reg = <0x0 0x0>; 35 + cpu-release-addr = <0 0>; /* To be filled by loader */ 36 + enable-method = "spin-table"; 37 + device_type = "cpu"; 38 + }; 39 + 40 + cpu1: cpu@1 { 41 + compatible = "apple,cyclone"; 42 + reg = <0x0 0x1>; 43 + cpu-release-addr = <0 0>; /* To be filled by loader */ 44 + enable-method = "spin-table"; 45 + device_type = "cpu"; 46 + }; 47 + }; 48 + 49 + soc { 50 + compatible = "simple-bus"; 51 + #address-cells = <2>; 52 + #size-cells = <2>; 53 + nonposted-mmio; 54 + ranges; 55 + 56 + serial0: serial@20a0a0000 { 57 + compatible = "apple,s5l-uart"; 58 + reg = <0x2 0x0a0a0000 0x0 0x4000>; 59 + reg-io-width = <4>; 60 + interrupt-parent = <&aic>; 61 + interrupts = <AIC_IRQ 140 IRQ_TYPE_LEVEL_HIGH>; 62 + /* Use the bootloader-enabled clocks for now. */ 63 + clocks = <&clkref>, <&clkref>; 64 + clock-names = "uart", "clk_uart_baud0"; 65 + status = "disabled"; 66 + }; 67 + 68 + wdt: watchdog@20e027000 { 69 + compatible = "apple,s5l8960x-wdt", "apple,wdt"; 70 + reg = <0x2 0x0e027000 0x0 0x1000>; 71 + clocks = <&clkref>; 72 + interrupt-parent = <&aic>; 73 + interrupts = <AIC_IRQ 4 IRQ_TYPE_LEVEL_HIGH>; 74 + }; 75 + 76 + aic: interrupt-controller@20e100000 { 77 + compatible = "apple,s5l8960x-aic", "apple,aic"; 78 + reg = <0x2 0x0e100000 0x0 0x100000>; 79 + #interrupt-cells = <3>; 80 + interrupt-controller; 81 + }; 82 + 83 + pinctrl: pinctrl@20e300000 { 84 + compatible = "apple,s5l8960x-pinctrl", "apple,pinctrl"; 85 + reg = <0x2 0x0e300000 0x0 0x100000>; 86 + 87 + gpio-controller; 88 + #gpio-cells = <2>; 89 + gpio-ranges = <&pinctrl 0 0 200>; 90 + apple,npins = <200>; 91 + 92 + interrupt-controller; 93 + #interrupt-cells = <2>; 94 + interrupt-parent = <&aic>; 95 + interrupts = <AIC_IRQ 108 IRQ_TYPE_LEVEL_HIGH>, 96 + <AIC_IRQ 109 IRQ_TYPE_LEVEL_HIGH>, 97 + <AIC_IRQ 110 IRQ_TYPE_LEVEL_HIGH>, 98 + <AIC_IRQ 111 IRQ_TYPE_LEVEL_HIGH>, 99 + <AIC_IRQ 112 IRQ_TYPE_LEVEL_HIGH>, 100 + <AIC_IRQ 113 IRQ_TYPE_LEVEL_HIGH>, 101 + <AIC_IRQ 114 IRQ_TYPE_LEVEL_HIGH>; 102 + }; 103 + }; 104 + 105 + timer { 106 + compatible = "arm,armv8-timer"; 107 + interrupt-parent = <&aic>; 108 + interrupt-names = "phys", "virt"; 109 + /* Note that A7 doesn't actually have a hypervisor (EL2 is not implemented). */ 110 + interrupts = <AIC_FIQ AIC_TMR_GUEST_PHYS IRQ_TYPE_LEVEL_HIGH>, 111 + <AIC_FIQ AIC_TMR_GUEST_VIRT IRQ_TYPE_LEVEL_HIGH>; 112 + }; 113 + };
+48
arch/arm64/boot/dts/apple/s800-0-3-common.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPhone 6s, iPhone 6s Plus, iPad 5, iPhone SE 4 + * 5 + * This file contains parts common to all Apple A9 devices. 6 + * 7 + * target-type: J71s, J72s, N66, N69u, N71, J71t, J72t, N66m, N69, N71m 8 + * 9 + * Copyright (c) 2024, Nick Chan <towinchenmi@gmail.com> 10 + */ 11 + 12 + / { 13 + aliases { 14 + serial0 = &serial0; 15 + }; 16 + 17 + chosen { 18 + #address-cells = <2>; 19 + #size-cells = <2>; 20 + ranges; 21 + 22 + stdout-path = "serial0"; 23 + 24 + framebuffer0: framebuffer@0 { 25 + compatible = "apple,simple-framebuffer", "simple-framebuffer"; 26 + reg = <0 0 0 0>; /* To be filled by loader */ 27 + /* Format properties will be added by loader */ 28 + status = "disabled"; 29 + }; 30 + }; 31 + 32 + memory@800000000 { 33 + device_type = "memory"; 34 + reg = <0x8 0 0 0>; /* To be filled by loader */ 35 + }; 36 + 37 + reserved-memory { 38 + #address-cells = <2>; 39 + #size-cells = <2>; 40 + ranges; 41 + 42 + /* To be filled by loader */ 43 + }; 44 + }; 45 + 46 + &serial0 { 47 + status = "okay"; 48 + };
+15
arch/arm64/boot/dts/apple/s8000-j71s.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPad 5 (Wi-Fi) (Samsung), J71s, iPad6,11 (A1822) 4 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "s8000.dtsi" 10 + #include "s800x-ipad5.dtsi" 11 + 12 + / { 13 + compatible = "apple,j71s", "apple,s8000", "apple,arm-platform"; 14 + model = "Apple iPad 5 (Wi-Fi) (Samsung)"; 15 + };
+15
arch/arm64/boot/dts/apple/s8000-j72s.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPad 5 (Cellular) (Samsung), J72s, iPad6,12 (A1823) 4 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "s8000.dtsi" 10 + #include "s800x-ipad5.dtsi" 11 + 12 + / { 13 + compatible = "apple,j72s", "apple,s8000", "apple,arm-platform"; 14 + model = "Apple iPad 5 (Cellular) (Samsung)"; 15 + };
+15
arch/arm64/boot/dts/apple/s8000-n66.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPhone 6s Plus (Samsung), N66, iPhone8,2 (A1634/A1687/A1690/A1699) 4 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "s8000.dtsi" 10 + #include "s800x-6s.dtsi" 11 + 12 + / { 13 + compatible = "apple,n66", "apple,s8000", "apple,arm-platform"; 14 + model = "Apple iPhone 6s Plus (Samsung)"; 15 + };
+15
arch/arm64/boot/dts/apple/s8000-n69u.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPhone SE (Samsung), N69u, iPhone8,4 (A1662/A1723/A1724) 4 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "s8000.dtsi" 10 + #include "s800x-se.dtsi" 11 + 12 + / { 13 + compatible = "apple,n69u", "apple,s8000", "apple,arm-platform"; 14 + model = "Apple iPhone SE (Samsung)"; 15 + };
+15
arch/arm64/boot/dts/apple/s8000-n71.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPhone 6s (Samsung), N71, iPhone8,1 (A1633/A1688/A1691/A1700) 4 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "s8000.dtsi" 10 + #include "s800x-6s.dtsi" 11 + 12 + / { 13 + compatible = "apple,n71", "apple,s8000", "apple,arm-platform"; 14 + model = "Apple iPhone 6s (Samsung)"; 15 + };
+144
arch/arm64/boot/dts/apple/s8000.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple S8000 "A9" (Samsung) SoC 4 + * 5 + * Other names: H8P, "Maui" 6 + * 7 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 8 + */ 9 + 10 + #include <dt-bindings/gpio/gpio.h> 11 + #include <dt-bindings/interrupt-controller/apple-aic.h> 12 + #include <dt-bindings/interrupt-controller/irq.h> 13 + #include <dt-bindings/pinctrl/apple.h> 14 + 15 + / { 16 + interrupt-parent = <&aic>; 17 + #address-cells = <2>; 18 + #size-cells = <2>; 19 + 20 + clkref: clock-ref { 21 + compatible = "fixed-clock"; 22 + #clock-cells = <0>; 23 + clock-frequency = <24000000>; 24 + clock-output-names = "clkref"; 25 + }; 26 + 27 + cpus { 28 + #address-cells = <2>; 29 + #size-cells = <0>; 30 + 31 + cpu0: cpu@0 { 32 + compatible = "apple,twister"; 33 + reg = <0x0 0x0>; 34 + cpu-release-addr = <0 0>; /* To be filled in by loader */ 35 + enable-method = "spin-table"; 36 + device_type = "cpu"; 37 + }; 38 + 39 + cpu1: cpu@1 { 40 + compatible = "apple,twister"; 41 + reg = <0x0 0x1>; 42 + cpu-release-addr = <0 0>; /* To be filled in by loader */ 43 + enable-method = "spin-table"; 44 + device_type = "cpu"; 45 + }; 46 + }; 47 + 48 + soc { 49 + compatible = "simple-bus"; 50 + #address-cells = <2>; 51 + #size-cells = <2>; 52 + nonposted-mmio; 53 + ranges; 54 + 55 + serial0: serial@20a0c0000 { 56 + compatible = "apple,s5l-uart"; 57 + reg = <0x2 0x0a0c0000 0x0 0x4000>; 58 + reg-io-width = <4>; 59 + interrupt-parent = <&aic>; 60 + interrupts = <AIC_IRQ 192 IRQ_TYPE_LEVEL_HIGH>; 61 + /* Use the bootloader-enabled clocks for now. */ 62 + clocks = <&clkref>, <&clkref>; 63 + clock-names = "uart", "clk_uart_baud0"; 64 + status = "disabled"; 65 + }; 66 + 67 + aic: interrupt-controller@20e100000 { 68 + compatible = "apple,s8000-aic", "apple,aic"; 69 + reg = <0x2 0x0e100000 0x0 0x100000>; 70 + #interrupt-cells = <3>; 71 + interrupt-controller; 72 + }; 73 + 74 + pinctrl_ap: pinctrl@20f100000 { 75 + compatible = "apple,s8000-pinctrl", "apple,pinctrl"; 76 + reg = <0x2 0x0f100000 0x0 0x100000>; 77 + 78 + gpio-controller; 79 + #gpio-cells = <2>; 80 + gpio-ranges = <&pinctrl_ap 0 0 208>; 81 + apple,npins = <208>; 82 + 83 + interrupt-controller; 84 + #interrupt-cells = <2>; 85 + interrupt-parent = <&aic>; 86 + interrupts = <AIC_IRQ 42 IRQ_TYPE_LEVEL_HIGH>, 87 + <AIC_IRQ 43 IRQ_TYPE_LEVEL_HIGH>, 88 + <AIC_IRQ 44 IRQ_TYPE_LEVEL_HIGH>, 89 + <AIC_IRQ 45 IRQ_TYPE_LEVEL_HIGH>, 90 + <AIC_IRQ 46 IRQ_TYPE_LEVEL_HIGH>, 91 + <AIC_IRQ 47 IRQ_TYPE_LEVEL_HIGH>, 92 + <AIC_IRQ 48 IRQ_TYPE_LEVEL_HIGH>; 93 + }; 94 + 95 + pinctrl_aop: pinctrl@2100f0000 { 96 + compatible = "apple,s8000-pinctrl", "apple,pinctrl"; 97 + reg = <0x2 0x100f0000 0x0 0x100000>; 98 + 99 + gpio-controller; 100 + #gpio-cells = <2>; 101 + gpio-ranges = <&pinctrl_aop 0 0 42>; 102 + apple,npins = <42>; 103 + 104 + interrupt-controller; 105 + #interrupt-cells = <2>; 106 + interrupt-parent = <&aic>; 107 + interrupts = <AIC_IRQ 113 IRQ_TYPE_LEVEL_HIGH>, 108 + <AIC_IRQ 114 IRQ_TYPE_LEVEL_HIGH>, 109 + <AIC_IRQ 115 IRQ_TYPE_LEVEL_HIGH>, 110 + <AIC_IRQ 116 IRQ_TYPE_LEVEL_HIGH>, 111 + <AIC_IRQ 117 IRQ_TYPE_LEVEL_HIGH>, 112 + <AIC_IRQ 118 IRQ_TYPE_LEVEL_HIGH>, 113 + <AIC_IRQ 119 IRQ_TYPE_LEVEL_HIGH>; 114 + }; 115 + 116 + wdt: watchdog@2102b0000 { 117 + compatible = "apple,s8000-wdt", "apple,wdt"; 118 + reg = <0x2 0x102b0000 0x0 0x4000>; 119 + clocks = <&clkref>; 120 + interrupt-parent = <&aic>; 121 + interrupts = <AIC_IRQ 4 IRQ_TYPE_LEVEL_HIGH>; 122 + }; 123 + }; 124 + 125 + timer { 126 + compatible = "arm,armv8-timer"; 127 + interrupt-parent = <&aic>; 128 + interrupt-names = "phys", "virt"; 129 + /* Note that A9 doesn't actually have a hypervisor (EL2 is not implemented). */ 130 + interrupts = <AIC_FIQ AIC_TMR_GUEST_PHYS IRQ_TYPE_LEVEL_HIGH>, 131 + <AIC_FIQ AIC_TMR_GUEST_VIRT IRQ_TYPE_LEVEL_HIGH>; 132 + }; 133 + }; 134 + 135 + /* 136 + * The A9 was made by two separate fabs on two different process 137 + * nodes: Samsung made the S8000 (APL0898) on 14nm and TSMC made 138 + * the S8003 (APL1022) on 16nm. While they are seemingly the same, 139 + * they do have distinct part numbers and devices using them have 140 + * distinct model names. There are currently no known differences 141 + * between these as far as Linux is concerned, but let's keep things 142 + * structured properly to make it easier to alter the behaviour of 143 + * one of the chips if need be. 144 + */
+48
arch/arm64/boot/dts/apple/s8001-common.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPad Pro (9.7-inch), iPad Pro (12.9-inch) 4 + * 5 + * This file contains parts common to all Apple A9X devices. 6 + * 7 + * target-type: J127, J128, J98a, J99a 8 + * 9 + * Copyright (c) 2024, Nick Chan <towinchenmi@gmail.com> 10 + */ 11 + 12 + / { 13 + aliases { 14 + serial0 = &serial0; 15 + }; 16 + 17 + chosen { 18 + #address-cells = <2>; 19 + #size-cells = <2>; 20 + ranges; 21 + 22 + stdout-path = "serial0"; 23 + 24 + framebuffer0: framebuffer@0 { 25 + compatible = "apple,simple-framebuffer", "simple-framebuffer"; 26 + reg = <0 0 0 0>; /* To be filled by loader */ 27 + /* Format properties will be added by loader */ 28 + status = "disabled"; 29 + }; 30 + }; 31 + 32 + memory@800000000 { 33 + device_type = "memory"; 34 + reg = <0x8 0 0 0>; /* To be filled by loader */ 35 + }; 36 + 37 + reserved-memory { 38 + #address-cells = <2>; 39 + #size-cells = <2>; 40 + ranges; 41 + 42 + /* To be filled by loader */ 43 + }; 44 + }; 45 + 46 + &serial0 { 47 + status = "okay"; 48 + };
+14
arch/arm64/boot/dts/apple/s8001-j127.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPad Pro (9.7-inch) (Wi-Fi), J127, iPad6,3 (A1673) 4 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "s8001-pro.dtsi" 10 + 11 + / { 12 + compatible = "apple,j127", "apple,s8001", "apple,arm-platform"; 13 + model = "Apple iPad Pro (9.7-inch) (Wi-Fi)"; 14 + };
+14
arch/arm64/boot/dts/apple/s8001-j128.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPad Pro (9.7-inch) (Cellular), J128, iPad6,4 (A1674/A1675) 4 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "s8001-pro.dtsi" 10 + 11 + / { 12 + compatible = "apple,j128", "apple,s8001", "apple,arm-platform"; 13 + model = "Apple iPad Pro (9.7-inch) (Cellular)"; 14 + };
+14
arch/arm64/boot/dts/apple/s8001-j98a.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPad Pro (12.9-inch) (Wi-Fi), J98a, iPad6,7 (A1584) 4 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "s8001-pro.dtsi" 10 + 11 + / { 12 + compatible = "apple,j98a", "apple,s8001", "apple,arm-platform"; 13 + model = "Apple iPad Pro (12.9-inch) (Wi-Fi)"; 14 + };
+14
arch/arm64/boot/dts/apple/s8001-j99a.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPad Pro (12.9-inch) (Cellular), J99a, iPad6,8 (A1652) 4 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "s8001-pro.dtsi" 10 + 11 + / { 12 + compatible = "apple,j99a", "apple,s8001", "apple,arm-platform"; 13 + model = "Apple iPad Pro (12.9-inch) (Cellular)"; 14 + };
+44
arch/arm64/boot/dts/apple/s8001-pro.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPad Pro (1st generation) common device tree 4 + * 5 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 6 + */ 7 + 8 + #include "s8001.dtsi" 9 + #include "s8001-common.dtsi" 10 + #include <dt-bindings/input/input.h> 11 + 12 + / { 13 + chassis-type = "tablet"; 14 + 15 + gpio-keys { 16 + compatible = "gpio-keys"; 17 + 18 + button-home { 19 + label = "Home Button"; 20 + gpios = <&pinctrl_ap 122 GPIO_ACTIVE_LOW>; 21 + linux,code = <KEY_HOMEPAGE>; 22 + wakeup-source; 23 + }; 24 + 25 + button-power { 26 + label = "Power Button"; 27 + gpios = <&pinctrl_ap 123 GPIO_ACTIVE_LOW>; 28 + linux,code = <KEY_POWER>; 29 + wakeup-source; 30 + }; 31 + 32 + button-voldown { 33 + label = "Volume Down"; 34 + gpios = <&pinctrl_ap 15 GPIO_ACTIVE_LOW>; 35 + linux,code = <KEY_VOLUMEDOWN>; 36 + }; 37 + 38 + button-volup { 39 + label = "Volume Up"; 40 + gpios = <&pinctrl_ap 12 GPIO_ACTIVE_LOW>; 41 + linux,code = <KEY_VOLUMEUP>; 42 + }; 43 + }; 44 + };
+133
arch/arm64/boot/dts/apple/s8001.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple S8001 "A9X" SoC 4 + * 5 + * Other names: H8G, "Elba" 6 + * 7 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 8 + */ 9 + 10 + #include <dt-bindings/gpio/gpio.h> 11 + #include <dt-bindings/interrupt-controller/apple-aic.h> 12 + #include <dt-bindings/interrupt-controller/irq.h> 13 + #include <dt-bindings/pinctrl/apple.h> 14 + 15 + / { 16 + interrupt-parent = <&aic>; 17 + #address-cells = <2>; 18 + #size-cells = <2>; 19 + 20 + clkref: clock-ref { 21 + compatible = "fixed-clock"; 22 + #clock-cells = <0>; 23 + clock-frequency = <24000000>; 24 + clock-output-names = "clkref"; 25 + }; 26 + 27 + cpus { 28 + #address-cells = <2>; 29 + #size-cells = <0>; 30 + 31 + cpu0: cpu@0 { 32 + compatible = "apple,twister"; 33 + reg = <0x0 0x0>; 34 + cpu-release-addr = <0 0>; /* To be filled in by loader */ 35 + enable-method = "spin-table"; 36 + device_type = "cpu"; 37 + }; 38 + 39 + cpu1: cpu@1 { 40 + compatible = "apple,twister"; 41 + reg = <0x0 0x1>; 42 + cpu-release-addr = <0 0>; /* To be filled in by loader */ 43 + enable-method = "spin-table"; 44 + device_type = "cpu"; 45 + }; 46 + }; 47 + 48 + soc { 49 + compatible = "simple-bus"; 50 + #address-cells = <2>; 51 + #size-cells = <2>; 52 + nonposted-mmio; 53 + ranges; 54 + 55 + serial0: serial@20a0c0000 { 56 + compatible = "apple,s5l-uart"; 57 + reg = <0x2 0x0a0c0000 0x0 0x4000>; 58 + reg-io-width = <4>; 59 + interrupt-parent = <&aic>; 60 + interrupts = <AIC_IRQ 218 IRQ_TYPE_LEVEL_HIGH>; 61 + /* Use the bootloader-enabled clocks for now. */ 62 + clocks = <&clkref>, <&clkref>; 63 + clock-names = "uart", "clk_uart_baud0"; 64 + status = "disabled"; 65 + }; 66 + 67 + aic: interrupt-controller@20e100000 { 68 + compatible = "apple,s8000-aic", "apple,aic"; 69 + reg = <0x2 0x0e100000 0x0 0x100000>; 70 + #interrupt-cells = <3>; 71 + interrupt-controller; 72 + }; 73 + 74 + pinctrl_ap: pinctrl@20f100000 { 75 + compatible = "apple,s8000-pinctrl", "apple,pinctrl"; 76 + reg = <0x2 0x0f100000 0x0 0x100000>; 77 + 78 + gpio-controller; 79 + #gpio-cells = <2>; 80 + gpio-ranges = <&pinctrl_ap 0 0 219>; 81 + apple,npins = <219>; 82 + 83 + interrupt-controller; 84 + #interrupt-cells = <2>; 85 + interrupt-parent = <&aic>; 86 + interrupts = <AIC_IRQ 42 IRQ_TYPE_LEVEL_HIGH>, 87 + <AIC_IRQ 43 IRQ_TYPE_LEVEL_HIGH>, 88 + <AIC_IRQ 44 IRQ_TYPE_LEVEL_HIGH>, 89 + <AIC_IRQ 45 IRQ_TYPE_LEVEL_HIGH>, 90 + <AIC_IRQ 46 IRQ_TYPE_LEVEL_HIGH>, 91 + <AIC_IRQ 47 IRQ_TYPE_LEVEL_HIGH>, 92 + <AIC_IRQ 48 IRQ_TYPE_LEVEL_HIGH>; 93 + }; 94 + 95 + pinctrl_aop: pinctrl@2100f0000 { 96 + compatible = "apple,s8000-pinctrl", "apple,pinctrl"; 97 + reg = <0x2 0x100f0000 0x0 0x100000>; 98 + 99 + gpio-controller; 100 + #gpio-cells = <2>; 101 + gpio-ranges = <&pinctrl_aop 0 0 28>; 102 + apple,npins = <28>; 103 + 104 + interrupt-controller; 105 + #interrupt-cells = <2>; 106 + interrupt-parent = <&aic>; 107 + interrupts = <AIC_IRQ 128 IRQ_TYPE_LEVEL_HIGH>, 108 + <AIC_IRQ 129 IRQ_TYPE_LEVEL_HIGH>, 109 + <AIC_IRQ 130 IRQ_TYPE_LEVEL_HIGH>, 110 + <AIC_IRQ 131 IRQ_TYPE_LEVEL_HIGH>, 111 + <AIC_IRQ 132 IRQ_TYPE_LEVEL_HIGH>, 112 + <AIC_IRQ 133 IRQ_TYPE_LEVEL_HIGH>, 113 + <AIC_IRQ 134 IRQ_TYPE_LEVEL_HIGH>; 114 + }; 115 + 116 + wdt: watchdog@2102b0000 { 117 + compatible = "apple,s8000-wdt", "apple,wdt"; 118 + reg = <0x2 0x102b0000 0x0 0x4000>; 119 + clocks = <&clkref>; 120 + interrupt-parent = <&aic>; 121 + interrupts = <AIC_IRQ 4 IRQ_TYPE_LEVEL_HIGH>; 122 + }; 123 + }; 124 + 125 + timer { 126 + compatible = "arm,armv8-timer"; 127 + interrupt-parent = <&aic>; 128 + interrupt-names = "phys", "virt"; 129 + /* Note that A9X doesn't actually have a hypervisor (EL2 is not implemented). */ 130 + interrupts = <AIC_FIQ AIC_TMR_GUEST_PHYS IRQ_TYPE_LEVEL_HIGH>, 131 + <AIC_FIQ AIC_TMR_GUEST_VIRT IRQ_TYPE_LEVEL_HIGH>; 132 + }; 133 + };
+15
arch/arm64/boot/dts/apple/s8003-j71t.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPad 5 (Wi-Fi) (TSMC), J71t, iPad6,11 (A1822) 4 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "s8003.dtsi" 10 + #include "s800x-ipad5.dtsi" 11 + 12 + / { 13 + compatible = "apple,j71t", "apple,s8003", "apple,arm-platform"; 14 + model = "Apple iPad 5 (Wi-Fi) (TSMC)"; 15 + };
+15
arch/arm64/boot/dts/apple/s8003-j72t.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPad 5 (Cellular) (TSMC), J72t, iPad6,12 (A1823) 4 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "s8003.dtsi" 10 + #include "s800x-ipad5.dtsi" 11 + 12 + / { 13 + compatible = "apple,j72t", "apple,s8003", "apple,arm-platform"; 14 + model = "Apple iPad 5 (Cellular) (TSMC)"; 15 + };
+15
arch/arm64/boot/dts/apple/s8003-n66m.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPhone 6s Plus (TSMC), N66m, iPhone8,2 (A1634/A1687/A1690/A1699) 4 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "s8003.dtsi" 10 + #include "s800x-6s.dtsi" 11 + 12 + / { 13 + compatible = "apple,n66m", "apple,s8003", "apple,arm-platform"; 14 + model = "Apple iPhone 6s Plus (TSMC)"; 15 + };
+15
arch/arm64/boot/dts/apple/s8003-n69.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPhone SE (TSMC), N69, iPhone8,4 (A1662/A1723/A1724) 4 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "s8003.dtsi" 10 + #include "s800x-se.dtsi" 11 + 12 + / { 13 + compatible = "apple,n69", "apple,s8003", "apple,arm-platform"; 14 + model = "Apple iPhone SE (TSMC)"; 15 + };
+15
arch/arm64/boot/dts/apple/s8003-n71m.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPhone 6s (TSMC), N71m, iPhone8,1 (A1633/A1688/A1691/A1700) 4 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "s8003.dtsi" 10 + #include "s800x-6s.dtsi" 11 + 12 + / { 13 + compatible = "apple,n71m", "apple,s8003", "apple,arm-platform"; 14 + model = "Apple iPhone 6s (TSMC)"; 15 + };
+21
arch/arm64/boot/dts/apple/s8003.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple S8003 "A9" (TSMC) SoC 4 + * 5 + * Other names: H8P, "Malta" 6 + * 7 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 8 + */ 9 + 10 + #include "s8000.dtsi" 11 + 12 + /* 13 + * The A9 was made by two separate fabs on two different process 14 + * nodes: Samsung made the S8000 (APL0898) on 14nm and TSMC made 15 + * the S8003 (APL1022) on 16nm. While they are seemingly the same, 16 + * they do have distinct part numbers and devices using them have 17 + * distinct model names. There are currently no known differences 18 + * between these as far as Linux is concerned, but let's keep things 19 + * structured properly to make it easier to alter the behaviour of 20 + * one of the chips if need be. 21 + */
+49
arch/arm64/boot/dts/apple/s800x-6s.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPhone 6s / 6S Plus common device tree 4 + * 5 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 6 + */ 7 + 8 + #include "s800-0-3-common.dtsi" 9 + #include <dt-bindings/input/input.h> 10 + 11 + / { 12 + chassis-type = "handset"; 13 + 14 + gpio-keys { 15 + compatible = "gpio-keys"; 16 + 17 + button-home { 18 + label = "Home Button"; 19 + gpios = <&pinctrl_ap 96 GPIO_ACTIVE_LOW>; 20 + linux,code = <KEY_HOMEPAGE>; 21 + wakeup-source; 22 + }; 23 + 24 + button-power { 25 + label = "Power Button"; 26 + gpios = <&pinctrl_ap 97 GPIO_ACTIVE_LOW>; 27 + linux,code = <KEY_POWER>; 28 + wakeup-source; 29 + }; 30 + 31 + button-voldown { 32 + label = "Volume Down"; 33 + gpios = <&pinctrl_ap 67 GPIO_ACTIVE_LOW>; 34 + linux,code = <KEY_VOLUMEDOWN>; 35 + }; 36 + 37 + button-volup { 38 + label = "Volume Up"; 39 + gpios = <&pinctrl_ap 66 GPIO_ACTIVE_LOW>; 40 + linux,code = <KEY_VOLUMEUP>; 41 + }; 42 + 43 + switch-mute { 44 + label = "Mute Switch"; 45 + gpios = <&pinctrl_ap 149 GPIO_ACTIVE_LOW>; 46 + linux,code = <KEY_MUTE>; 47 + }; 48 + }; 49 + };
+43
arch/arm64/boot/dts/apple/s800x-ipad5.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPad 5 common device tree 4 + * 5 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 6 + */ 7 + 8 + #include "s800-0-3-common.dtsi" 9 + #include <dt-bindings/input/input.h> 10 + 11 + / { 12 + chassis-type = "tablet"; 13 + 14 + gpio-keys { 15 + compatible = "gpio-keys"; 16 + 17 + button-home { 18 + label = "Home Button"; 19 + gpios = <&pinctrl_ap 96 GPIO_ACTIVE_LOW>; 20 + linux,code = <KEY_HOMEPAGE>; 21 + wakeup-source; 22 + }; 23 + 24 + button-power { 25 + label = "Power Button"; 26 + gpios = <&pinctrl_ap 97 GPIO_ACTIVE_LOW>; 27 + linux,code = <KEY_POWER>; 28 + wakeup-source; 29 + }; 30 + 31 + button-voldown { 32 + label = "Volume Down"; 33 + gpios = <&pinctrl_ap 143 GPIO_ACTIVE_LOW>; 34 + linux,code = <KEY_VOLUMEDOWN>; 35 + }; 36 + 37 + button-volup { 38 + label = "Volume Up"; 39 + gpios = <&pinctrl_ap 144 GPIO_ACTIVE_LOW>; 40 + linux,code = <KEY_VOLUMEUP>; 41 + }; 42 + }; 43 + };
+49
arch/arm64/boot/dts/apple/s800x-se.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPhone SE common device tree 4 + * 5 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 6 + */ 7 + 8 + #include "s800-0-3-common.dtsi" 9 + #include <dt-bindings/input/input.h> 10 + 11 + / { 12 + chassis-type = "handset"; 13 + 14 + gpio-keys { 15 + compatible = "gpio-keys"; 16 + 17 + button-home { 18 + label = "Home Button"; 19 + gpios = <&pinctrl_ap 96 GPIO_ACTIVE_LOW>; 20 + linux,code = <KEY_HOMEPAGE>; 21 + wakeup-source; 22 + }; 23 + 24 + button-power { 25 + label = "Power Button"; 26 + gpios = <&pinctrl_ap 97 GPIO_ACTIVE_LOW>; 27 + linux,code = <KEY_POWER>; 28 + wakeup-source; 29 + }; 30 + 31 + button-voldown { 32 + label = "Volume Down"; 33 + gpios = <&pinctrl_ap 67 GPIO_ACTIVE_LOW>; 34 + linux,code = <KEY_VOLUMEDOWN>; 35 + }; 36 + 37 + button-volup { 38 + label = "Volume Up"; 39 + gpios = <&pinctrl_ap 66 GPIO_ACTIVE_LOW>; 40 + linux,code = <KEY_VOLUMEUP>; 41 + }; 42 + 43 + switch-mute { 44 + label = "Mute Switch"; 45 + gpios = <&pinctrl_ap 149 GPIO_ACTIVE_LOW>; 46 + linux,code = <KEY_MUTE>; 47 + }; 48 + }; 49 + };
+50
arch/arm64/boot/dts/apple/t7000-6.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPhone 6 / 6 Plus common device tree 4 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 5 + */ 6 + 7 + #include <dt-bindings/input/input.h> 8 + #include "t7000.dtsi" 9 + #include "t7000-common.dtsi" 10 + #include "t7000-handheld.dtsi" 11 + 12 + / { 13 + chassis-type = "handset"; 14 + 15 + gpio-keys { 16 + compatible = "gpio-keys"; 17 + 18 + button-home { 19 + label = "Home Button"; 20 + gpios = <&pinctrl 32 GPIO_ACTIVE_LOW>; 21 + linux,code = <KEY_HOMEPAGE>; 22 + wakeup-source; 23 + }; 24 + 25 + button-power { 26 + label = "Power Button"; 27 + gpios = <&pinctrl 33 GPIO_ACTIVE_LOW>; 28 + linux,code = <KEY_POWER>; 29 + wakeup-source; 30 + }; 31 + 32 + button-volup { 33 + label = "Volume Up"; 34 + gpios = <&pinctrl 45 GPIO_ACTIVE_LOW>; 35 + linux,code = <KEY_VOLUMEUP>; 36 + }; 37 + 38 + button-voldown { 39 + label = "Volume Down"; 40 + gpios = <&pinctrl 46 GPIO_ACTIVE_LOW>; 41 + linux,code = <KEY_VOLUMEDOWN>; 42 + }; 43 + 44 + switch-mute { 45 + label = "Mute Switch"; 46 + gpios = <&pinctrl 131 GPIO_ACTIVE_LOW>; 47 + linux,code = <KEY_MUTE>; 48 + }; 49 + }; 50 + };
+36
arch/arm64/boot/dts/apple/t7000-common.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple TV HD, iPhone 6, iPhone 6 Plus, iPad mini 4, iPod touch 6 4 + * 5 + * This file contains parts common to all Apple A8 devices. 6 + * 7 + * target-type: J42d, J96, J97, N56, N61, N102 8 + * 9 + * Copyright (c) 2024, Nick Chan <towinchenmi@gmail.com> 10 + */ 11 + 12 + / { 13 + aliases { 14 + serial0 = &serial0; 15 + serial6 = &serial6; 16 + }; 17 + 18 + chosen { 19 + #address-cells = <2>; 20 + #size-cells = <2>; 21 + ranges; 22 + }; 23 + 24 + memory@800000000 { 25 + device_type = "memory"; 26 + reg = <0x8 0 0 0>; /* To be filled by loader */ 27 + }; 28 + 29 + reserved-memory { 30 + #address-cells = <2>; 31 + #size-cells = <2>; 32 + ranges; 33 + 34 + /* To be filled by loader */ 35 + }; 36 + };
+27
arch/arm64/boot/dts/apple/t7000-handheld.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPhone 6, iPhone 6 Plus, iPad mini 4, iPod touch 6 4 + * 5 + * This file contains the parts common to handheld devices with t7000 6 + * 7 + * target-type: J96, J97, N56, N61, N102 8 + * 9 + * Copyright (c) 2024, Nick Chan <towinchenmi@gmail.com> 10 + */ 11 + 12 + / { 13 + chosen { 14 + stdout-path = "serial0"; 15 + 16 + framebuffer0: framebuffer@0 { 17 + compatible = "apple,simple-framebuffer", "simple-framebuffer"; 18 + reg = <0 0 0 0>; /* To be filled by loader */ 19 + /* Format properties will be added by loader */ 20 + status = "disabled"; 21 + }; 22 + }; 23 + }; 24 + 25 + &serial0 { 26 + status = "okay"; 27 + };
+31
arch/arm64/boot/dts/apple/t7000-j42d.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple TV HD, J42d, AppleTV5,3 (A1625) 4 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "t7000.dtsi" 10 + #include "t7000-common.dtsi" 11 + 12 + / { 13 + compatible = "apple,j42d", "apple,t7000", "apple,arm-platform"; 14 + model = "Apple TV HD"; 15 + chassis-type = "television"; 16 + 17 + chosen { 18 + stdout-path = "serial6"; 19 + 20 + framebuffer0: framebuffer@0 { 21 + compatible = "apple,simple-framebuffer", "simple-framebuffer"; 22 + reg = <0 0 0 0>; /* To be filled by loader */ 23 + /* Format properties will be added by loader */ 24 + status = "disabled"; 25 + }; 26 + }; 27 + }; 28 + 29 + &serial6 { 30 + status = "okay"; 31 + };
+14
arch/arm64/boot/dts/apple/t7000-j96.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPad mini 4 (Wi-Fi), J96, iPad5,1 (A1538) 4 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "t7000-mini4.dtsi" 10 + 11 + / { 12 + compatible = "apple,j96", "apple,t7000", "apple,arm-platform"; 13 + model = "Apple iPad mini 4 (Wi-Fi)"; 14 + };
+14
arch/arm64/boot/dts/apple/t7000-j97.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPad mini 4 (Cellular), J97, iPad5,2 (A1550) 4 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "t7000-mini4.dtsi" 10 + 11 + / { 12 + compatible = "apple,j97", "apple,t7000", "apple,arm-platform"; 13 + model = "Apple iPad mini 4 (Cellular)"; 14 + };
+51
arch/arm64/boot/dts/apple/t7000-mini4.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPad mini 4 common device tree 4 + * 5 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 6 + */ 7 + 8 + #include "t7000.dtsi" 9 + #include "t7000-common.dtsi" 10 + #include "t7000-handheld.dtsi" 11 + #include <dt-bindings/input/input.h> 12 + 13 + / { 14 + chassis-type = "tablet"; 15 + 16 + gpio-keys { 17 + compatible = "gpio-keys"; 18 + 19 + button-home { 20 + label = "Home Button"; 21 + gpios = <&pinctrl 32 GPIO_ACTIVE_LOW>; 22 + linux,code = <KEY_HOMEPAGE>; 23 + wakeup-source; 24 + }; 25 + 26 + button-power { 27 + label = "Power Button"; 28 + gpios = <&pinctrl 33 GPIO_ACTIVE_LOW>; 29 + linux,code = <KEY_POWER>; 30 + wakeup-source; 31 + }; 32 + 33 + button-volup { 34 + label = "Volume Up"; 35 + gpios = <&pinctrl 45 GPIO_ACTIVE_LOW>; 36 + linux,code = <KEY_VOLUMEUP>; 37 + }; 38 + 39 + button-voldown { 40 + label = "Volume Down"; 41 + gpios = <&pinctrl 46 GPIO_ACTIVE_LOW>; 42 + linux,code = <KEY_VOLUMEDOWN>; 43 + }; 44 + 45 + switch-mute { 46 + label = "Mute Switch"; 47 + gpios = <&pinctrl 36 GPIO_ACTIVE_LOW>; 48 + linux,code = <KEY_MUTE>; 49 + }; 50 + }; 51 + };
+48
arch/arm64/boot/dts/apple/t7000-n102.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPod touch 6, N102, iPod7,1 (A1574) 4 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "t7000.dtsi" 10 + #include "t7000-common.dtsi" 11 + #include "t7000-handheld.dtsi" 12 + #include <dt-bindings/input/input.h> 13 + 14 + / { 15 + compatible = "apple,n102", "apple,t7000", "apple,arm-platform"; 16 + model = "Apple iPod touch 6"; 17 + chassis-type = "handset"; 18 + 19 + gpio-keys { 20 + compatible = "gpio-keys"; 21 + 22 + button-home { 23 + label = "Home Button"; 24 + gpios = <&pinctrl 32 GPIO_ACTIVE_LOW>; 25 + linux,code = <KEY_HOMEPAGE>; 26 + wakeup-source; 27 + }; 28 + 29 + button-power { 30 + label = "Power Button"; 31 + gpios = <&pinctrl 33 GPIO_ACTIVE_LOW>; 32 + linux,code = <KEY_POWER>; 33 + wakeup-source; 34 + }; 35 + 36 + button-voldown { 37 + label = "Volume Down"; 38 + gpios = <&pinctrl 46 GPIO_ACTIVE_LOW>; 39 + linux,code = <KEY_VOLUMEDOWN>; 40 + }; 41 + 42 + button-volup { 43 + label = "Volume Up"; 44 + gpios = <&pinctrl 45 GPIO_ACTIVE_LOW>; 45 + linux,code = <KEY_VOLUMEUP>; 46 + }; 47 + }; 48 + };
+14
arch/arm64/boot/dts/apple/t7000-n56.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPhone 6 Plus, N56, iPhone7,2 (A1549/A1586/A1589) 4 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "t7000-6.dtsi" 10 + 11 + / { 12 + compatible = "apple,n56", "apple,t7000", "apple,arm-platform"; 13 + model = "Apple iPhone 6 Plus"; 14 + };
+14
arch/arm64/boot/dts/apple/t7000-n61.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPhone 6, N61, iPhone7,2 (A1549/A1586/A1589) 4 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "t7000-6.dtsi" 10 + 11 + / { 12 + compatible = "apple,n61", "apple,t7000", "apple,arm-platform"; 13 + model = "Apple iPhone 6"; 14 + };
+125
arch/arm64/boot/dts/apple/t7000.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple T7000 "A8" SoC 4 + * 5 + * Other names: H7P, "Fiji" 6 + * 7 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 8 + * Based on Asahi Linux's M1 (t8103.dtsi) and Corellium's A10 efforts. 9 + */ 10 + 11 + #include <dt-bindings/gpio/gpio.h> 12 + #include <dt-bindings/interrupt-controller/apple-aic.h> 13 + #include <dt-bindings/interrupt-controller/irq.h> 14 + #include <dt-bindings/pinctrl/apple.h> 15 + 16 + / { 17 + interrupt-parent = <&aic>; 18 + #address-cells = <2>; 19 + #size-cells = <2>; 20 + 21 + clkref: clock-ref { 22 + compatible = "fixed-clock"; 23 + #clock-cells = <0>; 24 + clock-frequency = <24000000>; 25 + clock-output-names = "clkref"; 26 + }; 27 + 28 + cpus { 29 + #address-cells = <2>; 30 + #size-cells = <0>; 31 + 32 + cpu0: cpu@0 { 33 + compatible = "apple,typhoon"; 34 + reg = <0x0 0x0>; 35 + cpu-release-addr = <0 0>; /* To be filled in by loader */ 36 + enable-method = "spin-table"; 37 + device_type = "cpu"; 38 + }; 39 + 40 + cpu1: cpu@1 { 41 + compatible = "apple,typhoon"; 42 + reg = <0x0 0x1>; 43 + cpu-release-addr = <0 0>; /* To be filled in by loader */ 44 + enable-method = "spin-table"; 45 + device_type = "cpu"; 46 + }; 47 + }; 48 + 49 + soc { 50 + compatible = "simple-bus"; 51 + #address-cells = <2>; 52 + #size-cells = <2>; 53 + nonposted-mmio; 54 + ranges; 55 + 56 + serial0: serial@20a0c0000 { 57 + compatible = "apple,s5l-uart"; 58 + reg = <0x2 0x0a0c0000 0x0 0x4000>; 59 + reg-io-width = <4>; 60 + interrupt-parent = <&aic>; 61 + interrupts = <AIC_IRQ 158 IRQ_TYPE_LEVEL_HIGH>; 62 + /* Use the bootloader-enabled clocks for now. */ 63 + clocks = <&clkref>, <&clkref>; 64 + clock-names = "uart", "clk_uart_baud0"; 65 + status = "disabled"; 66 + }; 67 + 68 + serial6: serial@20a0d8000 { 69 + compatible = "apple,s5l-uart"; 70 + reg = <0x2 0x0a0d8000 0x0 0x4000>; 71 + reg-io-width = <4>; 72 + interrupt-parent = <&aic>; 73 + interrupts = <AIC_IRQ 164 IRQ_TYPE_LEVEL_HIGH>; 74 + /* Use the bootloader-enabled clocks for now. */ 75 + clocks = <&clkref>, <&clkref>; 76 + clock-names = "uart", "clk_uart_baud0"; 77 + status = "disabled"; 78 + }; 79 + 80 + wdt: watchdog@20e027000 { 81 + compatible = "apple,t7000-wdt", "apple,wdt"; 82 + reg = <0x2 0x0e027000 0x0 0x1000>; 83 + clocks = <&clkref>; 84 + interrupt-parent = <&aic>; 85 + interrupts = <AIC_IRQ 4 IRQ_TYPE_LEVEL_HIGH>; 86 + }; 87 + 88 + aic: interrupt-controller@20e100000 { 89 + compatible = "apple,t7000-aic", "apple,aic"; 90 + reg = <0x2 0x0e100000 0x0 0x100000>; 91 + #interrupt-cells = <3>; 92 + interrupt-controller; 93 + }; 94 + 95 + pinctrl: pinctrl@20e300000 { 96 + compatible = "apple,t7000-pinctrl", "apple,pinctrl"; 97 + reg = <0x2 0x0e300000 0x0 0x100000>; 98 + 99 + gpio-controller; 100 + #gpio-cells = <2>; 101 + gpio-ranges = <&pinctrl 0 0 208>; 102 + apple,npins = <208>; 103 + 104 + interrupt-controller; 105 + #interrupt-cells = <2>; 106 + interrupt-parent = <&aic>; 107 + interrupts = <AIC_IRQ 62 IRQ_TYPE_LEVEL_HIGH>, 108 + <AIC_IRQ 63 IRQ_TYPE_LEVEL_HIGH>, 109 + <AIC_IRQ 64 IRQ_TYPE_LEVEL_HIGH>, 110 + <AIC_IRQ 65 IRQ_TYPE_LEVEL_HIGH>, 111 + <AIC_IRQ 66 IRQ_TYPE_LEVEL_HIGH>, 112 + <AIC_IRQ 67 IRQ_TYPE_LEVEL_HIGH>, 113 + <AIC_IRQ 68 IRQ_TYPE_LEVEL_HIGH>; 114 + }; 115 + }; 116 + 117 + timer { 118 + compatible = "arm,armv8-timer"; 119 + interrupt-parent = <&aic>; 120 + interrupt-names = "phys", "virt"; 121 + /* Note that A8 doesn't actually have a hypervisor (EL2 is not implemented). */ 122 + interrupts = <AIC_FIQ AIC_TMR_GUEST_PHYS IRQ_TYPE_LEVEL_HIGH>, 123 + <AIC_FIQ AIC_TMR_GUEST_VIRT IRQ_TYPE_LEVEL_HIGH>; 124 + }; 125 + };
+74
arch/arm64/boot/dts/apple/t7001-air2.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPad Air 2 common device tree 4 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 5 + */ 6 + 7 + #include "t7001.dtsi" 8 + #include <dt-bindings/input/input.h> 9 + 10 + / { 11 + chassis-type = "tablet"; 12 + 13 + chosen { 14 + #address-cells = <2>; 15 + #size-cells = <2>; 16 + ranges; 17 + 18 + stdout-path = "serial0"; 19 + 20 + framebuffer0: framebuffer@0 { 21 + compatible = "apple,simple-framebuffer", "simple-framebuffer"; 22 + reg = <0 0 0 0>; /* To be filled by loader */ 23 + /* Format properties will be added by loader */ 24 + status = "disabled"; 25 + }; 26 + }; 27 + 28 + gpio-keys { 29 + compatible = "gpio-keys"; 30 + 31 + button-home { 32 + label = "Home Button"; 33 + gpios = <&pinctrl 0 GPIO_ACTIVE_LOW>; 34 + linux,code = <KEY_HOMEPAGE>; 35 + wakeup-source; 36 + }; 37 + 38 + button-power { 39 + label = "Power Button"; 40 + gpios = <&pinctrl 1 GPIO_ACTIVE_LOW>; 41 + linux,code = <KEY_POWER>; 42 + wakeup-source; 43 + }; 44 + 45 + button-volup { 46 + label = "Volume Up"; 47 + gpios = <&pinctrl 92 GPIO_ACTIVE_LOW>; 48 + linux,code = <KEY_VOLUMEUP>; 49 + }; 50 + 51 + button-voldown { 52 + label = "Volume Down"; 53 + gpios = <&pinctrl 93 GPIO_ACTIVE_LOW>; 54 + linux,code = <KEY_VOLUMEDOWN>; 55 + }; 56 + }; 57 + 58 + memory@800000000 { 59 + device_type = "memory"; 60 + reg = <0x8 0 0 0>; /* To be filled by loader */ 61 + }; 62 + 63 + reserved-memory { 64 + #address-cells = <2>; 65 + #size-cells = <2>; 66 + ranges; 67 + 68 + /* To be filled by loader */ 69 + }; 70 + }; 71 + 72 + &serial0 { 73 + status = "okay"; 74 + };
+14
arch/arm64/boot/dts/apple/t7001-j81.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPad Air 2 (Wi-Fi), J81, iPad5,3 (A1566) 4 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "t7001-air2.dtsi" 10 + 11 + / { 12 + compatible = "apple,j81", "apple,t7001", "apple,arm-platform"; 13 + model = "Apple iPad Air 2 (Wi-Fi)"; 14 + };
+14
arch/arm64/boot/dts/apple/t7001-j82.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPad Air 2 (Cellular), J82, iPad5,4 (A1567) 4 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "t7001-air2.dtsi" 10 + 11 + / { 12 + compatible = "apple,j82", "apple,t7001", "apple,arm-platform"; 13 + model = "Apple iPad Air 2 (Cellular)"; 14 + };
+123
arch/arm64/boot/dts/apple/t7001.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple T7001 "A8X" SoC 4 + * 5 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 6 + * Based on Asahi Linux's M1 (t8103.dtsi) and Corellium's A10 efforts. 7 + */ 8 + 9 + #include <dt-bindings/gpio/gpio.h> 10 + #include <dt-bindings/interrupt-controller/apple-aic.h> 11 + #include <dt-bindings/interrupt-controller/irq.h> 12 + #include <dt-bindings/pinctrl/apple.h> 13 + 14 + / { 15 + interrupt-parent = <&aic>; 16 + #address-cells = <2>; 17 + #size-cells = <2>; 18 + 19 + aliases { 20 + serial0 = &serial0; 21 + }; 22 + 23 + clkref: clock-ref { 24 + compatible = "fixed-clock"; 25 + #clock-cells = <0>; 26 + clock-frequency = <24000000>; 27 + clock-output-names = "clkref"; 28 + }; 29 + 30 + cpus { 31 + #address-cells = <2>; 32 + #size-cells = <0>; 33 + 34 + cpu0: cpu@0 { 35 + compatible = "apple,typhoon"; 36 + reg = <0x0 0x0>; 37 + cpu-release-addr = <0 0>; /* To be filled in by loader */ 38 + enable-method = "spin-table"; 39 + device_type = "cpu"; 40 + }; 41 + 42 + cpu1: cpu@1 { 43 + compatible = "apple,typhoon"; 44 + reg = <0x0 0x1>; 45 + cpu-release-addr = <0 0>; /* To be filled in by loader */ 46 + enable-method = "spin-table"; 47 + device_type = "cpu"; 48 + }; 49 + 50 + cpu2: cpu@2 { 51 + compatible = "apple,typhoon"; 52 + reg = <0x0 0x2>; 53 + cpu-release-addr = <0 0>; /* To be filled by loader */ 54 + enable-method = "spin-table"; 55 + device_type = "cpu"; 56 + }; 57 + }; 58 + 59 + soc { 60 + compatible = "simple-bus"; 61 + #address-cells = <2>; 62 + #size-cells = <2>; 63 + nonposted-mmio; 64 + ranges; 65 + 66 + serial0: serial@20a0c0000 { 67 + compatible = "apple,s5l-uart"; 68 + reg = <0x2 0x0a0c0000 0x0 0x4000>; 69 + reg-io-width = <4>; 70 + interrupt-parent = <&aic>; 71 + interrupts = <AIC_IRQ 158 IRQ_TYPE_LEVEL_HIGH>; 72 + /* Use the bootloader-enabled clocks for now. */ 73 + clocks = <&clkref>, <&clkref>; 74 + clock-names = "uart", "clk_uart_baud0"; 75 + status = "disabled"; 76 + }; 77 + 78 + wdt: watchdog@20e027000 { 79 + compatible = "apple,t7000-wdt", "apple,wdt"; 80 + reg = <0x2 0x0e027000 0x0 0x1000>; 81 + clocks = <&clkref>; 82 + interrupt-parent = <&aic>; 83 + interrupts = <AIC_IRQ 4 IRQ_TYPE_LEVEL_HIGH>; 84 + }; 85 + 86 + aic: interrupt-controller@20e100000 { 87 + compatible = "apple,t7000-aic", "apple,aic"; 88 + reg = <0x2 0x0e100000 0x0 0x100000>; 89 + #interrupt-cells = <3>; 90 + interrupt-controller; 91 + }; 92 + 93 + pinctrl: pinctrl@20e300000 { 94 + compatible = "apple,t7000-pinctrl", "apple,pinctrl"; 95 + reg = <0x2 0x0e300000 0x0 0x100000>; 96 + 97 + gpio-controller; 98 + #gpio-cells = <2>; 99 + gpio-ranges = <&pinctrl 0 0 184>; 100 + apple,npins = <184>; 101 + 102 + interrupt-controller; 103 + #interrupt-cells = <2>; 104 + interrupt-parent = <&aic>; 105 + interrupts = <AIC_IRQ 62 IRQ_TYPE_LEVEL_HIGH>, 106 + <AIC_IRQ 63 IRQ_TYPE_LEVEL_HIGH>, 107 + <AIC_IRQ 64 IRQ_TYPE_LEVEL_HIGH>, 108 + <AIC_IRQ 65 IRQ_TYPE_LEVEL_HIGH>, 109 + <AIC_IRQ 66 IRQ_TYPE_LEVEL_HIGH>, 110 + <AIC_IRQ 67 IRQ_TYPE_LEVEL_HIGH>, 111 + <AIC_IRQ 68 IRQ_TYPE_LEVEL_HIGH>; 112 + }; 113 + }; 114 + 115 + timer { 116 + compatible = "arm,armv8-timer"; 117 + interrupt-parent = <&aic>; 118 + interrupt-names = "phys", "virt"; 119 + /* Note that A8X doesn't actually have a hypervisor (EL2 is not implemented). */ 120 + interrupts = <AIC_FIQ AIC_TMR_GUEST_PHYS IRQ_TYPE_LEVEL_HIGH>, 121 + <AIC_FIQ AIC_TMR_GUEST_VIRT IRQ_TYPE_LEVEL_HIGH>; 122 + }; 123 + };
+43
arch/arm64/boot/dts/apple/t8010-7.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPhone 7 / 7 Plus common device tree 4 + * 5 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 6 + */ 7 + 8 + #include "t8010.dtsi" 9 + #include "t8010-common.dtsi" 10 + #include <dt-bindings/input/input.h> 11 + 12 + / { 13 + chassis-type = "handset"; 14 + 15 + gpio-keys { 16 + compatible = "gpio-keys"; 17 + 18 + button-power { 19 + label = "Power Button"; 20 + gpios = <&pinctrl_ap 179 GPIO_ACTIVE_LOW>; 21 + linux,code = <KEY_POWER>; 22 + wakeup-source; 23 + }; 24 + 25 + button-voldown { 26 + label = "Volume Down"; 27 + gpios = <&pinctrl_ap 180 GPIO_ACTIVE_LOW>; 28 + linux,code = <KEY_VOLUMEDOWN>; 29 + }; 30 + 31 + button-volup { 32 + label = "Volume Up"; 33 + gpios = <&pinctrl_ap 23 GPIO_ACTIVE_LOW>; 34 + linux,code = <KEY_VOLUMEUP>; 35 + }; 36 + 37 + switch-mute { 38 + label = "Mute Switch"; 39 + gpios = <&pinctrl_ap 86 GPIO_ACTIVE_LOW>; 40 + linux,code = <KEY_MUTE>; 41 + }; 42 + }; 43 + };
+48
arch/arm64/boot/dts/apple/t8010-common.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0 OR MIT 2 + /* 3 + * Apple iPhone 7, iPhone 7 Plus, iPad 6, iPad 7, iPod touch 7 4 + * 5 + * This file contains parts common to all Apple A10 devices. 6 + * 7 + * target-type: D10, D11, D101, D111, J71b, J72b, J171, J172, N112 8 + * 9 + * Copyright (c) 2024, Nick Chan <towinchenmi@gmail.com> 10 + */ 11 + 12 + / { 13 + aliases { 14 + serial0 = &serial0; 15 + }; 16 + 17 + chosen { 18 + #address-cells = <2>; 19 + #size-cells = <2>; 20 + ranges; 21 + 22 + stdout-path = "serial0"; 23 + 24 + framebuffer0: framebuffer@0 { 25 + compatible = "apple,simple-framebuffer", "simple-framebuffer"; 26 + reg = <0 0 0 0>; /* To be filled by loader */ 27 + /* Format properties will be added by loader */ 28 + status = "disabled"; 29 + }; 30 + }; 31 + 32 + memory@800000000 { 33 + device_type = "memory"; 34 + reg = <0x8 0 0 0>; /* To be filled by loader */ 35 + }; 36 + 37 + reserved-memory { 38 + #address-cells = <2>; 39 + #size-cells = <2>; 40 + ranges; 41 + 42 + /* To be filled by loader */ 43 + }; 44 + }; 45 + 46 + &serial0 { 47 + status = "okay"; 48 + };
+14
arch/arm64/boot/dts/apple/t8010-d10.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPhone 7 (Qualcomm), D10, iPhone9,1 (A1660/A1778/A1779/A1780) 4 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "t8010-7.dtsi" 10 + 11 + / { 12 + compatible = "apple,d10", "apple,t8010", "apple,arm-platform"; 13 + model = "Apple iPhone 7 (Qualcomm)"; 14 + };
+14
arch/arm64/boot/dts/apple/t8010-d101.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPhone 7 (Intel), D101, iPhone9,3 (A1660/A1778/A1779/A1780) 4 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "t8010-7.dtsi" 10 + 11 + / { 12 + compatible = "apple,d101", "apple,t8010", "apple,arm-platform"; 13 + model = "Apple iPhone 7 (Intel)"; 14 + };
+14
arch/arm64/boot/dts/apple/t8010-d11.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPhone 7 Plus (Qualcomm), D11, iPhone9,2 (A1661/A1784/A1785/A1786) 4 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "t8010-7.dtsi" 10 + 11 + / { 12 + compatible = "apple,d11", "apple,t8010", "apple,arm-platform"; 13 + model = "Apple iPhone 7 Plus (Qualcomm)"; 14 + };
+14
arch/arm64/boot/dts/apple/t8010-d111.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPhone 7 Plus (Intel), D111, iPhone9,4 (A1661/A1784/A1785/A1786) 4 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "t8010-7.dtsi" 10 + 11 + / { 12 + compatible = "apple,d111", "apple,t8010", "apple,arm-platform"; 13 + model = "Apple iPhone 7 Plus (Intel)"; 14 + };
+44
arch/arm64/boot/dts/apple/t8010-ipad6.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPad 6 common device tree 4 + * 5 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 6 + */ 7 + 8 + #include "t8010.dtsi" 9 + #include "t8010-common.dtsi" 10 + #include <dt-bindings/input/input.h> 11 + 12 + / { 13 + chassis-type = "tablet"; 14 + 15 + gpio-keys { 16 + compatible = "gpio-keys"; 17 + 18 + button-home { 19 + label = "Home Button"; 20 + gpios = <&pinctrl_ap 180 GPIO_ACTIVE_LOW>; 21 + linux,code = <KEY_HOMEPAGE>; 22 + wakeup-source; 23 + }; 24 + 25 + button-power { 26 + label = "Power Button"; 27 + gpios = <&pinctrl_ap 179 GPIO_ACTIVE_LOW>; 28 + linux,code = <KEY_POWER>; 29 + wakeup-source; 30 + }; 31 + 32 + button-voldown { 33 + label = "Volume Down"; 34 + gpios = <&pinctrl_ap 89 GPIO_ACTIVE_LOW>; 35 + linux,code = <KEY_VOLUMEDOWN>; 36 + }; 37 + 38 + button-volup { 39 + label = "Volume Up"; 40 + gpios = <&pinctrl_ap 90 GPIO_ACTIVE_LOW>; 41 + linux,code = <KEY_VOLUMEUP>; 42 + }; 43 + }; 44 + };
+14
arch/arm64/boot/dts/apple/t8010-ipad7.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPad 7 common device tree 4 + * 5 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 6 + */ 7 + 8 + /* 9 + * The iPad 7 seems to be only an iteration over the iPad 6 with some 10 + * small changes, like the a bigger screen and 1 GiB of RAM more, hence 11 + * there is little to no differentiation between these 2 generations for 12 + * now. 13 + */ 14 + #include "t8010-ipad6.dtsi"
+14
arch/arm64/boot/dts/apple/t8010-j171.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPad 7 (Wi-Fi), J171, iPad7,11 (A2197) 4 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "t8010-ipad7.dtsi" 10 + 11 + / { 12 + compatible = "apple,j171", "apple,t8010", "apple,arm-platform"; 13 + model = "Apple iPad 7 (Wi-Fi)"; 14 + };
+14
arch/arm64/boot/dts/apple/t8010-j172.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPad 7 (Cellular), J172, iPad7,12 (A2198/A2200) 4 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "t8010-ipad7.dtsi" 10 + 11 + / { 12 + compatible = "apple,j172", "apple,t8010", "apple,arm-platform"; 13 + model = "Apple iPad 7 (Cellular)"; 14 + };
+14
arch/arm64/boot/dts/apple/t8010-j71b.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPad 6 (Wi-Fi), J71b, iPad7,5 (A1893) 4 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "t8010-ipad6.dtsi" 10 + 11 + / { 12 + compatible = "apple,j71b", "apple,t8010", "apple,arm-platform"; 13 + model = "Apple iPad 6 (Wi-Fi)"; 14 + };
+14
arch/arm64/boot/dts/apple/t8010-j72b.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPad 6 (Cellular), J72b, iPad7,6 (A1954) 4 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "t8010-ipad6.dtsi" 10 + 11 + / { 12 + compatible = "apple,j72b", "apple,t8010", "apple,arm-platform"; 13 + model = "Apple iPad 6 (Cellular)"; 14 + };
+47
arch/arm64/boot/dts/apple/t8010-n112.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPod touch 7, N112, iPod9,1 (A2178) 4 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "t8010.dtsi" 10 + #include "t8010-common.dtsi" 11 + #include <dt-bindings/input/input.h> 12 + 13 + / { 14 + compatible = "apple,n112", "apple,t8010", "apple,arm-platform"; 15 + model = "Apple iPod touch 7"; 16 + chassis-type = "handset"; 17 + 18 + gpio-keys { 19 + compatible = "gpio-keys"; 20 + 21 + button-home { 22 + label = "Home Button"; 23 + gpios = <&pinctrl_ap 86 GPIO_ACTIVE_LOW>; 24 + linux,code = <KEY_HOMEPAGE>; 25 + wakeup-source; 26 + }; 27 + 28 + button-power { 29 + label = "Power Button"; 30 + gpios = <&pinctrl_ap 179 GPIO_ACTIVE_LOW>; 31 + linux,code = <KEY_POWER>; 32 + wakeup-source; 33 + }; 34 + 35 + button-voldown { 36 + label = "Volume Down"; 37 + gpios = <&pinctrl_ap 180 GPIO_ACTIVE_LOW>; 38 + linux,code = <KEY_VOLUMEDOWN>; 39 + }; 40 + 41 + button-volup { 42 + label = "Volume Up"; 43 + gpios = <&pinctrl_ap 23 GPIO_ACTIVE_LOW>; 44 + linux,code = <KEY_VOLUMEUP>; 45 + }; 46 + }; 47 + };
+133
arch/arm64/boot/dts/apple/t8010.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0 OR MIT 2 + /* 3 + * Apple T8010 "A10" SoC 4 + * 5 + * Other names: H9P, "Cayman" 6 + * 7 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 8 + */ 9 + 10 + #include <dt-bindings/gpio/gpio.h> 11 + #include <dt-bindings/interrupt-controller/apple-aic.h> 12 + #include <dt-bindings/interrupt-controller/irq.h> 13 + #include <dt-bindings/pinctrl/apple.h> 14 + 15 + / { 16 + interrupt-parent = <&aic>; 17 + #address-cells = <2>; 18 + #size-cells = <2>; 19 + 20 + clkref: clock-ref { 21 + compatible = "fixed-clock"; 22 + #clock-cells = <0>; 23 + clock-frequency = <24000000>; 24 + clock-output-names = "clkref"; 25 + }; 26 + 27 + cpus { 28 + #address-cells = <2>; 29 + #size-cells = <0>; 30 + 31 + cpu0: cpu@0 { 32 + compatible = "apple,hurricane-zephyr"; 33 + reg = <0x0 0x0>; 34 + cpu-release-addr = <0 0>; /* To be filled by loader */ 35 + enable-method = "spin-table"; 36 + device_type = "cpu"; 37 + }; 38 + 39 + cpu1: cpu@1 { 40 + compatible = "apple,hurricane-zephyr"; 41 + reg = <0x0 0x1>; 42 + cpu-release-addr = <0 0>; /* To be filled by loader */ 43 + enable-method = "spin-table"; 44 + device_type = "cpu"; 45 + }; 46 + }; 47 + 48 + soc { 49 + compatible = "simple-bus"; 50 + #address-cells = <2>; 51 + #size-cells = <2>; 52 + nonposted-mmio; 53 + ranges; 54 + 55 + serial0: serial@20a0c0000 { 56 + compatible = "apple,s5l-uart"; 57 + reg = <0x2 0x0a0c0000 0x0 0x4000>; 58 + reg-io-width = <4>; 59 + interrupt-parent = <&aic>; 60 + interrupts = <AIC_IRQ 218 IRQ_TYPE_LEVEL_HIGH>; 61 + /* Use the bootloader-enabled clocks for now. */ 62 + clocks = <&clkref>, <&clkref>; 63 + clock-names = "uart", "clk_uart_baud0"; 64 + status = "disabled"; 65 + }; 66 + 67 + aic: interrupt-controller@20e100000 { 68 + compatible = "apple,t8010-aic", "apple,aic"; 69 + reg = <0x2 0x0e100000 0x0 0x100000>; 70 + #interrupt-cells = <3>; 71 + interrupt-controller; 72 + }; 73 + 74 + pinctrl_ap: pinctrl@20f100000 { 75 + compatible = "apple,t8010-pinctrl", "apple,pinctrl"; 76 + reg = <0x2 0x0f100000 0x0 0x100000>; 77 + 78 + gpio-controller; 79 + #gpio-cells = <2>; 80 + gpio-ranges = <&pinctrl_ap 0 0 208>; 81 + apple,npins = <208>; 82 + 83 + interrupt-controller; 84 + #interrupt-cells = <2>; 85 + interrupt-parent = <&aic>; 86 + interrupts = <AIC_IRQ 42 IRQ_TYPE_LEVEL_HIGH>, 87 + <AIC_IRQ 43 IRQ_TYPE_LEVEL_HIGH>, 88 + <AIC_IRQ 44 IRQ_TYPE_LEVEL_HIGH>, 89 + <AIC_IRQ 45 IRQ_TYPE_LEVEL_HIGH>, 90 + <AIC_IRQ 46 IRQ_TYPE_LEVEL_HIGH>, 91 + <AIC_IRQ 47 IRQ_TYPE_LEVEL_HIGH>, 92 + <AIC_IRQ 48 IRQ_TYPE_LEVEL_HIGH>; 93 + }; 94 + 95 + pinctrl_aop: pinctrl@2100f0000 { 96 + compatible = "apple,t8010-pinctrl", "apple,pinctrl"; 97 + reg = <0x2 0x100f0000 0x0 0x100000>; 98 + 99 + gpio-controller; 100 + #gpio-cells = <2>; 101 + gpio-ranges = <&pinctrl_aop 0 0 42>; 102 + apple,npins = <42>; 103 + 104 + interrupt-controller; 105 + #interrupt-cells = <2>; 106 + interrupt-parent = <&aic>; 107 + interrupts = <AIC_IRQ 128 IRQ_TYPE_LEVEL_HIGH>, 108 + <AIC_IRQ 129 IRQ_TYPE_LEVEL_HIGH>, 109 + <AIC_IRQ 130 IRQ_TYPE_LEVEL_HIGH>, 110 + <AIC_IRQ 131 IRQ_TYPE_LEVEL_HIGH>, 111 + <AIC_IRQ 132 IRQ_TYPE_LEVEL_HIGH>, 112 + <AIC_IRQ 133 IRQ_TYPE_LEVEL_HIGH>, 113 + <AIC_IRQ 134 IRQ_TYPE_LEVEL_HIGH>; 114 + }; 115 + 116 + wdt: watchdog@2102b0000 { 117 + compatible = "apple,t8010-wdt", "apple,wdt"; 118 + reg = <0x2 0x102b0000 0x0 0x4000>; 119 + clocks = <&clkref>; 120 + interrupt-parent = <&aic>; 121 + interrupts = <AIC_IRQ 4 IRQ_TYPE_LEVEL_HIGH>; 122 + }; 123 + }; 124 + 125 + timer { 126 + compatible = "arm,armv8-timer"; 127 + interrupt-parent = <&aic>; 128 + interrupt-names = "phys", "virt"; 129 + /* Note that A10 doesn't actually have a hypervisor (EL2 is not implemented). */ 130 + interrupts = <AIC_FIQ AIC_TMR_GUEST_PHYS IRQ_TYPE_LEVEL_HIGH>, 131 + <AIC_FIQ AIC_TMR_GUEST_VIRT IRQ_TYPE_LEVEL_HIGH>; 132 + }; 133 + };
+46
arch/arm64/boot/dts/apple/t8011-common.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple TV 4K, Apple iPad Pro 2 4 + * 5 + * This file contains parts common to all Apple A10X devices. 6 + * 7 + * Copyright (c) 2024, Nick Chan <towinchenmi@gmail.com> 8 + */ 9 + 10 + / { 11 + aliases { 12 + serial0 = &serial0; 13 + }; 14 + 15 + chosen { 16 + #address-cells = <2>; 17 + #size-cells = <2>; 18 + ranges; 19 + 20 + stdout-path = "serial0"; 21 + 22 + framebuffer0: framebuffer@0 { 23 + compatible = "apple,simple-framebuffer", "simple-framebuffer"; 24 + reg = <0 0 0 0>; /* To be filled by loader */ 25 + /* Format properties will be added by loader */ 26 + status = "disabled"; 27 + }; 28 + }; 29 + 30 + memory@800000000 { 31 + device_type = "memory"; 32 + reg = <0x8 0 0 0>; /* To be filled by loader */ 33 + }; 34 + 35 + reserved-memory { 36 + #address-cells = <2>; 37 + #size-cells = <2>; 38 + ranges; 39 + 40 + /* To be filled by loader */ 41 + }; 42 + }; 43 + 44 + &serial0 { 45 + status = "okay"; 46 + };
+16
arch/arm64/boot/dts/apple/t8011-j105a.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple TV 4K (1st Generation), J105a, AppleTV6,2 (A1482) 4 + * Copyright (c) 2024, Nick Chan <towinchenmi@gmail.com> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "t8011.dtsi" 10 + #include "t8011-common.dtsi" 11 + 12 + / { 13 + compatible = "apple,j105a", "apple,t8011", "apple,arm-platform"; 14 + model = "Apple TV 4K (1st Generation)"; 15 + chassis-type = "television"; 16 + };
+16
arch/arm64/boot/dts/apple/t8011-j120.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPad Pro 2 (12.9-inch) (Wi-Fi), J120, iPad7,1 (A1670) 4 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "t8011.dtsi" 10 + #include "t8011-common.dtsi" 11 + #include "t8011-pro2.dtsi" 12 + 13 + / { 14 + compatible = "apple,j120", "apple,t8011", "apple,arm-platform"; 15 + model = "Apple iPad Pro 2 (12.9-inch) (Wi-Fi)"; 16 + };
+16
arch/arm64/boot/dts/apple/t8011-j121.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPad Pro 2 (12.9-inch) (Cellular), J121, iPad7,2 (A1671) 4 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "t8011.dtsi" 10 + #include "t8011-common.dtsi" 11 + #include "t8011-pro2.dtsi" 12 + 13 + / { 14 + compatible = "apple,j121", "apple,t8011", "apple,arm-platform"; 15 + model = "Apple iPad Pro 2 (12.9-inch) (Cellular)"; 16 + };
+16
arch/arm64/boot/dts/apple/t8011-j207.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPad Pro 2 (10.5-inch) (Wi-Fi), J207, iPad7,3 (A1701) 4 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "t8011.dtsi" 10 + #include "t8011-common.dtsi" 11 + #include "t8011-pro2.dtsi" 12 + 13 + / { 14 + compatible = "apple,j207", "apple,t8011", "apple,arm-platform"; 15 + model = "Apple iPad Pro 2 (10.5-inch) (Wi-Fi)"; 16 + };
+16
arch/arm64/boot/dts/apple/t8011-j208.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPad Pro 2 (10.5-inch) (Cellular), J208, iPad7,4 (A1709) 4 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "t8011.dtsi" 10 + #include "t8011-common.dtsi" 11 + #include "t8011-pro2.dtsi" 12 + 13 + / { 14 + compatible = "apple,j208", "apple,t8011", "apple,arm-platform"; 15 + model = "Apple iPad Pro 2 (10.5-inch) (Cellular)"; 16 + };
+42
arch/arm64/boot/dts/apple/t8011-pro2.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPad Pro 2 common device tree 4 + * 5 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 6 + */ 7 + 8 + #include <dt-bindings/input/input.h> 9 + 10 + / { 11 + chassis-type = "tablet"; 12 + 13 + gpio-keys { 14 + compatible = "gpio-keys"; 15 + 16 + button-home { 17 + label = "Home Button"; 18 + gpios = <&pinctrl_ap 139 GPIO_ACTIVE_LOW>; 19 + linux,code = <KEY_HOMEPAGE>; 20 + wakeup-source; 21 + }; 22 + 23 + button-power { 24 + label = "Power Button"; 25 + gpios = <&pinctrl_ap 138 GPIO_ACTIVE_LOW>; 26 + linux,code = <KEY_POWER>; 27 + wakeup-source; 28 + }; 29 + 30 + button-voldown { 31 + label = "Volume Down"; 32 + gpios = <&pinctrl_ap 43 GPIO_ACTIVE_LOW>; 33 + linux,code = <KEY_VOLUMEDOWN>; 34 + }; 35 + 36 + button-volup { 37 + label = "Volume Up"; 38 + gpios = <&pinctrl_ap 40 GPIO_ACTIVE_LOW>; 39 + linux,code = <KEY_VOLUMEUP>; 40 + }; 41 + }; 42 + };
+141
arch/arm64/boot/dts/apple/t8011.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple T8011 "A10X" SoC 4 + * 5 + * Other names: H9G, "Myst" 6 + * 7 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 8 + */ 9 + 10 + #include <dt-bindings/gpio/gpio.h> 11 + #include <dt-bindings/interrupt-controller/apple-aic.h> 12 + #include <dt-bindings/interrupt-controller/irq.h> 13 + #include <dt-bindings/pinctrl/apple.h> 14 + 15 + / { 16 + interrupt-parent = <&aic>; 17 + #address-cells = <2>; 18 + #size-cells = <2>; 19 + 20 + clkref: clock-ref { 21 + compatible = "fixed-clock"; 22 + #clock-cells = <0>; 23 + clock-frequency = <24000000>; 24 + clock-output-names = "clkref"; 25 + }; 26 + 27 + cpus { 28 + #address-cells = <2>; 29 + #size-cells = <0>; 30 + 31 + cpu0: cpu@0 { 32 + compatible = "apple,hurricane-zephyr"; 33 + reg = <0x0 0x0>; 34 + cpu-release-addr = <0 0>; /* To be filled by loader */ 35 + enable-method = "spin-table"; 36 + device_type = "cpu"; 37 + }; 38 + 39 + cpu1: cpu@1 { 40 + compatible = "apple,hurricane-zephyr"; 41 + reg = <0x0 0x1>; 42 + cpu-release-addr = <0 0>; /* To be filled by loader */ 43 + enable-method = "spin-table"; 44 + device_type = "cpu"; 45 + }; 46 + 47 + cpu2: cpu@2 { 48 + compatible = "apple,hurricane-zephyr"; 49 + reg = <0x0 0x2>; 50 + cpu-release-addr = <0 0>; /* To be filled by loader */ 51 + enable-method = "spin-table"; 52 + device_type = "cpu"; 53 + }; 54 + }; 55 + 56 + soc { 57 + compatible = "simple-bus"; 58 + #address-cells = <2>; 59 + #size-cells = <2>; 60 + nonposted-mmio; 61 + ranges; 62 + 63 + serial0: serial@20a0c0000 { 64 + compatible = "apple,s5l-uart"; 65 + reg = <0x2 0x0a0c0000 0x0 0x4000>; 66 + reg-io-width = <4>; 67 + interrupt-parent = <&aic>; 68 + interrupts = <AIC_IRQ 216 IRQ_TYPE_LEVEL_HIGH>; 69 + /* Use the bootloader-enabled clocks for now. */ 70 + clocks = <&clkref>, <&clkref>; 71 + clock-names = "uart", "clk_uart_baud0"; 72 + status = "disabled"; 73 + }; 74 + 75 + aic: interrupt-controller@20e100000 { 76 + compatible = "apple,t8010-aic", "apple,aic"; 77 + reg = <0x2 0x0e100000 0x0 0x100000>; 78 + #interrupt-cells = <3>; 79 + interrupt-controller; 80 + }; 81 + 82 + pinctrl_ap: pinctrl@20f100000 { 83 + compatible = "apple,t8010-pinctrl", "apple,pinctrl"; 84 + reg = <0x2 0x0f100000 0x0 0x100000>; 85 + 86 + gpio-controller; 87 + #gpio-cells = <2>; 88 + gpio-ranges = <&pinctrl_ap 0 0 219>; 89 + apple,npins = <219>; 90 + 91 + interrupt-controller; 92 + #interrupt-cells = <2>; 93 + interrupt-parent = <&aic>; 94 + interrupts = <AIC_IRQ 42 IRQ_TYPE_LEVEL_HIGH>, 95 + <AIC_IRQ 43 IRQ_TYPE_LEVEL_HIGH>, 96 + <AIC_IRQ 44 IRQ_TYPE_LEVEL_HIGH>, 97 + <AIC_IRQ 45 IRQ_TYPE_LEVEL_HIGH>, 98 + <AIC_IRQ 46 IRQ_TYPE_LEVEL_HIGH>, 99 + <AIC_IRQ 47 IRQ_TYPE_LEVEL_HIGH>, 100 + <AIC_IRQ 48 IRQ_TYPE_LEVEL_HIGH>; 101 + }; 102 + 103 + pinctrl_aop: pinctrl@2100f0000 { 104 + compatible = "apple,t8010-pinctrl", "apple,pinctrl"; 105 + reg = <0x2 0x100f0000 0x0 0x100000>; 106 + 107 + gpio-controller; 108 + #gpio-cells = <2>; 109 + gpio-ranges = <&pinctrl_aop 0 0 42>; 110 + apple,npins = <42>; 111 + 112 + interrupt-controller; 113 + #interrupt-cells = <2>; 114 + interrupt-parent = <&aic>; 115 + interrupts = <AIC_IRQ 125 IRQ_TYPE_LEVEL_HIGH>, 116 + <AIC_IRQ 126 IRQ_TYPE_LEVEL_HIGH>, 117 + <AIC_IRQ 127 IRQ_TYPE_LEVEL_HIGH>, 118 + <AIC_IRQ 128 IRQ_TYPE_LEVEL_HIGH>, 119 + <AIC_IRQ 129 IRQ_TYPE_LEVEL_HIGH>, 120 + <AIC_IRQ 130 IRQ_TYPE_LEVEL_HIGH>, 121 + <AIC_IRQ 131 IRQ_TYPE_LEVEL_HIGH>; 122 + }; 123 + 124 + wdt: watchdog@2102b0000 { 125 + compatible = "apple,t8010-wdt", "apple,wdt"; 126 + reg = <0x2 0x102b0000 0x0 0x4000>; 127 + clocks = <&clkref>; 128 + interrupt-parent = <&aic>; 129 + interrupts = <AIC_IRQ 4 IRQ_TYPE_LEVEL_HIGH>; 130 + }; 131 + }; 132 + 133 + timer { 134 + compatible = "arm,armv8-timer"; 135 + interrupt-parent = <&aic>; 136 + interrupt-names = "phys", "virt"; 137 + /* Note that A10X doesn't actually have a hypervisor (EL2 is not implemented). */ 138 + interrupts = <AIC_FIQ AIC_TMR_GUEST_PHYS IRQ_TYPE_LEVEL_HIGH>, 139 + <AIC_FIQ AIC_TMR_GUEST_VIRT IRQ_TYPE_LEVEL_HIGH>; 140 + }; 141 + };
+13
arch/arm64/boot/dts/apple/t8015-8.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPhone 8 common device tree 4 + * 5 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 6 + */ 7 + 8 + #include "t8015.dtsi" 9 + #include "t8015-common.dtsi" 10 + 11 + / { 12 + chassis-type = "handset"; 13 + };
+9
arch/arm64/boot/dts/apple/t8015-8plus.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPhone 8 Plus common device tree 4 + * 5 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 6 + */ 7 + 8 + /* The 8 Plus has minor differences like 1 more camera, 1 GiB of RAM more and a bigger display. */ 9 + #include "t8015-8.dtsi"
+48
arch/arm64/boot/dts/apple/t8015-common.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPhone 8, iPhone 8 Plus, iPhone X 4 + * 5 + * This file contains parts common to all Apple A11 devices. 6 + * 7 + * target-type: D20, D21, D22, D201, D211, D221 8 + * 9 + * Copyright (c) 2024, Nick Chan <towinchenmi@gmail.com> 10 + */ 11 + 12 + / { 13 + aliases { 14 + serial0 = &serial0; 15 + }; 16 + 17 + chosen { 18 + #address-cells = <2>; 19 + #size-cells = <2>; 20 + ranges; 21 + 22 + stdout-path = "serial0"; 23 + 24 + framebuffer0: framebuffer@0 { 25 + compatible = "apple,simple-framebuffer", "simple-framebuffer"; 26 + reg = <0 0 0 0>; /* To be filled by loader */ 27 + /* Format properties will be added by loader */ 28 + status = "disabled"; 29 + }; 30 + }; 31 + 32 + memory@800000000 { 33 + device_type = "memory"; 34 + reg = <0x8 0 0 0>; /* To be filled by loader */ 35 + }; 36 + 37 + reserved-memory { 38 + #address-cells = <2>; 39 + #size-cells = <2>; 40 + ranges; 41 + 42 + /* To be filled by loader */ 43 + }; 44 + }; 45 + 46 + &serial0 { 47 + status = "okay"; 48 + };
+14
arch/arm64/boot/dts/apple/t8015-d20.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPhone 8 (Global), D20 iPhone10,1 (A1863/A1906/A1907) 4 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "t8015-8.dtsi" 10 + 11 + / { 12 + compatible = "apple,d20", "apple,t8015", "apple,arm-platform"; 13 + model = "Apple iPhone 8 (Global)"; 14 + };
+14
arch/arm64/boot/dts/apple/t8015-d201.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPhone 8 (GSM), D20 iPhone10,4 (A1905) 4 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "t8015-8.dtsi" 10 + 11 + / { 12 + compatible = "apple,d201", "apple,t8015", "apple,arm-platform"; 13 + model = "Apple iPhone 8 (GSM)"; 14 + };
+14
arch/arm64/boot/dts/apple/t8015-d21.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPhone 8 Plus (Global), D21 iPhone10,2 (A1864/A1897/A1898) 4 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "t8015-8plus.dtsi" 10 + 11 + / { 12 + compatible = "apple,d21", "apple,t8015", "apple,arm-platform"; 13 + model = "Apple iPhone 8 Plus (Global)"; 14 + };
+14
arch/arm64/boot/dts/apple/t8015-d211.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPhone 8 Plus (GSM), D211 iPhone10,5 (A1899) 4 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "t8015-8plus.dtsi" 10 + 11 + / { 12 + compatible = "apple,d211", "apple,t8015", "apple,arm-platform"; 13 + model = "Apple iPhone 8 Plus (GSM)"; 14 + };
+14
arch/arm64/boot/dts/apple/t8015-d22.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPhone X (Global), D22, iPhone10,3 (A1865) 4 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "t8015-x.dtsi" 10 + 11 + / { 12 + compatible = "apple,d22", "apple,t8015", "apple,arm-platform"; 13 + model = "Apple iPhone X (Global)"; 14 + };
+14
arch/arm64/boot/dts/apple/t8015-d221.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPhone X (GSM), D221, iPhone10,6 (A1901) 4 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "t8015-x.dtsi" 10 + 11 + / { 12 + compatible = "apple,d221", "apple,t8015", "apple,arm-platform"; 13 + model = "Apple iPhone X (GSM)"; 14 + };
+13
arch/arm64/boot/dts/apple/t8015-x.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple iPhone X common device tree 4 + * 5 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 6 + */ 7 + 8 + #include "t8015.dtsi" 9 + #include "t8015-common.dtsi" 10 + 11 + / { 12 + chassis-type = "handset"; 13 + };
+234
arch/arm64/boot/dts/apple/t8015.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR MIT 2 + /* 3 + * Apple T8015 "A11" SoC 4 + * 5 + * Other names: H10, "Skye" 6 + * 7 + * Copyright (c) 2022, Konrad Dybcio <konradybcio@kernel.org> 8 + */ 9 + 10 + #include <dt-bindings/gpio/gpio.h> 11 + #include <dt-bindings/interrupt-controller/apple-aic.h> 12 + #include <dt-bindings/interrupt-controller/irq.h> 13 + #include <dt-bindings/pinctrl/apple.h> 14 + 15 + / { 16 + interrupt-parent = <&aic>; 17 + #address-cells = <2>; 18 + #size-cells = <2>; 19 + 20 + clkref: clock-ref { 21 + compatible = "fixed-clock"; 22 + #clock-cells = <0>; 23 + clock-frequency = <24000000>; 24 + clock-output-names = "clkref"; 25 + }; 26 + 27 + cpus { 28 + #address-cells = <2>; 29 + #size-cells = <0>; 30 + 31 + cpu-map { 32 + cluster0 { 33 + core0 { 34 + cpu = <&cpu_e0>; 35 + }; 36 + core1 { 37 + cpu = <&cpu_e1>; 38 + }; 39 + core2 { 40 + cpu = <&cpu_e2>; 41 + }; 42 + core3 { 43 + cpu = <&cpu_e3>; 44 + }; 45 + }; 46 + 47 + cluster1 { 48 + core0 { 49 + cpu = <&cpu_p0>; 50 + }; 51 + core1 { 52 + cpu = <&cpu_p1>; 53 + }; 54 + }; 55 + }; 56 + 57 + cpu_e0: cpu@0 { 58 + compatible = "apple,mistral"; 59 + reg = <0x0 0x0>; 60 + cpu-release-addr = <0 0>; /* To be filled by loader */ 61 + enable-method = "spin-table"; 62 + device_type = "cpu"; 63 + }; 64 + 65 + cpu_e1: cpu@1 { 66 + compatible = "apple,mistral"; 67 + reg = <0x0 0x1>; 68 + cpu-release-addr = <0 0>; /* To be filled by loader */ 69 + enable-method = "spin-table"; 70 + device_type = "cpu"; 71 + }; 72 + 73 + cpu_e2: cpu@2 { 74 + compatible = "apple,mistral"; 75 + reg = <0x0 0x2>; 76 + cpu-release-addr = <0 0>; /* To be filled by loader */ 77 + enable-method = "spin-table"; 78 + device_type = "cpu"; 79 + }; 80 + 81 + cpu_e3: cpu@3 { 82 + compatible = "apple,mistral"; 83 + reg = <0x0 0x3>; 84 + cpu-release-addr = <0 0>; /* To be filled by loader */ 85 + enable-method = "spin-table"; 86 + device_type = "cpu"; 87 + }; 88 + 89 + cpu_p0: cpu@10004 { 90 + compatible = "apple,monsoon"; 91 + reg = <0x0 0x10004>; 92 + cpu-release-addr = <0 0>; /* To be filled by loader */ 93 + enable-method = "spin-table"; 94 + device_type = "cpu"; 95 + }; 96 + 97 + cpu_p1: cpu@10005 { 98 + compatible = "apple,monsoon"; 99 + reg = <0x0 0x10005>; 100 + cpu-release-addr = <0 0>; /* To be filled by loader */ 101 + enable-method = "spin-table"; 102 + device_type = "cpu"; 103 + }; 104 + }; 105 + 106 + soc { 107 + compatible = "simple-bus"; 108 + #address-cells = <2>; 109 + #size-cells = <2>; 110 + nonposted-mmio; 111 + ranges; 112 + 113 + serial0: serial@22e600000 { 114 + compatible = "apple,s5l-uart"; 115 + reg = <0x2 0x2e600000 0x0 0x4000>; 116 + reg-io-width = <4>; 117 + interrupt-parent = <&aic>; 118 + interrupts = <AIC_IRQ 282 IRQ_TYPE_LEVEL_HIGH>; 119 + /* Use the bootloader-enabled clocks for now. */ 120 + clocks = <&clkref>, <&clkref>; 121 + clock-names = "uart", "clk_uart_baud0"; 122 + status = "disabled"; 123 + }; 124 + 125 + aic: interrupt-controller@232100000 { 126 + compatible = "apple,t8015-aic", "apple,aic"; 127 + reg = <0x2 0x32100000 0x0 0x8000>; 128 + #interrupt-cells = <3>; 129 + interrupt-controller; 130 + }; 131 + 132 + pinctrl_ap: pinctrl@233100000 { 133 + compatible = "apple,t8015-pinctrl", "apple,pinctrl"; 134 + reg = <0x2 0x33100000 0x0 0x1000>; 135 + 136 + gpio-controller; 137 + #gpio-cells = <2>; 138 + gpio-ranges = <&pinctrl_ap 0 0 223>; 139 + apple,npins = <223>; 140 + 141 + interrupt-controller; 142 + #interrupt-cells = <2>; 143 + interrupt-parent = <&aic>; 144 + interrupts = <AIC_IRQ 50 IRQ_TYPE_LEVEL_HIGH>, 145 + <AIC_IRQ 51 IRQ_TYPE_LEVEL_HIGH>, 146 + <AIC_IRQ 52 IRQ_TYPE_LEVEL_HIGH>, 147 + <AIC_IRQ 53 IRQ_TYPE_LEVEL_HIGH>, 148 + <AIC_IRQ 54 IRQ_TYPE_LEVEL_HIGH>, 149 + <AIC_IRQ 55 IRQ_TYPE_LEVEL_HIGH>, 150 + <AIC_IRQ 56 IRQ_TYPE_LEVEL_HIGH>; 151 + }; 152 + 153 + pinctrl_aop: pinctrl@2340f0000 { 154 + compatible = "apple,t8015-pinctrl", "apple,pinctrl"; 155 + reg = <0x2 0x340f0000 0x0 0x4000>; 156 + 157 + gpio-controller; 158 + #gpio-cells = <2>; 159 + gpio-ranges = <&pinctrl_aop 0 0 49>; 160 + apple,npins = <49>; 161 + 162 + interrupt-controller; 163 + #interrupt-cells = <2>; 164 + interrupt-parent = <&aic>; 165 + interrupts = <AIC_IRQ 135 IRQ_TYPE_LEVEL_HIGH>, 166 + <AIC_IRQ 136 IRQ_TYPE_LEVEL_HIGH>, 167 + <AIC_IRQ 137 IRQ_TYPE_LEVEL_HIGH>, 168 + <AIC_IRQ 138 IRQ_TYPE_LEVEL_HIGH>, 169 + <AIC_IRQ 139 IRQ_TYPE_LEVEL_HIGH>, 170 + <AIC_IRQ 140 IRQ_TYPE_LEVEL_HIGH>, 171 + <AIC_IRQ 141 IRQ_TYPE_LEVEL_HIGH>; 172 + }; 173 + 174 + pinctrl_nub: pinctrl@2351f0000 { 175 + compatible = "apple,t8015-pinctrl", "apple,pinctrl"; 176 + reg = <0x2 0x351f0000 0x0 0x4000>; 177 + 178 + gpio-controller; 179 + #gpio-cells = <2>; 180 + gpio-ranges = <&pinctrl_nub 0 0 8>; 181 + apple,npins = <8>; 182 + 183 + interrupt-controller; 184 + #interrupt-cells = <2>; 185 + interrupt-parent = <&aic>; 186 + interrupts = <AIC_IRQ 168 IRQ_TYPE_LEVEL_HIGH>, 187 + <AIC_IRQ 169 IRQ_TYPE_LEVEL_HIGH>, 188 + <AIC_IRQ 170 IRQ_TYPE_LEVEL_HIGH>; 189 + }; 190 + 191 + wdt: watchdog@2352b0000 { 192 + compatible = "apple,t8015-wdt", "apple,wdt"; 193 + reg = <0x2 0x352b0000 0x0 0x4000>; 194 + clocks = <&clkref>; 195 + interrupt-parent = <&aic>; 196 + interrupts = <AIC_IRQ 172 IRQ_TYPE_LEVEL_HIGH>; 197 + }; 198 + 199 + pinctrl_smc: pinctrl@236024000 { 200 + compatible = "apple,t8015-pinctrl", "apple,pinctrl"; 201 + reg = <0x2 0x36024000 0x0 0x4000>; 202 + 203 + gpio-controller; 204 + #gpio-cells = <2>; 205 + gpio-ranges = <&pinctrl_smc 0 0 6>; 206 + apple,npins = <6>; 207 + 208 + interrupt-controller; 209 + #interrupt-cells = <2>; 210 + interrupt-parent = <&aic>; 211 + interrupts = <AIC_IRQ 199 IRQ_TYPE_LEVEL_HIGH>, 212 + <AIC_IRQ 200 IRQ_TYPE_LEVEL_HIGH>, 213 + <AIC_IRQ 201 IRQ_TYPE_LEVEL_HIGH>, 214 + <AIC_IRQ 202 IRQ_TYPE_LEVEL_HIGH>, 215 + <AIC_IRQ 203 IRQ_TYPE_LEVEL_HIGH>, 216 + <AIC_IRQ 204 IRQ_TYPE_LEVEL_HIGH>, 217 + <AIC_IRQ 205 IRQ_TYPE_LEVEL_HIGH>; 218 + /* 219 + * SMC is not yet supported and accessing this pinctrl while SMC is 220 + * suspended results in a hang. 221 + */ 222 + status = "disabled"; 223 + }; 224 + }; 225 + 226 + timer { 227 + compatible = "arm,armv8-timer"; 228 + interrupt-parent = <&aic>; 229 + interrupt-names = "phys", "virt"; 230 + /* Note that A11 doesn't actually have a hypervisor (EL2 is not implemented). */ 231 + interrupts = <AIC_FIQ AIC_TMR_GUEST_PHYS IRQ_TYPE_LEVEL_HIGH>, 232 + <AIC_FIQ AIC_TMR_GUEST_VIRT IRQ_TYPE_LEVEL_HIGH>; 233 + }; 234 + };