/* * Devices shared by all Juno boards */ memtimer: timer@2a810000 { compatible = "arm,armv7-timer-mem"; reg = <0x0 0x2a810000 0x0 0x10000>; arm,cnttidr = <0x1>; clock-frequency = <50000000>; #address-cells = <2>; #size-cells = <2>; ranges; frame@2a830000 { frame-number = <1>; interrupts = <0 60 4>; reg = <0x0 0x2a830000 0x0 0x10000>; }; }; mailbox: mhu@2b1f0000 { compatible = "arm,mhu", "arm,primecell"; reg = <0x0 0x2b1f0000 0x0 0x1000>; interrupts = , ; interrupt-names = "mhu_lpri_rx", "mhu_hpri_rx"; #mbox-cells = <1>; clocks = <&soc_refclk100mhz>; clock-names = "apb_pclk"; }; gic: interrupt-controller@2c010000 { compatible = "arm,gic-400", "arm,cortex-a15-gic"; reg = <0x0 0x2c010000 0 0x1000>, <0x0 0x2c02f000 0 0x2000>, <0x0 0x2c04f000 0 0x2000>, <0x0 0x2c06f000 0 0x2000>; #address-cells = <2>; #interrupt-cells = <3>; #size-cells = <2>; interrupt-controller; interrupts = ; ranges = <0 0 0 0x2c1c0000 0 0x40000>; v2m_0: v2m@0 { compatible = "arm,gic-v2m-frame"; msi-controller; reg = <0 0 0 0x1000>; }; }; timer { compatible = "arm,armv8-timer"; interrupts = , , , ; }; sram: sram@2e000000 { compatible = "arm,juno-sram-ns", "mmio-sram"; reg = <0x0 0x2e000000 0x0 0x8000>; #address-cells = <1>; #size-cells = <1>; ranges = <0 0x0 0x2e000000 0x8000>; cpu_scp_lpri: scp-shmem@0 { compatible = "arm,juno-scp-shmem"; reg = <0x0 0x200>; }; cpu_scp_hpri: scp-shmem@200 { compatible = "arm,juno-scp-shmem"; reg = <0x200 0x200>; }; }; pcie_ctlr: pcie-controller@40000000 { compatible = "arm,juno-r1-pcie", "plda,xpressrich3-axi", "pci-host-ecam-generic"; device_type = "pci"; reg = <0 0x40000000 0 0x10000000>; /* ECAM config space */ bus-range = <0 255>; linux,pci-domain = <0>; #address-cells = <3>; #size-cells = <2>; dma-coherent; ranges = <0x01000000 0x00 0x5f800000 0x00 0x5f800000 0x0 0x00800000>, <0x02000000 0x00 0x50000000 0x00 0x50000000 0x0 0x08000000>, <0x42000000 0x40 0x00000000 0x40 0x00000000 0x1 0x00000000>; #interrupt-cells = <1>; interrupt-map-mask = <0 0 0 7>; interrupt-map = <0 0 0 1 &gic 0 0 0 136 4>, <0 0 0 2 &gic 0 0 0 137 4>, <0 0 0 3 &gic 0 0 0 138 4>, <0 0 0 4 &gic 0 0 0 139 4>; msi-parent = <&v2m_0>; status = "disabled"; }; scpi { compatible = "arm,scpi"; mboxes = <&mailbox 1>; shmem = <&cpu_scp_hpri>; clocks { compatible = "arm,scpi-clocks"; scpi_dvfs: scpi_clocks@0 { compatible = "arm,scpi-dvfs-clocks"; #clock-cells = <1>; clock-indices = <0>, <1>, <2>; clock-output-names = "atlclk", "aplclk","clk_mali"; }; scpi_clk: scpi_clocks@3 { compatible = "arm,scpi-variable-clocks"; #clock-cells = <1>; clock-indices = <3>, <4>, <5>; clock-output-names = "pxlclk0", "pxlclk1", "i2sclk"; }; }; scpi_sensors0: sensors { compatible = "arm,scpi-sensors"; #thermal-sensor-cells = <1>; }; }; /include/ "juno-clocks.dtsi" dma0: dma@7ff00000 { compatible = "arm,pl330", "arm,primecell"; reg = <0x0 0x7ff00000 0 0x1000>; #dma-cells = <1>; #dma-channels = <8>; #dma-requests = <32>; interrupts = , , , , , , , , ; clocks = <&soc_faxiclk>; clock-names = "apb_pclk"; }; /* hdlcd@7ff50000 { compatible = "arm,hdlcd"; reg = <0 0x7ff50000 0 0x1000>; interrupts = ; clocks = <&scpi_clk 3>; clock-names = "pxlclk"; port { hdlcd1_output: endpoint@0 { remote-endpoint = <&tda998x_1_input>; }; }; }; */ hdlcd@7ff60000 { compatible = "arm,hdlcd"; reg = <0 0x7ff60000 0 0x1000>; interrupts = ; clocks = <&scpi_clk 4>; clock-names = "pxlclk"; port { hdlcd0_output: endpoint@0 { remote-endpoint = <&tda998x_0_input>; }; }; }; soc_uart0: uart@7ff80000 { compatible = "arm,pl011", "arm,primecell"; reg = <0x0 0x7ff80000 0x0 0x1000>; interrupts = ; clocks = <&soc_uartclk>, <&soc_refclk100mhz>; clock-names = "uartclk", "apb_pclk"; }; i2c@7ffa0000 { compatible = "snps,designware-i2c"; reg = <0x0 0x7ffa0000 0x0 0x1000>; #address-cells = <1>; #size-cells = <0>; interrupts = ; clock-frequency = <100000>; i2c-sda-hold-time-ns = <500>; clocks = <&soc_smc50mhz>; hdmi_transmitter0: hdmi-transmitter@70 { compatible = "nxp,tda998x"; reg = <0x70>; audio-ports = <0x03>, <0x04>; audio-port-names = "i2s", "spdif"; #sound-dai-cells = <1>; port { tda998x_0_input: endpoint@0 { remote-endpoint = <&hdlcd0_output>; }; tda998x_0_output: endpoint@1 { remote-endpoint = <&hdmi0_connector_output>; }; }; }; hdmi-transmitter@71 { compatible = "nxp,tda998x"; reg = <0x71>; port { /* tda998x_1_input: endpoint@0 { remote-endpoint = <&hdlcd1_output>; }; */ tda998x_1_output: endpoint@1 { remote-endpoint = <&hdmi1_connector_output>; }; }; }; }; ohci@7ffb0000 { compatible = "generic-ohci"; reg = <0x0 0x7ffb0000 0x0 0x10000>; interrupts = ; clocks = <&soc_usb48mhz>; }; ehci@7ffc0000 { compatible = "generic-ehci"; reg = <0x0 0x7ffc0000 0x0 0x10000>; interrupts = ; clocks = <&soc_usb48mhz>; }; memory-controller@7ffd0000 { compatible = "arm,pl354", "arm,primecell"; reg = <0 0x7ffd0000 0 0x1000>; interrupts = , ; clocks = <&soc_smc50mhz>; clock-names = "apb_pclk"; }; memory@80000000 { device_type = "memory"; /* last 16MB of the first memory area is reserved for secure world use by firmware */ reg = <0x00000000 0x80000000 0x0 0x7f000000>, <0x00000008 0x80000000 0x1 0x80000000>; }; gpu: gpu@0x2d000000 { compatible = "arm,malit6xx", "arm,mali"; #cooling-cells = <2>; /* min followed by max */ reg = <0x0 0x2d000000 0x0 0x4000>; interrupts = <0 33 4>, <0 34 4>, <0 32 4>; interrupt-names = "JOB", "MMU", "GPU"; clocks = <&scpi_dvfs 2>; clock-names = "clk_mali"; }; soc_i2s: i2s@7ff90000 { compatible = "snps,designware-i2s"; reg = <0x0 0x7ff90000 0x0 0x1000>; clocks = <&scpi_clk 5>, <&soc_refclk100mhz>; clock-names = "i2sclk", "apb_pclk"; #sound-dai-cells = <0>; dmas = <&dma0 5>; dma-names = "tx"; }; hdmi_audio: hdmi_audio@0 { compatible = "linux,hdmi-audio"; #sound-dai-cells = <0>; status = "okay"; }; sound { compatible = "simple-audio-card"; simple-audio-card,format = "i2s"; simple-audio-card,cpu { sound-dai = <&soc_i2s>; }; simple-audio-card,codec { sound-dai = <&hdmi_transmitter0 0>; }; }; hdmi0: connector@0 { compatible = "hdmi-connector"; type = "a"; port { hdmi0_connector_output: endpoint { remote-endpoint = <&tda998x_0_output>; }; }; }; hdmi1: connector@1 { compatible = "hdmi-connector"; type = "a"; port { hdmi1_connector_output: endpoint { remote-endpoint = <&tda998x_1_output>; }; }; }; smb { compatible = "simple-bus"; #address-cells = <2>; #size-cells = <1>; ranges = <0 0 0 0x08000000 0x04000000>, <1 0 0 0x14000000 0x04000000>, <2 0 0 0x18000000 0x04000000>, <3 0 0 0x1c000000 0x04000000>, <4 0 0 0x0c000000 0x04000000>, <5 0 0 0x10000000 0x04000000>; #interrupt-cells = <1>; interrupt-map-mask = <0 0 15>; interrupt-map = <0 0 0 &gic 0 0 0 68 IRQ_TYPE_LEVEL_HIGH>, <0 0 1 &gic 0 0 0 69 IRQ_TYPE_LEVEL_HIGH>, <0 0 2 &gic 0 0 0 70 IRQ_TYPE_LEVEL_HIGH>, <0 0 3 &gic 0 0 0 160 IRQ_TYPE_LEVEL_HIGH>, <0 0 4 &gic 0 0 0 161 IRQ_TYPE_LEVEL_HIGH>, <0 0 5 &gic 0 0 0 162 IRQ_TYPE_LEVEL_HIGH>, <0 0 6 &gic 0 0 0 163 IRQ_TYPE_LEVEL_HIGH>, <0 0 7 &gic 0 0 0 164 IRQ_TYPE_LEVEL_HIGH>, <0 0 8 &gic 0 0 0 165 IRQ_TYPE_LEVEL_HIGH>, <0 0 9 &gic 0 0 0 166 IRQ_TYPE_LEVEL_HIGH>, <0 0 10 &gic 0 0 0 167 IRQ_TYPE_LEVEL_HIGH>, <0 0 11 &gic 0 0 0 168 IRQ_TYPE_LEVEL_HIGH>, <0 0 12 &gic 0 0 0 169 IRQ_TYPE_LEVEL_HIGH>; /include/ "juno-motherboard.dtsi" };