Re: [PATCH v6 RESEND 00/20] Initial device trees for A7-A11 based Apple devices

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Oct 23, 2024 at 12:44 AM Nick Chan <towinchenmi@xxxxxxxxx> wrote:
>
> Hi,
>
> This series adds device trees for all A7-A11 SoC based iPhones, iPads,
> iPod touches and Apple TVs.
>
> The following devices has been excluded from this series:
>   - All T2 devices (A10-based): bootloader does not work (yet)
>   - HomePod: Not tested, and it's also a different form factor
>
> To pass `make dtbs_check`, please install the latest dtschema from the main
> branch, for the `television` chassis type.
>
> This series supports the following on all devices:
> - SMP (spin-table)
> - UART
> - simple-framebuffer
> - watchdog
> - timer
> - pinctrl
> - AIC interrupts
>
> The following is supported on A7-A10:
> - Buttons and switches (with pinctrl)
> The buttons on A11 based devices like the iPhone X is a subdevice of the
> not yet supported SMC.
>
> Patch dependencies:
> - A patch to increase the reset delay in the watchdog driver[1] are
> needed on some SoCs to avoid the "Reboot Failed" message. (The
> system will reset regardless of the patch)
>
> Authorship information:
> - The commits to actually add the dts files are mostly made by Konrad,
> and Konrad's sign-off is added by me with permission. I also updated the
> Konrad's email in the actual dts files. Konrad can confirm this.
>
> - Everything else is entirely made by me.
>
> Changes since v5:
>  - Changed how device trees are split. {soc}.dtsi now only contain on-SoC
>    parts, and parts common to all devices using a soc is in
>    {soc}-common.dtsi. For A9 devices the common .dtsi is
>    "s800-0-3-common.dtsi". For A8 devices additonally there is
>    "t7000-handheld.dtsi" to group iPhones, iPad and iPod touches from
>    Apple TVs.
>  - For other SoCs, either all devices are handheld or there are only one
>    type of handheld devices using it, so no handheld .dtsi is needed.
>  - This is closer to how the existing device trees are split, and will
>    allow nodes likes power manager and battery to be added more easily.
>  - Fixed Apple TV HD serial debug console. It is serial6, not serial0.
>
> Changes since v4:
>   - Removed incorrect commit message about the order of CPU cores
>     in the commit adding Apple A7-A11 CPU cores.
>   - Update tags on commit added A8X device tree files, requested by
>     Markuss.
>
> Changes since v3:
>   - Properly seperate A10X dt-binding additions and dts additions.
>   - Apple CPU cores, including the existing ones are now ordered
>     alphabetically.
>
> Changes since v2:
>   - Removed A10 cpufreq. The loader may be missing some initialization
>     code that just happened to be performed by some versions of the
>     firmware as well, given the inconsistent behavior on different
>     devices. It is also possible that the driver needs to be modified,
>     I do not know and this needs more research first.
>
>   - Removed Ivaylo's tags on commit to add A8X device trees, seems he
>     does not want those anymore[2].
>   - Added Ivaylo's tags on commit to add A8 device tree, I have missed
>     the tag. See [3] for source of those tags.
>   - Added Conor's missing A-b on the commit to add A7 machine bindings.
>
> Changes since v1:
>   - Added /chassis-type property
>   - Added opp-microvolt in A10 cpufreq for documentation purposes
>   - Home button is now assigned KEY_HOMEPAGE
>   - Fixed t8010-n112.dts and do not remove it from Makefile in later
>     commits... (iPod touch 7)
>
> In order to be consistent with the Apple ARM Machines bindings,
> the order of dt-bindings did not change from v1.
>
> The sort order logic here is having SoC type families in release
> order, and SoCs within each family in release order:
>
> - t8xxx/t700x/s5l8960x (Apple HxxP/G series, "phone"/"tablet" chips)
>    - s5l8960x (Apple H6/A7)
>    - t7000 (Apple H7P/A8)
>    - t7001 (Apple H7G/A8X)
>    - s8000/3 (Apple H8P/A9)
>    - s8001 (Apple H8G/A9X)
>    - t8010 (Apple H9P/A10)
>    - t8011 (Apple H9G/A10X)
>    - t8015 (Apple H10/A11)
>    - t8103 (Apple H13G/M1)
>    - t8112 (Apple H14G/M2)
> - t6xxx (Apple HxxJ series, "desktop" chips)
>    - t6000 (Apple H13J(S)/M1 Pro)
>    - t6001 (Apple H13J(C)/M1 Max)
>    - t6002 (Apple H13J(D)/M1 Ultra)
>
> At this moment, it is expected that most hardware blocks will be 100%
> compatible between A-series and AX-series SoCs, though to a less extent
> than compatibility between desktop chips of the same generation.
>
> v1: https://lore.kernel.org/asahi/20240911084353.28888-2-towinchenmi@xxxxxxxxx
> v2: https://lore.kernel.org/asahi/20240914052413.68177-1-towinchenmi@xxxxxxxxx
> v3: https://lore.kernel.org/asahi/20240915080733.3565-1-towinchenmi@xxxxxxxxx
> v4: https://lore.kernel.org/asahi/20240919161443.10340-1-towinchenmi@xxxxxxxxx
> v5: https://lore.kernel.org/asahi/20240925071939.6107-1-towinchenmi@xxxxxxxxx
>
> [1]: https://lore.kernel.org/asahi/20241001170018.20139-1-towinchenmi@xxxxxxxxx
> [2]: https://lore.kernel.org/asahi/34c748fe-89d2-d3a5-599d-52972c10f688@xxxxxxxxx
> [3]: https://github.com/konradybcio/linux-apple/commits/apple/v5.19-rc1
>
> Nick Chan
> ---
>
> Konrad Dybcio (8):
>   arm64: dts: apple: Add A7 devices
>   arm64: dts: apple: Add A8 devices
>   arm64: dts: apple: Add A8X devices
>   arm64: dts: apple: Add A9 devices
>   arm64: dts: apple: Add A9X devices
>   arm64: dts: apple: Add A10 devices
>   arm64: dts: apple: Add A10X devices
>   arm64: dts: apple: Add A11 devices
>
> Nick Chan (12):
>   dt-bindings: arm: cpus: Add Apple A7-A11 CPU cores
>   dt-bindings: watchdog: apple,wdt: Add A7-A11 compatibles
>   dt-bindings: pinctrl: apple,pinctrl: Add A7-A11 compatibles
>   dt-bindings: arm: apple: Add A7 devices
>   dt-bindings: arm: apple: Add A8 devices
>   dt-bindings: arm: apple: Add A8X devices
>   dt-bindings: arm: apple: Add A9 devices
>   dt-bindings: arm: apple: Add A9X devices
>   dt-bindings: arm: apple: Add A10 devices
>   dt-bindings: arm: apple: Add A10X devices
>   dt-bindings: arm: apple: Add A11 devices
>   arm64: Kconfig: Update help text for CONFIG_ARCH_APPLE
>
>  .../devicetree/bindings/arm/apple.yaml        | 160 +++++++++++-
>  .../devicetree/bindings/arm/cpus.yaml         |   8 +-
>  .../bindings/pinctrl/apple,pinctrl.yaml       |   5 +
>  .../bindings/watchdog/apple,wdt.yaml          |   5 +
>  arch/arm64/Kconfig.platforms                  |   4 +-
>  arch/arm64/boot/dts/apple/Makefile            |  53 ++++
>  arch/arm64/boot/dts/apple/s5l8960x-5s.dtsi    |  51 ++++
>  arch/arm64/boot/dts/apple/s5l8960x-air1.dtsi  |  51 ++++
>  .../arm64/boot/dts/apple/s5l8960x-common.dtsi |  48 ++++
>  arch/arm64/boot/dts/apple/s5l8960x-j71.dts    |  14 ++
>  arch/arm64/boot/dts/apple/s5l8960x-j72.dts    |  14 ++
>  arch/arm64/boot/dts/apple/s5l8960x-j73.dts    |  14 ++
>  arch/arm64/boot/dts/apple/s5l8960x-j85.dts    |  14 ++
>  arch/arm64/boot/dts/apple/s5l8960x-j85m.dts   |  14 ++
>  arch/arm64/boot/dts/apple/s5l8960x-j86.dts    |  14 ++
>  arch/arm64/boot/dts/apple/s5l8960x-j86m.dts   |  14 ++
>  arch/arm64/boot/dts/apple/s5l8960x-j87.dts    |  14 ++
>  arch/arm64/boot/dts/apple/s5l8960x-j87m.dts   |  14 ++
>  arch/arm64/boot/dts/apple/s5l8960x-mini2.dtsi |  51 ++++
>  arch/arm64/boot/dts/apple/s5l8960x-mini3.dtsi |  14 ++
>  arch/arm64/boot/dts/apple/s5l8960x-n51.dts    |  14 ++
>  arch/arm64/boot/dts/apple/s5l8960x-n53.dts    |  14 ++
>  arch/arm64/boot/dts/apple/s5l8960x.dtsi       | 113 +++++++++
>  .../arm64/boot/dts/apple/s800-0-3-common.dtsi |  48 ++++
>  arch/arm64/boot/dts/apple/s8000-j71s.dts      |  15 ++
>  arch/arm64/boot/dts/apple/s8000-j72s.dts      |  15 ++
>  arch/arm64/boot/dts/apple/s8000-n66.dts       |  15 ++
>  arch/arm64/boot/dts/apple/s8000-n69u.dts      |  15 ++
>  arch/arm64/boot/dts/apple/s8000-n71.dts       |  15 ++
>  arch/arm64/boot/dts/apple/s8000.dtsi          | 144 +++++++++++
>  arch/arm64/boot/dts/apple/s8001-common.dtsi   |  48 ++++
>  arch/arm64/boot/dts/apple/s8001-j127.dts      |  14 ++
>  arch/arm64/boot/dts/apple/s8001-j128.dts      |  14 ++
>  arch/arm64/boot/dts/apple/s8001-j98a.dts      |  14 ++
>  arch/arm64/boot/dts/apple/s8001-j99a.dts      |  14 ++
>  arch/arm64/boot/dts/apple/s8001-pro.dtsi      |  44 ++++
>  arch/arm64/boot/dts/apple/s8001.dtsi          | 133 ++++++++++
>  arch/arm64/boot/dts/apple/s8003-j71t.dts      |  15 ++
>  arch/arm64/boot/dts/apple/s8003-j72t.dts      |  15 ++
>  arch/arm64/boot/dts/apple/s8003-n66m.dts      |  15 ++
>  arch/arm64/boot/dts/apple/s8003-n69.dts       |  15 ++
>  arch/arm64/boot/dts/apple/s8003-n71m.dts      |  15 ++
>  arch/arm64/boot/dts/apple/s8003.dtsi          |  21 ++
>  arch/arm64/boot/dts/apple/s800x-6s.dtsi       |  49 ++++
>  arch/arm64/boot/dts/apple/s800x-ipad5.dtsi    |  43 ++++
>  arch/arm64/boot/dts/apple/s800x-se.dtsi       |  49 ++++
>  arch/arm64/boot/dts/apple/t7000-6.dtsi        |  50 ++++
>  arch/arm64/boot/dts/apple/t7000-common.dtsi   |  36 +++
>  arch/arm64/boot/dts/apple/t7000-handheld.dtsi |  27 ++
>  arch/arm64/boot/dts/apple/t7000-j42d.dts      |  31 +++
>  arch/arm64/boot/dts/apple/t7000-j96.dts       |  14 ++
>  arch/arm64/boot/dts/apple/t7000-j97.dts       |  14 ++
>  arch/arm64/boot/dts/apple/t7000-mini4.dtsi    |  51 ++++
>  arch/arm64/boot/dts/apple/t7000-n102.dts      |  48 ++++
>  arch/arm64/boot/dts/apple/t7000-n56.dts       |  14 ++
>  arch/arm64/boot/dts/apple/t7000-n61.dts       |  14 ++
>  arch/arm64/boot/dts/apple/t7000.dtsi          | 125 ++++++++++
>  arch/arm64/boot/dts/apple/t7001-air2.dtsi     |  74 ++++++
>  arch/arm64/boot/dts/apple/t7001-j81.dts       |  14 ++
>  arch/arm64/boot/dts/apple/t7001-j82.dts       |  14 ++
>  arch/arm64/boot/dts/apple/t7001.dtsi          | 123 +++++++++
>  arch/arm64/boot/dts/apple/t8010-7.dtsi        |  43 ++++
>  arch/arm64/boot/dts/apple/t8010-common.dtsi   |  48 ++++
>  arch/arm64/boot/dts/apple/t8010-d10.dts       |  14 ++
>  arch/arm64/boot/dts/apple/t8010-d101.dts      |  14 ++
>  arch/arm64/boot/dts/apple/t8010-d11.dts       |  14 ++
>  arch/arm64/boot/dts/apple/t8010-d111.dts      |  14 ++
>  arch/arm64/boot/dts/apple/t8010-ipad6.dtsi    |  44 ++++
>  arch/arm64/boot/dts/apple/t8010-ipad7.dtsi    |  14 ++
>  arch/arm64/boot/dts/apple/t8010-j171.dts      |  14 ++
>  arch/arm64/boot/dts/apple/t8010-j172.dts      |  14 ++
>  arch/arm64/boot/dts/apple/t8010-j71b.dts      |  14 ++
>  arch/arm64/boot/dts/apple/t8010-j72b.dts      |  14 ++
>  arch/arm64/boot/dts/apple/t8010-n112.dts      |  47 ++++
>  arch/arm64/boot/dts/apple/t8010.dtsi          | 133 ++++++++++
>  arch/arm64/boot/dts/apple/t8011-common.dtsi   |  46 ++++
>  arch/arm64/boot/dts/apple/t8011-j105a.dts     |  16 ++
>  arch/arm64/boot/dts/apple/t8011-j120.dts      |  16 ++
>  arch/arm64/boot/dts/apple/t8011-j121.dts      |  16 ++
>  arch/arm64/boot/dts/apple/t8011-j207.dts      |  16 ++
>  arch/arm64/boot/dts/apple/t8011-j208.dts      |  16 ++
>  arch/arm64/boot/dts/apple/t8011-pro2.dtsi     |  42 ++++
>  arch/arm64/boot/dts/apple/t8011.dtsi          | 141 +++++++++++
>  arch/arm64/boot/dts/apple/t8015-8.dtsi        |  13 +
>  arch/arm64/boot/dts/apple/t8015-8plus.dtsi    |   9 +
>  arch/arm64/boot/dts/apple/t8015-common.dtsi   |  48 ++++
>  arch/arm64/boot/dts/apple/t8015-d20.dts       |  14 ++
>  arch/arm64/boot/dts/apple/t8015-d201.dts      |  14 ++
>  arch/arm64/boot/dts/apple/t8015-d21.dts       |  14 ++
>  arch/arm64/boot/dts/apple/t8015-d211.dts      |  14 ++
>  arch/arm64/boot/dts/apple/t8015-d22.dts       |  14 ++
>  arch/arm64/boot/dts/apple/t8015-d221.dts      |  14 ++
>  arch/arm64/boot/dts/apple/t8015-x.dtsi        |  13 +
>  arch/arm64/boot/dts/apple/t8015.dtsi          | 234 ++++++++++++++++++
>  94 files changed, 3298 insertions(+), 4 deletions(-)
>  create mode 100644 arch/arm64/boot/dts/apple/s5l8960x-5s.dtsi
>  create mode 100644 arch/arm64/boot/dts/apple/s5l8960x-air1.dtsi
>  create mode 100644 arch/arm64/boot/dts/apple/s5l8960x-common.dtsi
>  create mode 100644 arch/arm64/boot/dts/apple/s5l8960x-j71.dts
>  create mode 100644 arch/arm64/boot/dts/apple/s5l8960x-j72.dts
>  create mode 100644 arch/arm64/boot/dts/apple/s5l8960x-j73.dts
>  create mode 100644 arch/arm64/boot/dts/apple/s5l8960x-j85.dts
>  create mode 100644 arch/arm64/boot/dts/apple/s5l8960x-j85m.dts
>  create mode 100644 arch/arm64/boot/dts/apple/s5l8960x-j86.dts
>  create mode 100644 arch/arm64/boot/dts/apple/s5l8960x-j86m.dts
>  create mode 100644 arch/arm64/boot/dts/apple/s5l8960x-j87.dts
>  create mode 100644 arch/arm64/boot/dts/apple/s5l8960x-j87m.dts
>  create mode 100644 arch/arm64/boot/dts/apple/s5l8960x-mini2.dtsi
>  create mode 100644 arch/arm64/boot/dts/apple/s5l8960x-mini3.dtsi
>  create mode 100644 arch/arm64/boot/dts/apple/s5l8960x-n51.dts
>  create mode 100644 arch/arm64/boot/dts/apple/s5l8960x-n53.dts
>  create mode 100644 arch/arm64/boot/dts/apple/s5l8960x.dtsi
>  create mode 100644 arch/arm64/boot/dts/apple/s800-0-3-common.dtsi
>  create mode 100644 arch/arm64/boot/dts/apple/s8000-j71s.dts
>  create mode 100644 arch/arm64/boot/dts/apple/s8000-j72s.dts
>  create mode 100644 arch/arm64/boot/dts/apple/s8000-n66.dts
>  create mode 100644 arch/arm64/boot/dts/apple/s8000-n69u.dts
>  create mode 100644 arch/arm64/boot/dts/apple/s8000-n71.dts
>  create mode 100644 arch/arm64/boot/dts/apple/s8000.dtsi
>  create mode 100644 arch/arm64/boot/dts/apple/s8001-common.dtsi
>  create mode 100644 arch/arm64/boot/dts/apple/s8001-j127.dts
>  create mode 100644 arch/arm64/boot/dts/apple/s8001-j128.dts
>  create mode 100644 arch/arm64/boot/dts/apple/s8001-j98a.dts
>  create mode 100644 arch/arm64/boot/dts/apple/s8001-j99a.dts
>  create mode 100644 arch/arm64/boot/dts/apple/s8001-pro.dtsi
>  create mode 100644 arch/arm64/boot/dts/apple/s8001.dtsi
>  create mode 100644 arch/arm64/boot/dts/apple/s8003-j71t.dts
>  create mode 100644 arch/arm64/boot/dts/apple/s8003-j72t.dts
>  create mode 100644 arch/arm64/boot/dts/apple/s8003-n66m.dts
>  create mode 100644 arch/arm64/boot/dts/apple/s8003-n69.dts
>  create mode 100644 arch/arm64/boot/dts/apple/s8003-n71m.dts
>  create mode 100644 arch/arm64/boot/dts/apple/s8003.dtsi
>  create mode 100644 arch/arm64/boot/dts/apple/s800x-6s.dtsi
>  create mode 100644 arch/arm64/boot/dts/apple/s800x-ipad5.dtsi
>  create mode 100644 arch/arm64/boot/dts/apple/s800x-se.dtsi
>  create mode 100644 arch/arm64/boot/dts/apple/t7000-6.dtsi
>  create mode 100644 arch/arm64/boot/dts/apple/t7000-common.dtsi
>  create mode 100644 arch/arm64/boot/dts/apple/t7000-handheld.dtsi
>  create mode 100644 arch/arm64/boot/dts/apple/t7000-j42d.dts
>  create mode 100644 arch/arm64/boot/dts/apple/t7000-j96.dts
>  create mode 100644 arch/arm64/boot/dts/apple/t7000-j97.dts
>  create mode 100644 arch/arm64/boot/dts/apple/t7000-mini4.dtsi
>  create mode 100644 arch/arm64/boot/dts/apple/t7000-n102.dts
>  create mode 100644 arch/arm64/boot/dts/apple/t7000-n56.dts
>  create mode 100644 arch/arm64/boot/dts/apple/t7000-n61.dts
>  create mode 100644 arch/arm64/boot/dts/apple/t7000.dtsi
>  create mode 100644 arch/arm64/boot/dts/apple/t7001-air2.dtsi
>  create mode 100644 arch/arm64/boot/dts/apple/t7001-j81.dts
>  create mode 100644 arch/arm64/boot/dts/apple/t7001-j82.dts
>  create mode 100644 arch/arm64/boot/dts/apple/t7001.dtsi
>  create mode 100644 arch/arm64/boot/dts/apple/t8010-7.dtsi
>  create mode 100644 arch/arm64/boot/dts/apple/t8010-common.dtsi
>  create mode 100644 arch/arm64/boot/dts/apple/t8010-d10.dts
>  create mode 100644 arch/arm64/boot/dts/apple/t8010-d101.dts
>  create mode 100644 arch/arm64/boot/dts/apple/t8010-d11.dts
>  create mode 100644 arch/arm64/boot/dts/apple/t8010-d111.dts
>  create mode 100644 arch/arm64/boot/dts/apple/t8010-ipad6.dtsi
>  create mode 100644 arch/arm64/boot/dts/apple/t8010-ipad7.dtsi
>  create mode 100644 arch/arm64/boot/dts/apple/t8010-j171.dts
>  create mode 100644 arch/arm64/boot/dts/apple/t8010-j172.dts
>  create mode 100644 arch/arm64/boot/dts/apple/t8010-j71b.dts
>  create mode 100644 arch/arm64/boot/dts/apple/t8010-j72b.dts
>  create mode 100644 arch/arm64/boot/dts/apple/t8010-n112.dts
>  create mode 100644 arch/arm64/boot/dts/apple/t8010.dtsi
>  create mode 100644 arch/arm64/boot/dts/apple/t8011-common.dtsi
>  create mode 100644 arch/arm64/boot/dts/apple/t8011-j105a.dts
>  create mode 100644 arch/arm64/boot/dts/apple/t8011-j120.dts
>  create mode 100644 arch/arm64/boot/dts/apple/t8011-j121.dts
>  create mode 100644 arch/arm64/boot/dts/apple/t8011-j207.dts
>  create mode 100644 arch/arm64/boot/dts/apple/t8011-j208.dts
>  create mode 100644 arch/arm64/boot/dts/apple/t8011-pro2.dtsi
>  create mode 100644 arch/arm64/boot/dts/apple/t8011.dtsi
>  create mode 100644 arch/arm64/boot/dts/apple/t8015-8.dtsi
>  create mode 100644 arch/arm64/boot/dts/apple/t8015-8plus.dtsi
>  create mode 100644 arch/arm64/boot/dts/apple/t8015-common.dtsi
>  create mode 100644 arch/arm64/boot/dts/apple/t8015-d20.dts
>  create mode 100644 arch/arm64/boot/dts/apple/t8015-d201.dts
>  create mode 100644 arch/arm64/boot/dts/apple/t8015-d21.dts
>  create mode 100644 arch/arm64/boot/dts/apple/t8015-d211.dts
>  create mode 100644 arch/arm64/boot/dts/apple/t8015-d22.dts
>  create mode 100644 arch/arm64/boot/dts/apple/t8015-d221.dts
>  create mode 100644 arch/arm64/boot/dts/apple/t8015-x.dtsi
>  create mode 100644 arch/arm64/boot/dts/apple/t8015.dtsi
>
>
> base-commit: 7436324ebd147598f940dde1335b7979dbccc339
> --
> 2.47.0
>
>

Series LGTM.

Reviewed-by: Neal Gompa <neal@xxxxxxxxx>



-- 
真実はいつも一つ!/ Always, there's only one truth!





[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux