1*7d2d16ccSHector Martin// SPDX-License-Identifier: GPL-2.0+ OR MIT 2*7d2d16ccSHector Martin/* 3*7d2d16ccSHector Martin * Apple T8103 "M1" SoC 4*7d2d16ccSHector Martin * 5*7d2d16ccSHector Martin * Other names: H13G, "Tonga" 6*7d2d16ccSHector Martin * 7*7d2d16ccSHector Martin * Copyright The Asahi Linux Contributors 8*7d2d16ccSHector Martin */ 9*7d2d16ccSHector Martin 10*7d2d16ccSHector Martin#include <dt-bindings/interrupt-controller/apple-aic.h> 11*7d2d16ccSHector Martin#include <dt-bindings/interrupt-controller/irq.h> 12*7d2d16ccSHector Martin 13*7d2d16ccSHector Martin/ { 14*7d2d16ccSHector Martin compatible = "apple,t8103", "apple,arm-platform"; 15*7d2d16ccSHector Martin 16*7d2d16ccSHector Martin #address-cells = <2>; 17*7d2d16ccSHector Martin #size-cells = <2>; 18*7d2d16ccSHector Martin 19*7d2d16ccSHector Martin cpus { 20*7d2d16ccSHector Martin #address-cells = <2>; 21*7d2d16ccSHector Martin #size-cells = <0>; 22*7d2d16ccSHector Martin 23*7d2d16ccSHector Martin cpu0: cpu@0 { 24*7d2d16ccSHector Martin compatible = "apple,icestorm"; 25*7d2d16ccSHector Martin device_type = "cpu"; 26*7d2d16ccSHector Martin reg = <0x0 0x0>; 27*7d2d16ccSHector Martin enable-method = "spin-table"; 28*7d2d16ccSHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 29*7d2d16ccSHector Martin }; 30*7d2d16ccSHector Martin 31*7d2d16ccSHector Martin cpu1: cpu@1 { 32*7d2d16ccSHector Martin compatible = "apple,icestorm"; 33*7d2d16ccSHector Martin device_type = "cpu"; 34*7d2d16ccSHector Martin reg = <0x0 0x1>; 35*7d2d16ccSHector Martin enable-method = "spin-table"; 36*7d2d16ccSHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 37*7d2d16ccSHector Martin }; 38*7d2d16ccSHector Martin 39*7d2d16ccSHector Martin cpu2: cpu@2 { 40*7d2d16ccSHector Martin compatible = "apple,icestorm"; 41*7d2d16ccSHector Martin device_type = "cpu"; 42*7d2d16ccSHector Martin reg = <0x0 0x2>; 43*7d2d16ccSHector Martin enable-method = "spin-table"; 44*7d2d16ccSHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 45*7d2d16ccSHector Martin }; 46*7d2d16ccSHector Martin 47*7d2d16ccSHector Martin cpu3: cpu@3 { 48*7d2d16ccSHector Martin compatible = "apple,icestorm"; 49*7d2d16ccSHector Martin device_type = "cpu"; 50*7d2d16ccSHector Martin reg = <0x0 0x3>; 51*7d2d16ccSHector Martin enable-method = "spin-table"; 52*7d2d16ccSHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 53*7d2d16ccSHector Martin }; 54*7d2d16ccSHector Martin 55*7d2d16ccSHector Martin cpu4: cpu@10100 { 56*7d2d16ccSHector Martin compatible = "apple,firestorm"; 57*7d2d16ccSHector Martin device_type = "cpu"; 58*7d2d16ccSHector Martin reg = <0x0 0x10100>; 59*7d2d16ccSHector Martin enable-method = "spin-table"; 60*7d2d16ccSHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 61*7d2d16ccSHector Martin }; 62*7d2d16ccSHector Martin 63*7d2d16ccSHector Martin cpu5: cpu@10101 { 64*7d2d16ccSHector Martin compatible = "apple,firestorm"; 65*7d2d16ccSHector Martin device_type = "cpu"; 66*7d2d16ccSHector Martin reg = <0x0 0x10101>; 67*7d2d16ccSHector Martin enable-method = "spin-table"; 68*7d2d16ccSHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 69*7d2d16ccSHector Martin }; 70*7d2d16ccSHector Martin 71*7d2d16ccSHector Martin cpu6: cpu@10102 { 72*7d2d16ccSHector Martin compatible = "apple,firestorm"; 73*7d2d16ccSHector Martin device_type = "cpu"; 74*7d2d16ccSHector Martin reg = <0x0 0x10102>; 75*7d2d16ccSHector Martin enable-method = "spin-table"; 76*7d2d16ccSHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 77*7d2d16ccSHector Martin }; 78*7d2d16ccSHector Martin 79*7d2d16ccSHector Martin cpu7: cpu@10103 { 80*7d2d16ccSHector Martin compatible = "apple,firestorm"; 81*7d2d16ccSHector Martin device_type = "cpu"; 82*7d2d16ccSHector Martin reg = <0x0 0x10103>; 83*7d2d16ccSHector Martin enable-method = "spin-table"; 84*7d2d16ccSHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 85*7d2d16ccSHector Martin }; 86*7d2d16ccSHector Martin }; 87*7d2d16ccSHector Martin 88*7d2d16ccSHector Martin timer { 89*7d2d16ccSHector Martin compatible = "arm,armv8-timer"; 90*7d2d16ccSHector Martin interrupt-parent = <&aic>; 91*7d2d16ccSHector Martin interrupt-names = "phys", "virt", "hyp-phys", "hyp-virt"; 92*7d2d16ccSHector Martin interrupts = <AIC_FIQ AIC_TMR_GUEST_PHYS IRQ_TYPE_LEVEL_HIGH>, 93*7d2d16ccSHector Martin <AIC_FIQ AIC_TMR_GUEST_VIRT IRQ_TYPE_LEVEL_HIGH>, 94*7d2d16ccSHector Martin <AIC_FIQ AIC_TMR_HV_PHYS IRQ_TYPE_LEVEL_HIGH>, 95*7d2d16ccSHector Martin <AIC_FIQ AIC_TMR_HV_VIRT IRQ_TYPE_LEVEL_HIGH>; 96*7d2d16ccSHector Martin }; 97*7d2d16ccSHector Martin 98*7d2d16ccSHector Martin clk24: clock-24m { 99*7d2d16ccSHector Martin compatible = "fixed-clock"; 100*7d2d16ccSHector Martin #clock-cells = <0>; 101*7d2d16ccSHector Martin clock-frequency = <24000000>; 102*7d2d16ccSHector Martin clock-output-names = "clk24"; 103*7d2d16ccSHector Martin }; 104*7d2d16ccSHector Martin 105*7d2d16ccSHector Martin soc { 106*7d2d16ccSHector Martin compatible = "simple-bus"; 107*7d2d16ccSHector Martin #address-cells = <2>; 108*7d2d16ccSHector Martin #size-cells = <2>; 109*7d2d16ccSHector Martin 110*7d2d16ccSHector Martin ranges; 111*7d2d16ccSHector Martin nonposted-mmio; 112*7d2d16ccSHector Martin 113*7d2d16ccSHector Martin serial0: serial@235200000 { 114*7d2d16ccSHector Martin compatible = "apple,s5l-uart"; 115*7d2d16ccSHector Martin reg = <0x2 0x35200000 0x0 0x1000>; 116*7d2d16ccSHector Martin reg-io-width = <4>; 117*7d2d16ccSHector Martin interrupt-parent = <&aic>; 118*7d2d16ccSHector Martin interrupts = <AIC_IRQ 605 IRQ_TYPE_LEVEL_HIGH>; 119*7d2d16ccSHector Martin /* 120*7d2d16ccSHector Martin * TODO: figure out the clocking properly, there may 121*7d2d16ccSHector Martin * be a third selectable clock. 122*7d2d16ccSHector Martin */ 123*7d2d16ccSHector Martin clocks = <&clk24>, <&clk24>; 124*7d2d16ccSHector Martin clock-names = "uart", "clk_uart_baud0"; 125*7d2d16ccSHector Martin status = "disabled"; 126*7d2d16ccSHector Martin }; 127*7d2d16ccSHector Martin 128*7d2d16ccSHector Martin aic: interrupt-controller@23b100000 { 129*7d2d16ccSHector Martin compatible = "apple,t8103-aic", "apple,aic"; 130*7d2d16ccSHector Martin #interrupt-cells = <3>; 131*7d2d16ccSHector Martin interrupt-controller; 132*7d2d16ccSHector Martin reg = <0x2 0x3b100000 0x0 0x8000>; 133*7d2d16ccSHector Martin }; 134*7d2d16ccSHector Martin }; 135*7d2d16ccSHector Martin}; 136