On 4/22/25 11:31 PM, Danila Tikhonov wrote:
> Add base dtsi for SM7150-AA/SM7150-AB/SM7150-AC SoCs
>
> Co-developed-by: David Wronek <[email protected]>
> Signed-off-by: David Wronek <[email protected]>
> Co-developed-by: Jens Reidel <[email protected]>
> Signed-off-by: Jens Reidel <[email protected]>
> Signed-off-by: Danila Tikhonov <[email protected]>
> ---
[...]
> + cpu0: cpu@0 {
> + device_type = "cpu";
> + compatible = "qcom,kryo470";
Please split this into Kryo 470 silver and gold, with the former being
based on CA55 and the latter on CA76
[...]
> + pmu-a55 {
> + compatible = "arm,cortex-a55-pmu";
> + interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW>;
> + };
> +
> + pmu-a76 {
> + compatible = "arm,cortex-a78-pmu";
> + interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW>;
> + };
Please update this, mimicking
2c06e0797c32 ("arm64: dts: qcom: sm8650: add PPI interrupt partitions for the
ARM PMUs")
> +
> + psci {
> + compatible = "arm,psci-1.0";
> + method = "smc";
> +
> + cpu_pd0: power-domain-cpu0 {
> + #power-domain-cells = <0>;
> + power-domains = <&cluster_pd>;
> + domain-idle-states = <&little_cpu_sleep_0
> + &little_cpu_sleep_1>;
<&foo>,
<&foo2>;
because they are phandles to separate things - DTC treats them equally
though..
[...]
> + interconnects = <&aggre1_noc MASTER_QUP_0
> QCOM_ICC_TAG_ALWAYS
> + &config_noc SLAVE_QUP_0
> QCOM_ICC_TAG_ALWAYS>,
> + <&gem_noc MASTER_AMPSS_M0
> QCOM_ICC_TAG_ALWAYS
> + &config_noc SLAVE_QUP_0
> QCOM_ICC_TAG_ALWAYS>,
Paths involving AMPSS_M0 (the cpu endpoint) should be ACTIVE_ONLY,
this applies to the entire file and all paths
[...]
> + remoteproc_adsp: remoteproc@62400000 {
> + compatible = "qcom,sm7150-adsp-pas";
> + reg = <0x0 0x62400000 0x0 0x100>;
This region is 0x10_000 long
[...]
> + adreno_smmu: iommu@5040000 {
> + compatible = "qcom,sm7150-smmu-v2",
> + "qcom,adreno-smmu",
> + "qcom,smmu-v2";
> + reg = <0x0 0x05040000 0x0 0x10000>;
> +
> + interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 231 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 364 IRQ_TYPE_EDGE_RISING>,
> + <GIC_SPI 365 IRQ_TYPE_EDGE_RISING>,
> + <GIC_SPI 366 IRQ_TYPE_EDGE_RISING>,
> + <GIC_SPI 367 IRQ_TYPE_EDGE_RISING>,
> + <GIC_SPI 368 IRQ_TYPE_EDGE_RISING>,
> + <GIC_SPI 369 IRQ_TYPE_EDGE_RISING>,
> + <GIC_SPI 370 IRQ_TYPE_EDGE_RISING>,
> + <GIC_SPI 371 IRQ_TYPE_EDGE_RISING>;
> +
> + clocks = <&gpucc GPU_CC_AHB_CLK>,
> + <&gcc GCC_GPU_MEMNOC_GFX_CLK>,
> + <&gcc GCC_GPU_SNOC_DVM_GFX_CLK>;
> + clock-names = "ahb",
> + "bus",
> + "iface";
> +
> + power-domains = <&gpucc CX_GDSC>;
> +
> + #iommu-cells = <1>;
> + #global-interrupts = <2>;
Add `dma-coherent` and check whether the GPU still works
[...]
> + };
> +
> + gmu: gmu@506a000 {
> + compatible = "qcom,adreno-gmu-618.0",
> + "qcom,adreno-gmu";
> + reg = <0x0 0x0506a000 0x0 0x31000>,
Make it 0x26_000 so that it doesn't leak into GPU_CC
[...]
> + tsens0: thermal-sensor@c263000 {
> + compatible = "qcom,sm7150-tsens",
> + "qcom,tsens-v2";
> + reg = <0x0 0x0c263000 0x0 0x1ff>, /* TM */
> + <0x0 0x0c222000 0x0 0x1ff>; /* SROT */
Please remove these comments
[...]
> + intc: interrupt-controller@17a00000 {
> + compatible = "arm,gic-v3";
> + reg = <0x0 0x17a00000 0x0 0x10000>, /* GICD */
> + <0x0 0x17a60000 0x0 0x100000>; /* GICR * 8 */
And these ones too
[...]
> + thermal-zones {
Please adjust this against
https://lore.kernel.org/linux-arm-msm/[email protected]/
(keep only critical trips with no sw cooling for the CPU, etc.)
Konrad