diff options
Diffstat (limited to 'arch/arm/dts/t8103.dtsi')
| -rw-r--r-- | arch/arm/dts/t8103.dtsi | 675 |
1 files changed, 404 insertions, 271 deletions
diff --git a/arch/arm/dts/t8103.dtsi b/arch/arm/dts/t8103.dtsi index 03d8436fece..ed7840f94b6 100644 --- a/arch/arm/dts/t8103.dtsi +++ b/arch/arm/dts/t8103.dtsi @@ -11,7 +11,6 @@ #include <dt-bindings/interrupt-controller/apple-aic.h> #include <dt-bindings/interrupt-controller/irq.h> #include <dt-bindings/pinctrl/apple.h> -#include <dt-bindings/spmi/spmi.h> / { compatible = "apple,t8103", "apple,arm-platform"; @@ -91,11 +90,11 @@ timer { compatible = "arm,armv8-timer"; interrupt-parent = <&aic>; - interrupt-names = "hyp-phys", "hyp-virt", "phys", "virt"; - interrupts = <AIC_FIQ AIC_TMR_HV_PHYS IRQ_TYPE_LEVEL_HIGH>, - <AIC_FIQ AIC_TMR_HV_VIRT IRQ_TYPE_LEVEL_HIGH>, - <AIC_FIQ AIC_TMR_GUEST_PHYS IRQ_TYPE_LEVEL_HIGH>, - <AIC_FIQ AIC_TMR_GUEST_VIRT IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "phys", "virt", "hyp-phys", "hyp-virt"; + interrupts = <AIC_FIQ AIC_TMR_GUEST_PHYS IRQ_TYPE_LEVEL_HIGH>, + <AIC_FIQ AIC_TMR_GUEST_VIRT IRQ_TYPE_LEVEL_HIGH>, + <AIC_FIQ AIC_TMR_HV_PHYS IRQ_TYPE_LEVEL_HIGH>, + <AIC_FIQ AIC_TMR_HV_VIRT IRQ_TYPE_LEVEL_HIGH>; }; clkref: clock-ref { @@ -105,24 +104,114 @@ clock-output-names = "clkref"; }; + clk_120m: clock-120m { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <120000000>; + clock-output-names = "clk_120m"; + }; + soc { compatible = "simple-bus"; #address-cells = <2>; #size-cells = <2>; ranges; - dma-ranges; - dma-coherent; nonposted-mmio; + i2c0: i2c@235010000 { + compatible = "apple,t8103-i2c", "apple,i2c"; + reg = <0x2 0x35010000 0x0 0x4000>; + clocks = <&clkref>; + interrupt-parent = <&aic>; + interrupts = <AIC_IRQ 627 IRQ_TYPE_LEVEL_HIGH>; + pinctrl-0 = <&i2c0_pins>; + pinctrl-names = "default"; + #address-cells = <0x1>; + #size-cells = <0x0>; + power-domains = <&ps_i2c0>; + }; + + i2c1: i2c@235014000 { + compatible = "apple,t8103-i2c", "apple,i2c"; + reg = <0x2 0x35014000 0x0 0x4000>; + clocks = <&clkref>; + interrupt-parent = <&aic>; + interrupts = <AIC_IRQ 628 IRQ_TYPE_LEVEL_HIGH>; + pinctrl-0 = <&i2c1_pins>; + pinctrl-names = "default"; + #address-cells = <0x1>; + #size-cells = <0x0>; + power-domains = <&ps_i2c1>; + }; + + i2c2: i2c@235018000 { + compatible = "apple,t8103-i2c", "apple,i2c"; + reg = <0x2 0x35018000 0x0 0x4000>; + clocks = <&clkref>; + interrupt-parent = <&aic>; + interrupts = <AIC_IRQ 629 IRQ_TYPE_LEVEL_HIGH>; + pinctrl-0 = <&i2c2_pins>; + pinctrl-names = "default"; + #address-cells = <0x1>; + #size-cells = <0x0>; + power-domains = <&ps_i2c2>; + status = "disabled"; /* not used in all devices */ + }; + + i2c3: i2c@23501c000 { + compatible = "apple,t8103-i2c", "apple,i2c"; + reg = <0x2 0x3501c000 0x0 0x4000>; + clocks = <&clkref>; + interrupt-parent = <&aic>; + interrupts = <AIC_IRQ 630 IRQ_TYPE_LEVEL_HIGH>; + pinctrl-0 = <&i2c3_pins>; + pinctrl-names = "default"; + #address-cells = <0x1>; + #size-cells = <0x0>; + power-domains = <&ps_i2c3>; + }; + + i2c4: i2c@235020000 { + compatible = "apple,t8103-i2c", "apple,i2c"; + reg = <0x2 0x35020000 0x0 0x4000>; + clocks = <&clkref>; + interrupt-parent = <&aic>; + interrupts = <AIC_IRQ 631 IRQ_TYPE_LEVEL_HIGH>; + pinctrl-0 = <&i2c4_pins>; + pinctrl-names = "default"; + #address-cells = <0x1>; + #size-cells = <0x0>; + power-domains = <&ps_i2c4>; + status = "disabled"; /* only used in J293 */ + }; + + spi3: spi@23510c000 { + compatible = "apple,t8103-spi", "apple,spi"; + reg = <0x2 0x3510c000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = <AIC_IRQ 617 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&clk_120m>; + pinctrl-0 = <&spi3_pins>; + pinctrl-names = "default"; + power-domains = <&ps_spi3>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; /* only used in J293/J313 */ + }; + serial0: serial@235200000 { compatible = "apple,s5l-uart"; reg = <0x2 0x35200000 0x0 0x1000>; reg-io-width = <4>; interrupt-parent = <&aic>; interrupts = <AIC_IRQ 605 IRQ_TYPE_LEVEL_HIGH>; - clocks = <&clkref>, <&clkref>, <&clkref>; - clock-names = "uart", "clk_uart_baud0", "clk_uart_baud1"; + /* + * TODO: figure out the clocking properly, there may + * be a third selectable clock. + */ + clocks = <&clkref>, <&clkref>; + clock-names = "uart", "clk_uart_baud0"; power-domains = <&ps_uart0>; status = "disabled"; }; @@ -133,8 +222,8 @@ reg-io-width = <4>; interrupt-parent = <&aic>; interrupts = <AIC_IRQ 607 IRQ_TYPE_LEVEL_HIGH>; - clocks = <&clkref>, <&clkref>, <&clkref>; - clock-names = "uart", "clk_uart_baud0", "clk_uart_baud1"; + clocks = <&clkref>, <&clkref>; + clock-names = "uart", "clk_uart_baud0"; power-domains = <&ps_uart2>; status = "disabled"; }; @@ -144,131 +233,28 @@ #interrupt-cells = <3>; interrupt-controller; reg = <0x2 0x3b100000 0x0 0x8000>; + power-domains = <&ps_aic>; }; - pmgr: power-controller@23b700000 { + pmgr: power-management@23b700000 { compatible = "apple,t8103-pmgr", "apple,pmgr", "syscon", "simple-mfd"; #address-cells = <1>; - #size-cells = <0>; - - reg = <0x2 0x3b700000 0x0 0x14000>; - - ps_pcie_ref: power-controller@1a0 { - compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate"; - reg = <0x1a0>; - #power-domain-cells = <0>; - #reset-cells = <0>; - apple,domain-name = "pcie_ref"; - }; - - ps_imx: power-controller@1b8 { - compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate"; - reg = <0x1b8>; - #power-domain-cells = <0>; - #reset-cells = <0>; - apple,domain-name = "imx"; - apple,always-on; - }; - - ps_sio: power-controller@1c0 { - compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate"; - reg = <0x1c0>; - #power-domain-cells = <0>; - #reset-cells = <0>; - apple,domain-name = "sio"; - }; - - ps_uart_p: power-controller@220 { - compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate"; - reg = <0x220>; - #power-domain-cells = <0>; - #reset-cells = <0>; - power-domains = <&ps_sio>; - apple,domain-name = "uart_p"; - }; - - ps_uart0: power-controller@270 { - compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate"; - reg = <0x270>; - #power-domain-cells = <0>; - #reset-cells = <0>; - power-domains = <&ps_uart_p>; - apple,domain-name = "uart0"; - }; - - ps_uart1: power-controller@278 { - compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate"; - reg = <0x278>; - #power-domain-cells = <0>; - #reset-cells = <0>; - apple,domain-name = "uart1"; - power-domains = <&ps_uart_p>; - }; - - ps_uart2: power-controller@280 { - compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate"; - reg = <0x280>; - #power-domain-cells = <0>; - #reset-cells = <0>; - apple,domain-name = "uart2"; - power-domains = <&ps_uart_p>; - }; - - ps_uart3: power-controller@288 { - compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate"; - reg = <0x288>; - #power-domain-cells = <0>; - #reset-cells = <0>; - apple,domain-name = "uart3"; - power-domains = <&ps_uart_p>; - }; - - ps_apcie: power-controller@348 { - compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate"; - reg = <0x348>; - #power-domain-cells = <0>; - #reset-cells = <0>; - apple,domain-name = "apcie"; - power-domains = <&ps_imx>; - }; - - ps_apcie_gp: power-controller@3e8 { - compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate"; - reg = <0x3e8>; - #power-domain-cells = <0>; - #reset-cells = <0>; - apple,domain-name = "apcie_gp"; - power-domains = <&ps_apcie>; - }; - - ps_ans2: power-controller@3f0 { - compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate"; - reg = <0x3f0>; - #power-domain-cells = <0>; - #reset-cells = <0>; - apple,domain-name = "ans2"; - power-domains = <&ps_apcie_st>; - }; - - ps_apcie_st: power-controller@418 { - compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate"; - reg = <0x418>; - #power-domain-cells = <0>; - #reset-cells = <0>; - apple,domain-name = "apcie_st"; - power-domains = <&ps_apcie>; - }; + #size-cells = <1>; + reg = <0x2 0x3b700000 0 0x14000>; }; pinctrl_ap: pinctrl@23c100000 { compatible = "apple,t8103-pinctrl", "apple,pinctrl"; reg = <0x2 0x3c100000 0x0 0x100000>; + power-domains = <&ps_gpio>; gpio-controller; #gpio-cells = <2>; gpio-ranges = <&pinctrl_ap 0 0 212>; + apple,npins = <212>; interrupt-controller; + #interrupt-cells = <2>; interrupt-parent = <&aic>; interrupts = <AIC_IRQ 190 IRQ_TYPE_LEVEL_HIGH>, <AIC_IRQ 191 IRQ_TYPE_LEVEL_HIGH>, @@ -278,46 +264,67 @@ <AIC_IRQ 195 IRQ_TYPE_LEVEL_HIGH>, <AIC_IRQ 196 IRQ_TYPE_LEVEL_HIGH>; - i2c0_pins: i2c0_pins { - pinmux = <APPLE_PINMUX(188, 1)>, - <APPLE_PINMUX(192, 1)>; + i2c0_pins: i2c0-pins { + pinmux = <APPLE_PINMUX(192, 1)>, + <APPLE_PINMUX(188, 1)>; + }; + + i2c1_pins: i2c1-pins { + pinmux = <APPLE_PINMUX(201, 1)>, + <APPLE_PINMUX(199, 1)>; + }; + + i2c2_pins: i2c2-pins { + pinmux = <APPLE_PINMUX(163, 1)>, + <APPLE_PINMUX(162, 1)>; + }; + + i2c3_pins: i2c3-pins { + pinmux = <APPLE_PINMUX(73, 1)>, + <APPLE_PINMUX(72, 1)>; + }; + + i2c4_pins: i2c4-pins { + pinmux = <APPLE_PINMUX(135, 1)>, + <APPLE_PINMUX(134, 1)>; + }; + + spi3_pins: spi3-pins { + pinmux = <APPLE_PINMUX(46, 1)>, + <APPLE_PINMUX(47, 1)>, + <APPLE_PINMUX(48, 1)>, + <APPLE_PINMUX(49, 1)>; }; pcie_pins: pcie-pins { pinmux = <APPLE_PINMUX(150, 1)>, - <APPLE_PINMUX(151, 1)>, + <APPLE_PINMUX(151, 1)>, <APPLE_PINMUX(32, 1)>; }; }; - pinctrl_aop: pinctrl@24a820000 { - compatible = "apple,t8103-pinctrl", "apple,pinctrl"; - reg = <0x2 0x4a820000 0x0 0x4000>; - - gpio-controller; - #gpio-cells = <2>; - gpio-ranges = <&pinctrl_aop 0 0 42>; - - interrupt-controller; + spmi: spmi@23d0d9300 { + compatible = "apple,t8103-spmi", "apple,spmi"; + reg = <0x2 0x3d0d9300 0x0 0x100>; interrupt-parent = <&aic>; - interrupts = <AIC_IRQ 268 IRQ_TYPE_LEVEL_HIGH>, - <AIC_IRQ 269 IRQ_TYPE_LEVEL_HIGH>, - <AIC_IRQ 270 IRQ_TYPE_LEVEL_HIGH>, - <AIC_IRQ 271 IRQ_TYPE_LEVEL_HIGH>, - <AIC_IRQ 272 IRQ_TYPE_LEVEL_HIGH>, - <AIC_IRQ 273 IRQ_TYPE_LEVEL_HIGH>, - <AIC_IRQ 274 IRQ_TYPE_LEVEL_HIGH>; + interrupts = <AIC_IRQ 343 IRQ_TYPE_LEVEL_HIGH>; + #address-cells = <2>; + #size-cells = <0>; + status = "disabled"; }; pinctrl_nub: pinctrl@23d1f0000 { compatible = "apple,t8103-pinctrl", "apple,pinctrl"; reg = <0x2 0x3d1f0000 0x0 0x4000>; + power-domains = <&ps_nub_gpio>; gpio-controller; #gpio-cells = <2>; gpio-ranges = <&pinctrl_nub 0 0 23>; + apple,npins = <23>; interrupt-controller; + #interrupt-cells = <2>; interrupt-parent = <&aic>; interrupts = <AIC_IRQ 330 IRQ_TYPE_LEVEL_HIGH>, <AIC_IRQ 331 IRQ_TYPE_LEVEL_HIGH>, @@ -328,6 +335,13 @@ <AIC_IRQ 336 IRQ_TYPE_LEVEL_HIGH>; }; + pmgr_mini: power-management@23d280000 { + compatible = "apple,t8103-pmgr", "apple,pmgr", "syscon", "simple-mfd"; + #address-cells = <1>; + #size-cells = <1>; + reg = <0x2 0x3d280000 0 0x4000>; + }; + wdt: watchdog@23d2b0000 { compatible = "apple,t8103-wdt", "apple,wdt"; reg = <0x2 0x3d2b0000 0x0 0x4000>; @@ -343,8 +357,10 @@ gpio-controller; #gpio-cells = <2>; gpio-ranges = <&pinctrl_smc 0 0 16>; + apple,npins = <16>; interrupt-controller; + #interrupt-cells = <2>; interrupt-parent = <&aic>; interrupts = <AIC_IRQ 391 IRQ_TYPE_LEVEL_HIGH>, <AIC_IRQ 392 IRQ_TYPE_LEVEL_HIGH>, @@ -355,100 +371,176 @@ <AIC_IRQ 397 IRQ_TYPE_LEVEL_HIGH>; }; - i2c0: i2c@20a110000 { - compatible = "apple,i2c-v0"; - reg = <0x2 0x35010000 0x0 0x4000>; + smc_mbox: mbox@23e408000 { + compatible = "apple,t8103-asc-mailbox", "apple,asc-mailbox-v4"; + reg = <0x2 0x3e408000 0x0 0x4000>; interrupt-parent = <&aic>; - interrupts = <AIC_IRQ 627 IRQ_TYPE_LEVEL_HIGH>; - clocks = <&clkref>; - pinctrl-0 = <&i2c0_pins>; - pinctrl-names = "default"; - #address-cells = <0x1>; - #size-cells = <0x0>; + interrupts = <AIC_IRQ 400 IRQ_TYPE_LEVEL_HIGH>, + <AIC_IRQ 401 IRQ_TYPE_LEVEL_HIGH>, + <AIC_IRQ 402 IRQ_TYPE_LEVEL_HIGH>, + <AIC_IRQ 403 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "send-empty", "send-not-empty", + "recv-empty", "recv-not-empty"; + #mbox-cells = <0>; + }; - hpm0: hpm@38 { - compatible = "ti,tps6598x"; - reg = <0x38>; - }; + smc: smc@23e050000 { + compatible = "apple,smc"; + reg = <0x2 0x3e050000 0x0 0x4000>; + mboxes = <&smc_mbox>; + gpio-controller; + #gpio-cells = <2>; + gpio-13 = <0x00800000>; + }; - hpm1: hpm@3f { - compatible = "ti,tps6598x"; - reg = <0x3f>; - }; - }; + pinctrl_aop: pinctrl@24a820000 { + compatible = "apple,t8103-pinctrl", "apple,pinctrl"; + reg = <0x2 0x4a820000 0x0 0x4000>; - ans_mbox: mbox@277400000 { - compatible = "apple,iop-mailbox-m1"; - reg = <0x2 0x77400000 0x0 0x20000>; + gpio-controller; + #gpio-cells = <2>; + gpio-ranges = <&pinctrl_aop 0 0 42>; + apple,npins = <42>; + + interrupt-controller; + #interrupt-cells = <2>; + interrupt-parent = <&aic>; + interrupts = <AIC_IRQ 268 IRQ_TYPE_LEVEL_HIGH>, + <AIC_IRQ 269 IRQ_TYPE_LEVEL_HIGH>, + <AIC_IRQ 270 IRQ_TYPE_LEVEL_HIGH>, + <AIC_IRQ 271 IRQ_TYPE_LEVEL_HIGH>, + <AIC_IRQ 272 IRQ_TYPE_LEVEL_HIGH>, + <AIC_IRQ 273 IRQ_TYPE_LEVEL_HIGH>, + <AIC_IRQ 274 IRQ_TYPE_LEVEL_HIGH>; + }; + + ans_mbox: mbox@277408000 { + compatible = "apple,t8103-asc-mailbox", "apple,asc-mailbox-v4"; + reg = <0x2 0x77408000 0x0 0x4000>; interrupt-parent = <&aic>; interrupts = <AIC_IRQ 583 IRQ_TYPE_LEVEL_HIGH>, - <AIC_IRQ 586 IRQ_TYPE_LEVEL_HIGH>; + <AIC_IRQ 584 IRQ_TYPE_LEVEL_HIGH>, + <AIC_IRQ 585 IRQ_TYPE_LEVEL_HIGH>, + <AIC_IRQ 586 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "send-empty", "send-not-empty", + "recv-empty", "recv-not-empty"; + #mbox-cells = <0>; + power-domains = <&ps_ans2>; + }; + + sart: sart@27bc50000 { + compatible = "apple,t8103-sart", "apple,sart2"; + reg = <0x2 0x7bc50000 0x0 0x10000>; power-domains = <&ps_ans2>; - #mbox-cells = <1>; - endpoints = <32>; }; - ans@27bcc0000 { - compatible = "apple,nvme-m1"; + nvme@27bcc0000 { + compatible = "apple,t8103-nvme-ans2", "apple,nvme-ans2"; reg = <0x2 0x7bcc0000 0x0 0x40000>, - <0x2 0x7bc50000 0x0 0x4000>; + <0x2 0x77400000 0x0 0x4000>; + reg-names = "nvme", "ans"; interrupt-parent = <&aic>; interrupts = <AIC_IRQ 590 IRQ_TYPE_LEVEL_HIGH>; - power-domains = <&ps_apcie_st>; - mboxes = <&ans_mbox 32>; + mboxes = <&ans_mbox>; + apple,sart = <&sart>; + power-domains = <&ps_ans2>; + resets = <&ps_ans2>; }; - pcie0_dart_0: iommu@681008000 { - compatible = "apple,t8103-dart", "apple,dart-m1"; - reg = <0x6 0x81008000 0x0 0x4000>; + dwc3_0: usb@382280000 { + compatible = "apple,t8103-dwc3", "apple,dwc3", "snps,dwc3"; + reg = <0x3 0x82280000 0x0 0x100000>; interrupt-parent = <&aic>; - interrupts = <AIC_IRQ 696 IRQ_TYPE_LEVEL_HIGH>; + interrupts = <AIC_IRQ 777 IRQ_TYPE_LEVEL_HIGH>; + usb-role-switch; + role-switch-default-mode = "host"; + iommus = <&dwc3_0_dart_0 0>, <&dwc3_0_dart_1 1>; + power-domains = <&ps_atc0_usb>; + }; + + dwc3_0_dart_0: iommu@382f00000 { + compatible = "apple,t8103-dart"; + reg = <0x3 0x82f00000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = <AIC_IRQ 781 IRQ_TYPE_LEVEL_HIGH>; #iommu-cells = <1>; - status = "disabled"; + power-domains = <&ps_atc0_usb>; }; - pcie0_dart_1: iommu@682008000 { - compatible = "apple,t8103-dart", "apple,dart-m1"; - reg = <0x6 0x82008000 0x0 0x4000>; + dwc3_0_dart_1: iommu@382f80000 { + compatible = "apple,t8103-dart"; + reg = <0x3 0x82f80000 0x0 0x4000>; interrupt-parent = <&aic>; - interrupts = <AIC_IRQ 699 IRQ_TYPE_LEVEL_HIGH>; + interrupts = <AIC_IRQ 781 IRQ_TYPE_LEVEL_HIGH>; #iommu-cells = <1>; - status = "disabled"; + power-domains = <&ps_atc0_usb>; }; - pcie0_dart_2: iommu@683008000 { - compatible = "apple,t8103-dart", "apple,dart-m1"; - reg = <0x6 0x83008000 0x0 0x4000>; + dwc3_1: usb@502280000 { + compatible = "apple,t8103-dwc3", "apple,dwc3", "snps,dwc3"; + reg = <0x5 0x02280000 0x0 0x100000>; interrupt-parent = <&aic>; - interrupts = <AIC_IRQ 702 IRQ_TYPE_LEVEL_HIGH>; + interrupts = <AIC_IRQ 857 IRQ_TYPE_LEVEL_HIGH>; + usb-role-switch; + role-switch-default-mode = "host"; + iommus = <&dwc3_1_dart_0 0>, <&dwc3_1_dart_1 1>; + power-domains = <&ps_atc1_usb>; + }; + + dwc3_1_dart_0: iommu@502f00000 { + compatible = "apple,t8103-dart"; + reg = <0x5 0x02f00000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = <AIC_IRQ 861 IRQ_TYPE_LEVEL_HIGH>; #iommu-cells = <1>; - status = "disabled"; + power-domains = <&ps_atc1_usb>; }; - smc_mbox: mbox@23e400000 { - compatible = "apple,iop-mailbox-m1"; - reg = <0x2 0x3e400000 0x0 0x20000>; - #mbox-cells = <1>; - endpoints = <32>; + dwc3_1_dart_1: iommu@502f80000 { + compatible = "apple,t8103-dart"; + reg = <0x5 0x02f80000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = <AIC_IRQ 861 IRQ_TYPE_LEVEL_HIGH>; + #iommu-cells = <1>; + power-domains = <&ps_atc1_usb>; }; - smc: smc@23e050000 { - compatible = "apple,smc-m1"; - reg = <0x2 0x3e050000 0x0 0x4000>; - mboxes = <&smc_mbox 32>; - gpio-controller; - #gpio-cells = <2>; - gpio-13 = <0x00800000>; + pcie0_dart_0: dart@681008000 { + compatible = "apple,t8103-dart"; + reg = <0x6 0x81008000 0x0 0x4000>; + #iommu-cells = <1>; + interrupt-parent = <&aic>; + interrupts = <AIC_IRQ 696 IRQ_TYPE_LEVEL_HIGH>; + power-domains = <&ps_apcie_gp>; + }; + + pcie0_dart_1: dart@682008000 { + compatible = "apple,t8103-dart"; + reg = <0x6 0x82008000 0x0 0x4000>; + #iommu-cells = <1>; + interrupt-parent = <&aic>; + interrupts = <AIC_IRQ 699 IRQ_TYPE_LEVEL_HIGH>; + power-domains = <&ps_apcie_gp>; + }; + + pcie0_dart_2: dart@683008000 { + compatible = "apple,t8103-dart"; + reg = <0x6 0x83008000 0x0 0x4000>; + #iommu-cells = <1>; + interrupt-parent = <&aic>; + interrupts = <AIC_IRQ 702 IRQ_TYPE_LEVEL_HIGH>; + power-domains = <&ps_apcie_gp>; }; pcie0: pcie@690000000 { compatible = "apple,t8103-pcie", "apple,pcie"; + device_type = "pci"; reg = <0x6 0x90000000 0x0 0x1000000>, - <0x6 0x80000000 0x0 0x4000>, - <0x6 0x81000000 0x0 0x8000>, - <0x6 0x82000000 0x0 0x8000>, - <0x6 0x83000000 0x0 0x8000>; + <0x6 0x80000000 0x0 0x100000>, + <0x6 0x81000000 0x0 0x4000>, + <0x6 0x82000000 0x0 0x4000>, + <0x6 0x83000000 0x0 0x4000>; reg-names = "config", "rc", "port0", "port1", "port2"; interrupt-parent = <&aic>; @@ -460,6 +552,7 @@ msi-parent = <&pcie0>; msi-ranges = <&aic AIC_IRQ 704 IRQ_TYPE_EDGE_RISING 32>; + iommu-map = <0x100 &pcie0_dart_0 1 1>, <0x200 &pcie0_dart_1 1 1>, <0x300 &pcie0_dart_2 1 1>; @@ -468,96 +561,136 @@ bus-range = <0 3>; #address-cells = <3>; #size-cells = <2>; - ranges = <0x43000000 0x6 0xa0000000 0x6 0xa0000000 - 0x0 0x20000000>, - <0x02000000 0x0 0xc0000000 0x6 0xc0000000 - 0x0 0x40000000>; + ranges = <0x43000000 0x6 0xa0000000 0x6 0xa0000000 0x0 0x20000000>, + <0x02000000 0x0 0xc0000000 0x6 0xc0000000 0x0 0x40000000>; - power-domains = <&ps_apcie>, <&ps_apcie_gp>, <&ps_pcie_ref>; + power-domains = <&ps_apcie_gp>; pinctrl-0 = <&pcie_pins>; pinctrl-names = "default"; - device_type = "pci"; - status = "disabled"; - }; + port00: pci@0,0 { + device_type = "pci"; + reg = <0x0 0x0 0x0 0x0 0x0>; + reset-gpios = <&pinctrl_ap 152 GPIO_ACTIVE_LOW>; - dwc3_0_dart_0: iommu@382f00000 { - compatible = "apple,t8103-dart"; - reg = <0x3 0x82f00000 0x0 0x4000>; - interrupt-parent = <&aic>; - interrupts = <AIC_IRQ 781 IRQ_TYPE_LEVEL_HIGH>; - #iommu-cells = <1>; - status = "disabled"; - }; + #address-cells = <3>; + #size-cells = <2>; + ranges; - dwc3_0_dart_1: iommu@382f80000 { - compatible = "apple,t8103-dart"; - reg = <0x3 0x82f80000 0x0 0x4000>; - interrupt-parent = <&aic>; - interrupts = <AIC_IRQ 781 IRQ_TYPE_LEVEL_HIGH>; - #iommu-cells = <1>; - status = "disabled"; - }; + interrupt-controller; + #interrupt-cells = <1>; - dwc3_0: usb@382280000{ - compatible = "snps,dwc3"; - reg = <0x3 0x82280000 0x0 0x100000>; - interrupt-parent = <&aic>; - interrupts = <AIC_IRQ 777 IRQ_TYPE_LEVEL_HIGH>; - dr_mode = "host"; - iommus = <&dwc3_0_dart_0 0>, <&dwc3_0_dart_1 1>; - status = "disabled"; - }; + interrupt-map-mask = <0 0 0 7>; + interrupt-map = <0 0 0 1 &port00 0 0 0 0>, + <0 0 0 2 &port00 0 0 0 1>, + <0 0 0 3 &port00 0 0 0 2>, + <0 0 0 4 &port00 0 0 0 3>; + }; - dwc3_1_dart_0: iommu@502f00000 { - compatible = "apple,t8103-dart"; - reg = <0x5 0x02f00000 0x0 0x4000>; - interrupt-parent = <&aic>; - interrupts = <AIC_IRQ 861 IRQ_TYPE_LEVEL_HIGH>; - #iommu-cells = <1>; - status = "disabled"; + port01: pci@1,0 { + device_type = "pci"; + reg = <0x800 0x0 0x0 0x0 0x0>; + reset-gpios = <&pinctrl_ap 153 GPIO_ACTIVE_LOW>; + + #address-cells = <3>; + #size-cells = <2>; + ranges; + + interrupt-controller; + #interrupt-cells = <1>; + + interrupt-map-mask = <0 0 0 7>; + interrupt-map = <0 0 0 1 &port01 0 0 0 0>, + <0 0 0 2 &port01 0 0 0 1>, + <0 0 0 3 &port01 0 0 0 2>, + <0 0 0 4 &port01 0 0 0 3>; + }; + + port02: pci@2,0 { + device_type = "pci"; + reg = <0x1000 0x0 0x0 0x0 0x0>; + reset-gpios = <&pinctrl_ap 33 GPIO_ACTIVE_LOW>; + + #address-cells = <3>; + #size-cells = <2>; + ranges; + + interrupt-controller; + #interrupt-cells = <1>; + + interrupt-map-mask = <0 0 0 7>; + interrupt-map = <0 0 0 1 &port02 0 0 0 0>, + <0 0 0 2 &port02 0 0 0 1>, + <0 0 0 3 &port02 0 0 0 2>, + <0 0 0 4 &port02 0 0 0 3>; + }; }; - dwc3_1_dart_1: iommu@502f80000 { - compatible = "apple,t8103-dart"; - reg = <0x5 0x02f80000 0x0 0x4000>; + dart_sio: iommu@235004000 { + compatible = "apple,t8103-dart", "apple,dart"; + reg = <0x2 0x35004000 0x0 0x4000>; interrupt-parent = <&aic>; - interrupts = <AIC_IRQ 861 IRQ_TYPE_LEVEL_HIGH>; + interrupts = <AIC_IRQ 635 IRQ_TYPE_LEVEL_HIGH>; #iommu-cells = <1>; - status = "disabled"; + power-domains = <&ps_sio_cpu>; }; - dwc3_1: usb@502280000{ - compatible = "snps,dwc3"; - reg = <0x5 0x02280000 0x0 0x100000>; - interrupt-parent = <&aic>; - interrupts = <AIC_IRQ 857 IRQ_TYPE_LEVEL_HIGH>; - dr_mode = "host"; - iommus = <&dwc3_1_dart_0 0>, <&dwc3_1_dart_1 1>; - status = "disabled"; + nco_inp: clock-ref { + compatible = "fixed-factor-clock"; + clocks = <&clkref>; + #clock-cells = <0>; + clock-mult = <75>; + clock-div = <2>; // 24 MHz * (75/2) = 900 MHz + clock-output-names = "nco_inp"; }; - spi@23510c000 { - compatible = "apple,t8103-spi", "apple,spi"; - reg = <0x2 0x3510c000 0x0 0x4000>; - interrupt-parent = <&aic>; - interrupts = <AIC_IRQ 617 IRQ_TYPE_LEVEL_HIGH>; - cs-gpios = <&pinctrl_ap 49 GPIO_ACTIVE_HIGH>; + nco: nco@23b044000 { + compatible = "apple,t8103-nco", "apple,nco"; + reg = <0x2 0x3b044000 0x0 0x14000>; + clocks = <&nco_inp>; + #clock-cells = <1>; + apple,nchannels = <5>; }; - spmi@23d0d8000 { - compatible = "apple,t8103-spmi", "apple,spmi"; - reg = <0x2 0x3d0d9300 0x0 0x100>; + admac: dma-controller@238200000 { + compatible = "apple,t8103-admac", "apple,admac"; + reg = <0x2 0x38200000 0x0 0x34000>; + dma-channels = <12>; interrupt-parent = <&aic>; - interrupts = <AIC_IRQ 343 IRQ_TYPE_LEVEL_HIGH>; - - #address-cells = <2>; - #size-cells = <0>; + interrupts = <AIC_IRQ 626 IRQ_TYPE_LEVEL_HIGH>; + #dma-cells = <1>; + iommus = <&dart_sio 2>; + power-domains = <&ps_sio_adma>; + }; + + mca: mca { + compatible = "apple,t8103-mca", "apple,mca"; + reg = <0x2 0x38400000 0x0 0x18000>, + <0x2 0x38300000 0x0 0x30000>; + reg-names = "clusters", "switch"; + clocks = <&nco 0>, <&nco 1>, <&nco 2>, <&nco 3>; + power-domains = <&ps_mca0>; //, <&ps_mca1>, <&ps_mca2>, <&ps_mca3>, <&ps_mca4>, <&ps_mca5>; + resets = <&ps_mca0>, <&ps_mca1>, <&ps_mca2>, <&ps_mca3>, <&ps_mca4>, <&ps_mca5>; + + #sound-dai-cells = <1>; + apple,nclusters = <6>; + apple,mclk-range = <2600000 25000000>; + + route { + dmas = <&admac 2>; + dma-names = "tx"; + apple,serdes = <1>; + sound-dai = <&mca 0>; + }; - pmu@f { - compatible = "apple,sera-pmu"; - reg = <0xf SPMI_USID>; + route2 { + dmas = <&admac 6>; + dma-names = "tx"; + apple,serdes = <3>; + sound-dai = <&mca 2>; }; }; }; }; + +#include "t8103-pmgr.dtsi" |
