197cb36ffSDevi Priya// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) 297cb36ffSDevi Priya/* 397cb36ffSDevi Priya * IPQ9574 SoC device tree source 497cb36ffSDevi Priya * 597cb36ffSDevi Priya * Copyright (c) 2020-2021 The Linux Foundation. All rights reserved. 697cb36ffSDevi Priya * Copyright (c) 2023, Qualcomm Innovation Center, Inc. All rights reserved. 797cb36ffSDevi Priya */ 897cb36ffSDevi Priya 997cb36ffSDevi Priya#include <dt-bindings/interrupt-controller/arm-gic.h> 1097cb36ffSDevi Priya#include <dt-bindings/clock/qcom,ipq9574-gcc.h> 1197cb36ffSDevi Priya#include <dt-bindings/reset/qcom,ipq9574-gcc.h> 1297cb36ffSDevi Priya 1397cb36ffSDevi Priya/ { 1497cb36ffSDevi Priya interrupt-parent = <&intc>; 1597cb36ffSDevi Priya #address-cells = <2>; 1697cb36ffSDevi Priya #size-cells = <2>; 1797cb36ffSDevi Priya 1897cb36ffSDevi Priya clocks { 1997cb36ffSDevi Priya bias_pll_ubi_nc_clk: bias-pll-ubi-nc-clk { 2097cb36ffSDevi Priya compatible = "fixed-clock"; 2197cb36ffSDevi Priya clock-frequency = <353000000>; 2297cb36ffSDevi Priya #clock-cells = <0>; 2397cb36ffSDevi Priya }; 2497cb36ffSDevi Priya 2597cb36ffSDevi Priya sleep_clk: sleep-clk { 2697cb36ffSDevi Priya compatible = "fixed-clock"; 2797cb36ffSDevi Priya #clock-cells = <0>; 2897cb36ffSDevi Priya }; 2997cb36ffSDevi Priya 3097cb36ffSDevi Priya xo_board_clk: xo-board-clk { 3197cb36ffSDevi Priya compatible = "fixed-clock"; 3297cb36ffSDevi Priya #clock-cells = <0>; 3397cb36ffSDevi Priya }; 3497cb36ffSDevi Priya }; 3597cb36ffSDevi Priya 3697cb36ffSDevi Priya cpus { 3797cb36ffSDevi Priya #address-cells = <1>; 3897cb36ffSDevi Priya #size-cells = <0>; 3997cb36ffSDevi Priya 4097cb36ffSDevi Priya CPU0: cpu@0 { 4197cb36ffSDevi Priya device_type = "cpu"; 4297cb36ffSDevi Priya compatible = "arm,cortex-a73"; 4397cb36ffSDevi Priya reg = <0x0>; 4497cb36ffSDevi Priya enable-method = "psci"; 4597cb36ffSDevi Priya next-level-cache = <&L2_0>; 4697cb36ffSDevi Priya }; 4797cb36ffSDevi Priya 4897cb36ffSDevi Priya CPU1: cpu@1 { 4997cb36ffSDevi Priya device_type = "cpu"; 5097cb36ffSDevi Priya compatible = "arm,cortex-a73"; 5197cb36ffSDevi Priya reg = <0x1>; 5297cb36ffSDevi Priya enable-method = "psci"; 5397cb36ffSDevi Priya next-level-cache = <&L2_0>; 5497cb36ffSDevi Priya }; 5597cb36ffSDevi Priya 5697cb36ffSDevi Priya CPU2: cpu@2 { 5797cb36ffSDevi Priya device_type = "cpu"; 5897cb36ffSDevi Priya compatible = "arm,cortex-a73"; 5997cb36ffSDevi Priya reg = <0x2>; 6097cb36ffSDevi Priya enable-method = "psci"; 6197cb36ffSDevi Priya next-level-cache = <&L2_0>; 6297cb36ffSDevi Priya }; 6397cb36ffSDevi Priya 6497cb36ffSDevi Priya CPU3: cpu@3 { 6597cb36ffSDevi Priya device_type = "cpu"; 6697cb36ffSDevi Priya compatible = "arm,cortex-a73"; 6797cb36ffSDevi Priya reg = <0x3>; 6897cb36ffSDevi Priya enable-method = "psci"; 6997cb36ffSDevi Priya next-level-cache = <&L2_0>; 7097cb36ffSDevi Priya }; 7197cb36ffSDevi Priya 7297cb36ffSDevi Priya L2_0: l2-cache { 7397cb36ffSDevi Priya compatible = "cache"; 7497cb36ffSDevi Priya cache-level = <2>; 7597cb36ffSDevi Priya }; 7697cb36ffSDevi Priya }; 7797cb36ffSDevi Priya 78590db411SPoovendhan Selvaraj firmware { 79590db411SPoovendhan Selvaraj scm { 80590db411SPoovendhan Selvaraj compatible = "qcom,scm-ipq9574", "qcom,scm"; 81590db411SPoovendhan Selvaraj qcom,dload-mode = <&tcsr 0x6100>; 82590db411SPoovendhan Selvaraj }; 83590db411SPoovendhan Selvaraj }; 84590db411SPoovendhan Selvaraj 8597cb36ffSDevi Priya memory@40000000 { 8697cb36ffSDevi Priya device_type = "memory"; 8797cb36ffSDevi Priya /* We expect the bootloader to fill in the size */ 8897cb36ffSDevi Priya reg = <0x0 0x40000000 0x0 0x0>; 8997cb36ffSDevi Priya }; 9097cb36ffSDevi Priya 9197cb36ffSDevi Priya pmu { 9297cb36ffSDevi Priya compatible = "arm,cortex-a73-pmu"; 9397cb36ffSDevi Priya interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 9497cb36ffSDevi Priya }; 9597cb36ffSDevi Priya 9697cb36ffSDevi Priya psci { 9797cb36ffSDevi Priya compatible = "arm,psci-1.0"; 9897cb36ffSDevi Priya method = "smc"; 9997cb36ffSDevi Priya }; 10097cb36ffSDevi Priya 10197cb36ffSDevi Priya reserved-memory { 10297cb36ffSDevi Priya #address-cells = <2>; 10397cb36ffSDevi Priya #size-cells = <2>; 10497cb36ffSDevi Priya ranges; 10597cb36ffSDevi Priya 10697cb36ffSDevi Priya tz_region: tz@4a600000 { 10797cb36ffSDevi Priya reg = <0x0 0x4a600000 0x0 0x400000>; 10897cb36ffSDevi Priya no-map; 10997cb36ffSDevi Priya }; 110*46384ac7SPoovendhan Selvaraj 111*46384ac7SPoovendhan Selvaraj smem@4aa00000 { 112*46384ac7SPoovendhan Selvaraj compatible = "qcom,smem"; 113*46384ac7SPoovendhan Selvaraj reg = <0x0 0x4aa00000 0x0 0x00100000>; 114*46384ac7SPoovendhan Selvaraj hwlocks = <&tcsr_mutex 0>; 115*46384ac7SPoovendhan Selvaraj no-map; 116*46384ac7SPoovendhan Selvaraj }; 11797cb36ffSDevi Priya }; 11897cb36ffSDevi Priya 11997cb36ffSDevi Priya soc: soc@0 { 12097cb36ffSDevi Priya compatible = "simple-bus"; 12197cb36ffSDevi Priya #address-cells = <1>; 12297cb36ffSDevi Priya #size-cells = <1>; 12397cb36ffSDevi Priya ranges = <0 0 0 0xffffffff>; 12497cb36ffSDevi Priya 12597cb36ffSDevi Priya tlmm: pinctrl@1000000 { 12697cb36ffSDevi Priya compatible = "qcom,ipq9574-tlmm"; 12797cb36ffSDevi Priya reg = <0x01000000 0x300000>; 12897cb36ffSDevi Priya interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>; 12997cb36ffSDevi Priya gpio-controller; 13097cb36ffSDevi Priya #gpio-cells = <2>; 13197cb36ffSDevi Priya gpio-ranges = <&tlmm 0 0 65>; 13297cb36ffSDevi Priya interrupt-controller; 13397cb36ffSDevi Priya #interrupt-cells = <2>; 13497cb36ffSDevi Priya 13597cb36ffSDevi Priya uart2_pins: uart2-state { 13697cb36ffSDevi Priya pins = "gpio34", "gpio35"; 13797cb36ffSDevi Priya function = "blsp2_uart"; 13897cb36ffSDevi Priya drive-strength = <8>; 13997cb36ffSDevi Priya bias-disable; 14097cb36ffSDevi Priya }; 14197cb36ffSDevi Priya }; 14297cb36ffSDevi Priya 14397cb36ffSDevi Priya gcc: clock-controller@1800000 { 14497cb36ffSDevi Priya compatible = "qcom,ipq9574-gcc"; 14597cb36ffSDevi Priya reg = <0x01800000 0x80000>; 14697cb36ffSDevi Priya clocks = <&xo_board_clk>, 14797cb36ffSDevi Priya <&sleep_clk>, 14897cb36ffSDevi Priya <&bias_pll_ubi_nc_clk>, 14997cb36ffSDevi Priya <0>, 15097cb36ffSDevi Priya <0>, 15197cb36ffSDevi Priya <0>, 15297cb36ffSDevi Priya <0>, 15397cb36ffSDevi Priya <0>; 15497cb36ffSDevi Priya #clock-cells = <1>; 15597cb36ffSDevi Priya #reset-cells = <1>; 15697cb36ffSDevi Priya #power-domain-cells = <1>; 15797cb36ffSDevi Priya }; 15897cb36ffSDevi Priya 159*46384ac7SPoovendhan Selvaraj tcsr_mutex: hwlock@1905000 { 160*46384ac7SPoovendhan Selvaraj compatible = "qcom,tcsr-mutex"; 161*46384ac7SPoovendhan Selvaraj reg = <0x01905000 0x20000>; 162*46384ac7SPoovendhan Selvaraj #hwlock-cells = <1>; 163*46384ac7SPoovendhan Selvaraj }; 164*46384ac7SPoovendhan Selvaraj 165590db411SPoovendhan Selvaraj tcsr: syscon@1937000 { 166590db411SPoovendhan Selvaraj compatible = "qcom,tcsr-ipq9574", "syscon"; 167590db411SPoovendhan Selvaraj reg = <0x01937000 0x21000>; 168590db411SPoovendhan Selvaraj }; 169590db411SPoovendhan Selvaraj 17097cb36ffSDevi Priya sdhc_1: mmc@7804000 { 17197cb36ffSDevi Priya compatible = "qcom,ipq9574-sdhci", "qcom,sdhci-msm-v5"; 17297cb36ffSDevi Priya reg = <0x07804000 0x1000>, <0x07805000 0x1000>; 17397cb36ffSDevi Priya reg-names = "hc", "cqhci"; 17497cb36ffSDevi Priya 17597cb36ffSDevi Priya interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>, 17697cb36ffSDevi Priya <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>; 17797cb36ffSDevi Priya interrupt-names = "hc_irq", "pwr_irq"; 17897cb36ffSDevi Priya 17997cb36ffSDevi Priya clocks = <&gcc GCC_SDCC1_AHB_CLK>, 18097cb36ffSDevi Priya <&gcc GCC_SDCC1_APPS_CLK>, 18197cb36ffSDevi Priya <&xo_board_clk>; 18297cb36ffSDevi Priya clock-names = "iface", "core", "xo"; 18397cb36ffSDevi Priya non-removable; 18497cb36ffSDevi Priya status = "disabled"; 18597cb36ffSDevi Priya }; 18697cb36ffSDevi Priya 18797cb36ffSDevi Priya blsp1_uart2: serial@78b1000 { 18897cb36ffSDevi Priya compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm"; 18997cb36ffSDevi Priya reg = <0x078b1000 0x200>; 19097cb36ffSDevi Priya interrupts = <GIC_SPI 306 IRQ_TYPE_LEVEL_HIGH>; 19197cb36ffSDevi Priya clocks = <&gcc GCC_BLSP1_UART3_APPS_CLK>, 19297cb36ffSDevi Priya <&gcc GCC_BLSP1_AHB_CLK>; 19397cb36ffSDevi Priya clock-names = "core", "iface"; 19497cb36ffSDevi Priya status = "disabled"; 19597cb36ffSDevi Priya }; 19697cb36ffSDevi Priya 19797cb36ffSDevi Priya intc: interrupt-controller@b000000 { 19897cb36ffSDevi Priya compatible = "qcom,msm-qgic2"; 19997cb36ffSDevi Priya reg = <0x0b000000 0x1000>, /* GICD */ 20097cb36ffSDevi Priya <0x0b002000 0x1000>, /* GICC */ 20197cb36ffSDevi Priya <0x0b001000 0x1000>, /* GICH */ 20297cb36ffSDevi Priya <0x0b004000 0x1000>; /* GICV */ 20397cb36ffSDevi Priya #address-cells = <1>; 20497cb36ffSDevi Priya #size-cells = <1>; 20597cb36ffSDevi Priya interrupt-controller; 20697cb36ffSDevi Priya #interrupt-cells = <3>; 20797cb36ffSDevi Priya interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>; 20897cb36ffSDevi Priya ranges = <0 0x0b00c000 0x3000>; 20997cb36ffSDevi Priya 21097cb36ffSDevi Priya v2m0: v2m@0 { 21197cb36ffSDevi Priya compatible = "arm,gic-v2m-frame"; 21297cb36ffSDevi Priya reg = <0x00000000 0xffd>; 21397cb36ffSDevi Priya msi-controller; 21497cb36ffSDevi Priya }; 21597cb36ffSDevi Priya 21697cb36ffSDevi Priya v2m1: v2m@1000 { 21797cb36ffSDevi Priya compatible = "arm,gic-v2m-frame"; 21897cb36ffSDevi Priya reg = <0x00001000 0xffd>; 21997cb36ffSDevi Priya msi-controller; 22097cb36ffSDevi Priya }; 22197cb36ffSDevi Priya 22297cb36ffSDevi Priya v2m2: v2m@2000 { 22397cb36ffSDevi Priya compatible = "arm,gic-v2m-frame"; 22497cb36ffSDevi Priya reg = <0x00002000 0xffd>; 22597cb36ffSDevi Priya msi-controller; 22697cb36ffSDevi Priya }; 22797cb36ffSDevi Priya }; 22897cb36ffSDevi Priya 22997cb36ffSDevi Priya timer@b120000 { 23097cb36ffSDevi Priya compatible = "arm,armv7-timer-mem"; 23197cb36ffSDevi Priya reg = <0x0b120000 0x1000>; 23297cb36ffSDevi Priya #address-cells = <1>; 23397cb36ffSDevi Priya #size-cells = <1>; 23497cb36ffSDevi Priya ranges; 23597cb36ffSDevi Priya 23697cb36ffSDevi Priya frame@b120000 { 23797cb36ffSDevi Priya reg = <0x0b121000 0x1000>, 23897cb36ffSDevi Priya <0x0b122000 0x1000>; 23997cb36ffSDevi Priya frame-number = <0>; 24097cb36ffSDevi Priya interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>, 24197cb36ffSDevi Priya <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 24297cb36ffSDevi Priya }; 24397cb36ffSDevi Priya 24497cb36ffSDevi Priya frame@b123000 { 24597cb36ffSDevi Priya reg = <0x0b123000 0x1000>; 24697cb36ffSDevi Priya frame-number = <1>; 24797cb36ffSDevi Priya interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; 24897cb36ffSDevi Priya status = "disabled"; 24997cb36ffSDevi Priya }; 25097cb36ffSDevi Priya 25197cb36ffSDevi Priya frame@b124000 { 25297cb36ffSDevi Priya reg = <0x0b124000 0x1000>; 25397cb36ffSDevi Priya frame-number = <2>; 25497cb36ffSDevi Priya interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; 25597cb36ffSDevi Priya status = "disabled"; 25697cb36ffSDevi Priya }; 25797cb36ffSDevi Priya 25897cb36ffSDevi Priya frame@b125000 { 25997cb36ffSDevi Priya reg = <0x0b125000 0x1000>; 26097cb36ffSDevi Priya frame-number = <3>; 26197cb36ffSDevi Priya interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>; 26297cb36ffSDevi Priya status = "disabled"; 26397cb36ffSDevi Priya }; 26497cb36ffSDevi Priya 26597cb36ffSDevi Priya frame@b126000 { 26697cb36ffSDevi Priya reg = <0x0b126000 0x1000>; 26797cb36ffSDevi Priya frame-number = <4>; 26897cb36ffSDevi Priya interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; 26997cb36ffSDevi Priya status = "disabled"; 27097cb36ffSDevi Priya }; 27197cb36ffSDevi Priya 27297cb36ffSDevi Priya frame@b127000 { 27397cb36ffSDevi Priya reg = <0x0b127000 0x1000>; 27497cb36ffSDevi Priya frame-number = <5>; 27597cb36ffSDevi Priya interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; 27697cb36ffSDevi Priya status = "disabled"; 27797cb36ffSDevi Priya }; 27897cb36ffSDevi Priya 27997cb36ffSDevi Priya frame@b128000 { 28097cb36ffSDevi Priya reg = <0x0b128000 0x1000>; 28197cb36ffSDevi Priya frame-number = <6>; 28297cb36ffSDevi Priya interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; 28397cb36ffSDevi Priya status = "disabled"; 28497cb36ffSDevi Priya }; 28597cb36ffSDevi Priya }; 28697cb36ffSDevi Priya }; 28797cb36ffSDevi Priya 28897cb36ffSDevi Priya timer { 28997cb36ffSDevi Priya compatible = "arm,armv8-timer"; 29097cb36ffSDevi Priya interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 29197cb36ffSDevi Priya <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 29297cb36ffSDevi Priya <GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 29397cb36ffSDevi Priya <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; 29497cb36ffSDevi Priya }; 29597cb36ffSDevi Priya}; 296