Merge 4625e901da on remote branch

Change-Id: Ia1a9c1e5252450da76cad8e306d648ecb6539816
This commit is contained in:
Linux Build Service Account
2024-08-18 12:52:45 -07:00
17 changed files with 504 additions and 134 deletions

View File

@@ -9,14 +9,15 @@ title: Last Level Cache Controller
maintainers:
- Rishabh Bhatnagar <rishabhb@codeaurora.org>
- Sai Prakash Ranjan <saiprakash.ranjan@codeaurora.org>
- Avinash Philip <quic_avinashp@quicinc.com>
description: |
LLCC (Last Level Cache Controller) provides last level of cache memory in SoC,
that can be shared by multiple clients. Clients here are different cores in the
SoC, the idea is to minimize the local caches at the clients and migrate to
common pool of memory. Cache memory is divided into partitions called slices
which are assigned to clients. Clients can query the slice details, activate
and deactivate them.
LLCC (Last Level Cache Controller) provides last level of cache memory in
SoC, that can be shared by multiple clients. Clients here are different cores
in the SoC, the idea is to minimize the local caches at the clients and
migrate to common pool of memory. Cache memory is divided into partitions
called slices which are assigned to clients. Clients can query the slice
details, activate and deactivate them.
properties:
compatible:
@@ -49,11 +50,43 @@ properties:
maxItems: 1
child-node:
description: Container of llcc_perfmon node
description: |
- Container of llcc_perfmon node
- Container of scid heuristics
type: object
properties:
compatible:
const: qcom,llcc-perfmon
compatible:
items:
- const: qcom,llcc-perfmon
- const: qcom,scid-heuristics
qcom,heuristics_scid:
$ref: '/schemas/types.yaml#/definitions/uint32'
description: |
SCID number of HEURISTICS SID
freq,threshold_idx:
$ref: '/schemas/types.yaml#/definitions/uint32-array'
description: |
CPU DVFS frequency threshold index
minItems: 1
maxItems: 2
freq,threshold_residency:
$ref: '/schemas/types.yaml#/definitions/uint32-array'
description: |
CPU DVFS frequency threshold Residency value in micro seconds
minItems: 1
maxItems: 2
qcom,scid_heuristics_enabled:
description: |
On enabling this flag, Heristics driver will communicate to qcom
control software to enable the Heristics based SCID functionality.
type: boolean
required:
- compatible
additionalProperties: false
required:
- compatible
- reg
@@ -78,7 +111,7 @@ allOf:
- description: LLCC3 base register region
- description: LLCC broadcast base register region
reg-names:
items:
items:
- const: llcc0_base
- const: llcc1_base
- const: llcc2_base
@@ -89,8 +122,6 @@ additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
soc {
#address-cells = <2>;
#size-cells = <2>;
@@ -107,5 +138,13 @@ examples:
llcc_perfmon {
compatible = "qcom,llcc-perfmon";
}
scid_heuristics {
compatible = "qcom,scid-heuristics";
qcom,heuristics_scid = <32>;
freq,threshold_idx = <11>, <10>;
freq,threshold_residency = <5000>, <5000>;
qcom,scid_heuristics_enabled;
};
};
};

View File

@@ -1,10 +1,13 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: "http://devicetree.org/schemas/soc/qcom/qcom,secure-buffer.yaml#"
$id: "http://devicetree.org/schemas/virtio/qcom,virtio-mem.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
title: Qualcomm Technologies, Inc. Virtio-Mem bindings
title: Qualcomm Technologies, Inc. Virtio-Mem
maintainers:
- Patrick Daly <quic_pdaly@quicinc.com>
description: |
QTI virtio mem driver supports Guest initiated memory hotplug operations
@@ -16,6 +19,7 @@ properties:
- const: qcom,virtio-mem
qcom,block-size:
$ref: '/schemas/types.yaml#/definitions/uint32'
description:
Minimum transfer size in bytes. Should be multiple of PAGE_SIZE.
@@ -31,6 +35,11 @@ properties:
is allowed to choose when adding hotpluggable memory for this
device.
qcom,initial-movable-zone-size:
$ref: '/schemas/types.yaml#/definitions/uint32'
description: |
Initial size of movable zone.
qcom,memory-encryption:
type: boolean
description: |
@@ -39,14 +48,17 @@ properties:
required:
- compatible
- qcom,size
- qcom,max-size
- qcom,ipa-range
- qcom,block-size
example:
virtio_mem_device@0x60000000 {
compatible = "qcom,virtio-mem";
qcom,block_size = <0x400000>;
qcom,size = <0x0 0x10000000>;
qcom,ipa-range = <0x0 0x0 0xf 0xffffffff>;
};
additionalProperties: false
examples:
- |+
virtio_mem_device@0x60000000 {
compatible = "qcom,virtio-mem";
qcom,block-size = <0x400000>;
qcom,max-size = <0x0 0x10000000>;
qcom,ipa-range = <0x0 0x0 0xf 0xffffffff>;
};

View File

@@ -343,7 +343,7 @@
alloc-ranges = <0x0 0x00000000 0x0 0xffffffff>;
reusable;
alignment = <0x0 0x400000>;
size = <0x0 0x2000000>;
size = <0x0 0x1000000>;
linux,cma-default;
};
};

View File

@@ -156,19 +156,20 @@
&pm7250b_adc_tm {
interrupts = <0x8 0x35 0x0 IRQ_TYPE_EDGE_RISING>;
io-channels = <&pm7250b_vadc ADC5_AMUX_THM3_100K_PU>,
<&pm7250b_vadc ADC5_AMUX_THM1_100K_PU>;
/* Channel nodes */
pm7250b_usb_conn_therm {
reg = <ADC5_AMUX_THM3_100K_PU>;
reg = <0>;
io-channels = <&pm7250b_vadc ADC5_AMUX_THM3_100K_PU>;
qcom,ratiometric;
qcom,hw-settle-time = <200>;
qcom,hw-settle-time-us = <200>;
};
pm7250b_smb_skin_therm {
reg = <ADC5_AMUX_THM1_100K_PU>;
reg = <1>;
io-channels = <&pm7250b_vadc ADC5_AMUX_THM1_100K_PU>;
qcom,ratiometric;
qcom,hw-settle-time = <200>;
qcom,hw-settle-time-us = <200>;
};
};
@@ -293,7 +294,7 @@
sys-therm-7 {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&pm7250b_adc_tm ADC5_AMUX_THM3_100K_PU>;
thermal-sensors = <&pm7250b_adc_tm 0>;
trips {
active-config0 {
temperature = <125000>;
@@ -312,7 +313,7 @@
sys-therm-6 {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&pm7250b_adc_tm ADC5_AMUX_THM1_100K_PU>;
thermal-sensors = <&pm7250b_adc_tm 1>;
trips {
active-config0 {
temperature = <125000>;

View File

@@ -100,19 +100,19 @@
};
&pmk8350_adc_tm {
io-channels = <&pmk8350_vadc PMK8350_ADC7_AMUX_THM1_100K_PU>,
<&pmk8350_vadc PM6450_ADC7_AMUX1_GPIO2_100K_PU>;
/* Channel nodes */
pmk8350_xo_therm {
reg = <PMK8350_ADC7_AMUX_THM1_100K_PU>;
reg = <0>;
io-channels = <&pmk8350_vadc PMK8350_ADC7_AMUX_THM1_100K_PU>;
qcom,ratiometric;
qcom,hw-settle-time = <200>;
qcom,hw-settle-time-us = <200>;
};
pm6450_quiet_therm {
reg = <PM6450_ADC7_AMUX1_GPIO2_100K_PU>;
reg = <1>;
io-channels = <&pmk8350_vadc PM6450_ADC7_AMUX1_GPIO2_100K_PU>;
qcom,ratiometric;
qcom,hw-settle-time = <200>;
qcom,hw-settle-time-us = <200>;
};
};
@@ -233,34 +233,33 @@
};
&pm6150l_adc_tm {
io-channels = <&pm6150l_vadc ADC5_AMUX_THM1_100K_PU>,
<&pm6150l_vadc ADC5_AMUX_THM3_100K_PU>,
<&pm6150l_vadc ADC5_GPIO1_100K_PU>,
<&pm6150l_vadc ADC5_GPIO3_100K_PU>;
/* Channel nodes */
pa_therm2 {
reg = <ADC5_AMUX_THM1_100K_PU>;
reg = <0>;
io-channels = <&pm6150l_vadc ADC5_AMUX_THM1_100K_PU>;
qcom,ratiometric;
qcom,hw-settle-time = <200>;
qcom,hw-settle-time-us = <200>;
};
pa_therm1 {
reg = <ADC5_AMUX_THM3_100K_PU>;
reg = <1>;
io-channels = <&pm6150l_vadc ADC5_AMUX_THM3_100K_PU>;
qcom,ratiometric;
qcom,hw-settle-time = <200>;
qcom,hw-settle-time-us = <200>;
};
ufs_therm {
reg = <ADC5_GPIO1_100K_PU>;
reg = <2>;
io-channels = <&pm6150l_vadc ADC5_GPIO1_100K_PU>;
qcom,ratiometric;
qcom,hw-settle-time = <200>;
qcom,hw-settle-time-us = <200>;
};
wide_rfc_therm {
reg = <ADC5_GPIO3_100K_PU>;
reg = <3>;
io-channels = <&pm6150l_vadc ADC5_GPIO3_100K_PU>;
qcom,ratiometric;
qcom,hw-settle-time = <200>;
qcom,hw-settle-time-us = <200>;
};
};
@@ -283,7 +282,7 @@
xo-therm {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&pmk8350_adc_tm PMK8350_ADC7_AMUX_THM1_100K_PU>;
thermal-sensors = <&pmk8350_adc_tm 0>;
trips {
active-config0 {
temperature = <125000>;
@@ -302,7 +301,7 @@
sys-therm-1 {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&pm6150l_adc_tm ADC5_GPIO1_100K_PU>;
thermal-sensors = <&pm6150l_adc_tm 2>;
trips {
active-config0 {
temperature = <125000>;
@@ -321,7 +320,7 @@
sys-therm-2 {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&pm6150l_adc_tm ADC5_GPIO3_100K_PU>;
thermal-sensors = <&pm6150l_adc_tm 3>;
trips {
active-config0 {
temperature = <125000>;
@@ -340,7 +339,7 @@
sys-therm-3 {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&pmk8350_adc_tm PM6450_ADC7_AMUX1_GPIO2_100K_PU>;
thermal-sensors = <&pmk8350_adc_tm 1>;
trips {
active-config0 {
temperature = <125000>;
@@ -359,7 +358,7 @@
sys-therm-4 {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&pm6150l_adc_tm ADC5_AMUX_THM1_100K_PU>;
thermal-sensors = <&pm6150l_adc_tm 0>;
trips {
active-config0 {
temperature = <125000>;
@@ -378,7 +377,7 @@
sys-therm-5 {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&pm6150l_adc_tm ADC5_AMUX_THM3_100K_PU>;
thermal-sensors = <&pm6150l_adc_tm 1>;
trips {
active-config0 {
temperature = <125000>;

View File

@@ -722,25 +722,12 @@
type = "passive";
};
cpu0_emerg: cpu0-emerg-cfg {
temperature = <110000>;
hysteresis = <10000>;
type = "passive";
};
reset-mon-cfg {
temperature = <115000>;
hysteresis = <0>;
type = "hot";
};
};
cooling-maps {
cpu00_cdev {
trip = <&cpu0_emerg>;
cooling-device = <&cpu0_pause 1 1>;
};
};
};
cpu-0-1 {
@@ -1125,7 +1112,7 @@
};
};
zeroc-0-step {
zeroc-0 {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&tsens0 128>;
@@ -1144,7 +1131,7 @@
};
};
zeroc-1-step {
zeroc-1 {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&tsens1 128>;

View File

@@ -84,9 +84,9 @@
};
pm6150l_adc_tm: adc_tm@3500 {
compatible = "qcom,spmi-adc-tm5";
reg = <0x3500>;
interrupts = <0x4 0x35 0x0 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "threshold";
#address-cells = <1>;
#size-cells = <0>;
#thermal-sensor-cells = <1>;

View File

@@ -158,9 +158,9 @@
};
pm7250b_adc_tm: adc_tm@3500 {
compatible = "qcom,spmi-adc-tm5";
reg = <0x3500>;
interrupts = <0x2 0x35 0x0 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "threshold";
#address-cells = <1>;
#size-cells = <0>;
#thermal-sensor-cells = <1>;

View File

@@ -116,9 +116,9 @@
};
pmi632_adc_tm: adc_tm@3500 {
compatible = "qcom,spmi-adc-tm5";
reg = <0x3500>;
interrupts = <0x2 0x35 0x0 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "threshold";
#address-cells = <1>;
#size-cells = <0>;
#thermal-sensor-cells = <1>;

View File

@@ -183,9 +183,9 @@
};
pmk8350_adc_tm: adc_tm@3400 {
compatible = "qcom,spmi-adc-tm5-gen2";
reg = <0x3400>;
interrupts = <0x0 0x34 0x0 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "threshold";
#address-cells = <1>;
#size-cells = <0>;
#thermal-sensor-cells = <1>;

View File

@@ -125,19 +125,20 @@
&pm7250b_adc_tm {
interrupts = <0x8 0x35 0x0 IRQ_TYPE_EDGE_RISING>;
io-channels = <&pm7250b_vadc ADC5_AMUX_THM3_100K_PU>,
<&pm7250b_vadc ADC5_AMUX_THM1_100K_PU>;
/* Channel nodes */
pm7250b_usb_conn_therm {
reg = <ADC5_AMUX_THM3_100K_PU>;
reg = <0>;
io-channels = <&pm7250b_vadc ADC5_AMUX_THM3_100K_PU>;
qcom,ratiometric;
qcom,hw-settle-time = <200>;
qcom,hw-settle-time-us = <200>;
};
pm7250b_charger_skin_therm {
reg = <ADC5_AMUX_THM1_100K_PU>;
reg = <1>;
io-channels = <&pm7250b_vadc ADC5_AMUX_THM1_100K_PU>;
qcom,ratiometric;
qcom,hw-settle-time = <200>;
qcom,hw-settle-time-us = <200>;
};
};
@@ -252,7 +253,7 @@
sys-therm-9 {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&pm7250b_adc_tm ADC5_AMUX_THM3_100K_PU>;
thermal-sensors = <&pm7250b_adc_tm 0>;
trips {
active-config0 {
temperature = <125000>;
@@ -271,7 +272,7 @@
sys-therm-7 {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&pm7250b_adc_tm ADC5_AMUX_THM1_100K_PU>;
thermal-sensors = <&pm7250b_adc_tm 1>;
trips {
active-config0 {
temperature = <125000>;

View File

@@ -143,26 +143,26 @@
};
&pmi632_adc_tm {
io-channels = <&pmi632_vadc ADC5_GPIO1_100K_PU>,
<&pmi632_vadc ADC5_GPIO2_100K_PU>,
<&pmi632_vadc ADC5_GPIO3_100K_PU>;
/*Channel nodes */
pmi632_usb_conn_therm {
reg = <ADC5_GPIO1_100K_PU>;
reg = <0>;
io-channels = <&pmi632_vadc ADC5_GPIO1_100K_PU>;
qcom,ratiometric;
qcom,hw-settle-time = <200>;
qcom,hw-settle-time-us = <200>;
};
pmi632_charger_skin_temp {
reg = <ADC5_GPIO2_100K_PU>;
reg = <1>;
io-channels = <&pmi632_vadc ADC5_GPIO2_100K_PU>;
qcom,ratiometric;
qcom,hw-settle-time = <200>;
qcom,hw-settle-time-us = <200>;
};
pmi632_smb_skin_therm {
reg = <ADC5_GPIO3_100K_PU>;
reg = <2>;
io-channels = <&pmi632_vadc ADC5_GPIO3_100K_PU>;
qcom,ratiometric;
qcom,hw-settle-time = <200>;
qcom,hw-settle-time-us = <200>;
};
};
@@ -262,7 +262,7 @@
sys-therm-9 {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&pmi632_adc_tm ADC5_GPIO1_100K_PU>;
thermal-sensors = <&pmi632_adc_tm 0>;
trips {
active-config0 {
temperature = <125000>;
@@ -281,7 +281,7 @@
sys-therm-7 {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&pmi632_adc_tm ADC5_GPIO2_100K_PU>;
thermal-sensors = <&pmi632_adc_tm 1>;
trips {
active-config0 {
temperature = <125000>;
@@ -300,7 +300,7 @@
sys-therm-8 {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&pmi632_adc_tm ADC5_GPIO3_100K_PU>;
thermal-sensors = <&pmi632_adc_tm 2>;
trips {
active-config0 {
temperature = <125000>;

View File

@@ -155,47 +155,47 @@
};
&pmk8350_adc_tm {
io-channels = <&pmk8350_vadc PMK8350_ADC7_AMUX_THM1_100K_PU>,
<&pmk8350_vadc PM6450_ADC7_AMUX1_GPIO2_100K_PU>,
<&pmk8350_vadc PMK8350_ADC7_AMUX_THM2_100K_PU>,
<&pmk8350_vadc PM6450_ADC7_AMUX4_GPIO5_100K_PU>,
<&pmk8350_vadc PM6450_ADC7_AMUX3_GPIO4_100K_PU>,
<&pmk8350_vadc PMK8350_ADC7_AMUX_THM3_100K_PU>;
/* Channel nodes */
pmk8350_xo_therm {
reg = <PMK8350_ADC7_AMUX_THM1_100K_PU>;
reg = <0>;
io-channels = <&pmk8350_vadc PMK8350_ADC7_AMUX_THM1_100K_PU>;
qcom,ratiometric;
qcom,hw-settle-time = <200>;
qcom,hw-settle-time-us = <200>;
};
pm6450_quiet_therm {
reg = <PM6450_ADC7_AMUX1_GPIO2_100K_PU>;
reg = <1>;
io-channels = <&pmk8350_vadc PM6450_ADC7_AMUX1_GPIO2_100K_PU>;
qcom,ratiometric;
qcom,hw-settle-time = <200>;
qcom,hw-settle-time-us = <200>;
};
pmk8350_wide_rfc_therm {
reg = <PMK8350_ADC7_AMUX_THM2_100K_PU>;
reg = <2>;
io-channels = <&pmk8350_vadc PMK8350_ADC7_AMUX_THM2_100K_PU>;
qcom,ratiometric;
qcom,hw-settle-time = <200>;
qcom,hw-settle-time-us = <200>;
};
pm6450_rear_cam_flash_therm {
reg = <PM6450_ADC7_AMUX4_GPIO5_100K_PU>;
reg = <3>;
io-channels = <&pmk8350_vadc PM6450_ADC7_AMUX4_GPIO5_100K_PU>;
qcom,ratiometric;
qcom,hw-settle-time = <200>;
qcom,hw-settle-time-us = <200>;
};
pm6450_pa2_therm {
reg = <PM6450_ADC7_AMUX3_GPIO4_100K_PU>;
reg = <4>;
io-channels = <&pmk8350_vadc PM6450_ADC7_AMUX3_GPIO4_100K_PU>;
qcom,ratiometric;
qcom,hw-settle-time = <200>;
qcom,hw-settle-time-us = <200>;
};
pmk8350_pa1_therm {
reg = <PMK8350_ADC7_AMUX_THM3_100K_PU>;
reg = <5>;
io-channels = <&pmk8350_vadc PMK8350_ADC7_AMUX_THM3_100K_PU>;
qcom,ratiometric;
qcom,hw-settle-time = <200>;
qcom,hw-settle-time-us = <200>;
};
};
@@ -284,7 +284,7 @@
sys-therm-6 {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&pmk8350_adc_tm PMK8350_ADC7_AMUX_THM1_100K_PU>;
thermal-sensors = <&pmk8350_adc_tm 0>;
trips {
active-config0 {
temperature = <125000>;
@@ -303,7 +303,7 @@
sys-therm-4 {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&pmk8350_adc_tm PMK8350_ADC7_AMUX_THM2_100K_PU>;
thermal-sensors = <&pmk8350_adc_tm 2>;
trips {
active-config0 {
temperature = <125000>;
@@ -322,7 +322,7 @@
sys-therm-1 {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&pmk8350_adc_tm PM6450_ADC7_AMUX1_GPIO2_100K_PU>;
thermal-sensors = <&pmk8350_adc_tm 1>;
trips {
active-config0 {
temperature = <125000>;
@@ -341,7 +341,7 @@
sys-therm-3 {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&pmk8350_adc_tm PM6450_ADC7_AMUX4_GPIO5_100K_PU>;
thermal-sensors = <&pmk8350_adc_tm 3>;
trips {
active-config0 {
temperature = <125000>;
@@ -360,7 +360,7 @@
sys-therm-11 {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&pmk8350_adc_tm PM6450_ADC7_AMUX3_GPIO4_100K_PU>;
thermal-sensors = <&pmk8350_adc_tm 4>;
trips {
active-config0 {
temperature = <125000>;
@@ -379,7 +379,7 @@
sys-therm-5 {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&pmk8350_adc_tm PMK8350_ADC7_AMUX_THM3_100K_PU>;
thermal-sensors = <&pmk8350_adc_tm 5>;
trips {
active-config0 {
temperature = <125000>;

View File

@@ -707,17 +707,19 @@
qcom,vmid = <45>;
};
qcom,mem-buf-msgq {
mem_buf_msgq: qcom,mem-buf-msgq {
compatible = "qcom,mem-buf-msgq";
qcom,msgq-names = "trusted_vm";
};
virtio_mem_device {
compatible = "qcom,virtio-mem";
depends-on-supply = <&mem_buf_msgq>;
/* Must be memory_block_size_bytes() aligned */
qcom,max-size = <0x0 0x10000000>;
qcom,max-size = <0x0 0x18000000>;
qcom,ipa-range = <0x0 0x0 0xf 0xffffffff>;
qcom,block-size = <0x400000>;
qcom,initial-movable-zone-size = <0x2000000>;
};
qcom,gunyah-panic-notifier {

View File

@@ -923,6 +923,15 @@
clocks = <&aoss_qmp QDSS_CLK>;
clock-names = "qdss_clk";
};
scid_heuristics {
compatible = "qcom,scid-heuristics";
qcom,heuristics_scid = <32>;
/* Need to update different value for V2 device */
freq,threshold_idx = <11>, <10>;
freq,threshold_residency = <5000>, <5000>;
qcom,scid_heuristics_enabled;
};
};
gic-interrupt-router {

View File

@@ -3,6 +3,9 @@
* Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved.
*/
#include <dt-bindings/clock/qcom,gcc-tuna.h>
#include <dt-bindings/clock/qcom,rpmh.h>
&arch_timer {
clock-frequency = <500000>;
};
@@ -31,6 +34,83 @@
};
};
&ufsphy_mem {
compatible = "qcom,ufs-phy-qrbtc-sdm845";
/* VDDA_UFS_CORE */
vdda-phy-supply = <&L1F>;
vdda-phy-max-microamp = <214160>;
/*
* Platforms supporting Gear 5 && Rate B require a different
* voltage supply. Check the Power Grid document.
*/
vdda-phy-min-microvolt = <912000>;
/* VDDA_UFS_0_1P2 */
vdda-pll-supply = <&L4B>;
vdda-pll-max-microamp = <18340>;
/* Phy GDSC for VDD_MX, always on */
vdd-phy-gdsc-supply = <&gcc_ufs_mem_phy_gdsc>;
/* Qref power supply, Refer Qref diagram */
vdda-qref-supply = <&L2B>;
vdda-qref-max-microamp = <64500>;
/* Detect whether RH132 card based sequences to be used */
qcom,soc_emulation_type_addr = <0x1fc8004>;
qcom,soc_emulation_type_bits = <32>;
status = "ok";
};
&ufshc_mem {
limit-tx-hs-gear = <1>;
limit-rx-hs-gear = <1>;
limit-rate = <2>; /* HS Rate-B */
rpm-level = <0>;
spm-level = <0>;
vdd-hba-supply = <&gcc_ufs_phy_gdsc>;
vcc-supply = <&L12B>;
vcc-max-microamp = <1200000>;
vccq-supply = <&L3F>;
vccq-max-microamp = <1200000>;
qcom,vddp-ref-clk-supply = <&L5B>;
qcom,vddp-ref-clk-max-microamp = <100>;
qcom,vccq-parent-supply = <&S2B>;
qcom,vccq-parent-max-microamp = <210000>;
clock-names =
"core_clk",
"bus_aggr_clk",
"iface_clk",
"core_clk_unipro",
"core_clk_ice",
"ref_clk",
"tx_lane0_sync_clk",
"rx_lane0_sync_clk",
"rx_lane1_sync_clk";
clocks =
<&gcc GCC_UFS_PHY_AXI_CLK>,
<&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>,
<&gcc GCC_UFS_PHY_AHB_CLK>,
<&gcc GCC_UFS_PHY_UNIPRO_CORE_CLK>,
<&gcc GCC_UFS_PHY_ICE_CORE_CLK>,
<&rpmhcc RPMH_CXO_PAD_CLK>,
<&gcc GCC_UFS_PHY_TX_SYMBOL_0_CLK>,
<&gcc GCC_UFS_PHY_RX_SYMBOL_0_CLK>,
<&gcc GCC_UFS_PHY_RX_SYMBOL_1_CLK>;
qcom,disable-lpm;
status = "ok";
};
&usb0 {
dwc3@a600000 {
usb-phy = <&usb_emuphy>, <&usb_nop_phy>;

View File

@@ -12,9 +12,12 @@
#include <dt-bindings/clock/qcom,rpmh.h>
#include <dt-bindings/clock/qcom,tcsrcc-sun.h>
#include <dt-bindings/clock/qcom,videocc-tuna.h>
#include <dt-bindings/interconnect/qcom,tuna.h>
#include <dt-bindings/interconnect/qcom,icc.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/soc/qcom,ipcc.h>
#include <dt-bindings/soc/qcom,rpmh-rsc.h>
#include <dt-bindings/gpio/gpio.h>
/ {
model = "Qualcomm Technologies, Inc. Tuna";
@@ -45,6 +48,7 @@
aliases {
serial0 = &qupv3_se7_2uart;
ufshc1 = &ufshc_mem; /* Embedded UFS Slot */
};
cpus {
@@ -343,6 +347,10 @@
<CONTROL_TCS 0>,
<FAST_PATH_TCS 1>;
};
apps_bcm_voter: bcm_voter {
compatible = "qcom,bcm-voter";
};
};
};
@@ -751,15 +759,40 @@
};
cambistmclkcc: clock-controller@1760000 {
compatible = "qcom,dummycc";
clock-output-names = "cambistmclkcc_clocks";
compatible = "qcom,tuna-cambistmclkcc", "syscon";
reg = <0x1760000 0x6000>;
reg-name = "cc_base";
vdd_mx-supply = <&VDD_MX_LEVEL>;
clocks = <&rpmhcc RPMH_CXO_CLK>,
<&sleep_clk>,
<&gcc GCC_CAMERA_AHB_CLK>;
clock-names = "bi_tcxo",
"sleep_clk",
"iface";
#clock-cells = <1>;
#reset-cells = <1>;
};
cam_crm: syscon@adcd600 {
compatible = "syscon";
reg = <0xadcd600 0x2000>;
};
camcc: clock-controller@ade0000 {
compatible = "qcom,dummycc";
clock-output-names = "camcc_clocks";
compatible = "qcom,tuna-camcc", "syscon";
reg = <0xade0000 0x20000>;
reg-name = "cc_base";
vdd_mm-supply = <&VDD_MM_LEVEL>;
vdd_mx-supply = <&VDD_MX_LEVEL>;
vdd_mxc-supply = <&VDD_MXC_LEVEL>;
clocks = <&rpmhcc RPMH_CXO_CLK>,
<&sleep_clk>,
<&gcc GCC_CAMERA_AHB_CLK>;
clock-names = "bi_tcxo",
"sleep_clk",
"iface";
qcom,cam_crm-crmc = <&cam_crm>;
#clock-cells = <1>;
#reset-cells = <1>;
};
@@ -860,37 +893,244 @@
reg = <0x1fc0000 0x30000>;
};
clk_virt: interconnect@0 {
compatible = "qcom,tuna-clk_virt";
#interconnect-cells = <1>;
qcom,bcm-voter-names = "hlos";
qcom,bcm-voters = <&apps_bcm_voter>;
};
mc_virt: interconnect@1 {
compatible = "qcom,tuna-mc_virt";
#interconnect-cells = <1>;
qcom,bcm-voter-names = "hlos";
qcom,bcm-voters = <&apps_bcm_voter>;
};
config_noc: interconnect@1600000 {
compatible = "qcom,tuna-cnoc_cfg";
reg = <0x1600000 0x9200>;
#interconnect-cells = <1>;
qcom,bcm-voter-names = "hlos";
qcom,bcm-voters = <&apps_bcm_voter>;
qcom,skip-qos;
};
cnoc_main: interconnect@1500000 {
compatible = "qcom,tuna-cnoc_main";
reg = <0x1500000 0x16080>;
#interconnect-cells = <1>;
qcom,bcm-voter-names = "hlos";
qcom,bcm-voters = <&apps_bcm_voter>;
qcom,skip-qos;
};
system_noc: interconnect@1680000 {
compatible = "qcom,tuna-system_noc";
reg = <0x1680000 0x1d080>;
#interconnect-cells = <1>;
qcom,bcm-voter-names = "hlos";
qcom,bcm-voters = <&apps_bcm_voter>;
qcom,skip-qos;
};
pcie_noc: interconnect@16c0000 {
compatible = "qcom,tuna-pcie_anoc";
reg = <0x16c0000 0x11400>;
#interconnect-cells = <1>;
qcom,bcm-voter-names = "hlos";
qcom,bcm-voters = <&apps_bcm_voter>;
qcom,skip-qos;
};
aggre1_noc: interconnect@16e0000 {
compatible = "qcom,tuna-aggre1_noc";
reg = <0x16e0000 0x16400>;
#interconnect-cells = <1>;
qcom,bcm-voter-names = "hlos";
qcom,bcm-voters = <&apps_bcm_voter>;
qcom,skip-qos;
};
aggre2_noc: interconnect@1700000 {
compatible = "qcom,tuna-aggre2_noc";
reg = <0x1700000 0x1f400>;
#interconnect-cells = <1>;
qcom,bcm-voter-names = "hlos";
qcom,bcm-voters = <&apps_bcm_voter>;
qcom,skip-qos;
};
mmss_noc: interconnect@1780000 {
compatible = "qcom,tuna-mmss_noc";
reg = <0x1780000 0x7d800>;
#interconnect-cells = <1>;
qcom,bcm-voter-names = "hlos";
qcom,bcm-voters = <&apps_bcm_voter>;
qcom,skip-qos;
};
gem_noc: interconnect@24100000 {
compatible = "qcom,tuna-gem_noc";
reg = <0x24100000 0x14d080>;
#interconnect-cells = <1>;
qcom,bcm-voter-names = "hlos";
qcom,bcm-voters = <&apps_bcm_voter>;
qcom,skip-qos;
};
nsp_noc: interconnect@320c0000 {
compatible = "qcom,tuna-nsp_noc";
reg = <0x320c0000 0xe080>;
#interconnect-cells = <1>;
qcom,bcm-voter-names = "hlos";
qcom,bcm-voters = <&apps_bcm_voter>;
qcom,skip-qos;
};
lpass_ag_noc: interconnect@7e40000 {
compatible = "qcom,tuna-lpass_ag_noc";
reg = <0x7e40000 0xe080>;
#interconnect-cells = <1>;
qcom,bcm-voter-names = "hlos";
qcom,bcm-voters = <&apps_bcm_voter>;
qcom,skip-qos;
};
lpass_lpiaon_noc: interconnect@7400000 {
compatible = "qcom,tuna-lpass_lpiaon_noc";
reg = <0x7400000 0x19080>;
#interconnect-cells = <1>;
qcom,bcm-voter-names = "hlos";
qcom,bcm-voters = <&apps_bcm_voter>;
qcom,skip-qos;
};
lpass_lpicx_noc: interconnect@7420000 {
compatible = "qcom,tuna-lpass_lpicx_noc";
reg = <0x7420000 0x44080>;
#interconnect-cells = <1>;
qcom,bcm-voter-names = "hlos";
qcom,bcm-voters = <&apps_bcm_voter>;
qcom,skip-qos;
};
ufsphy_mem: ufsphy_mem@1d80000 {
reg = <0x1d80000 0x2000>;
reg-names = "phy_mem";
#phy-cells = <0>;
lanes-per-direction = <2>;
clock-names = "ref_clk_src",
"ref_aux_clk", "qref_clk",
"rx_sym0_mux_clk", "rx_sym1_mux_clk", "tx_sym0_mux_clk",
"rx_sym0_phy_clk", "rx_sym1_phy_clk", "tx_sym0_phy_clk";
clocks = <&rpmhcc RPMH_CXO_PAD_CLK>,
<&gcc GCC_UFS_PHY_PHY_AUX_CLK>,
<&tcsrcc TCSR_UFS_CLKREF_EN>,
<&gcc GCC_UFS_PHY_RX_SYMBOL_0_CLK_SRC>,
<&gcc GCC_UFS_PHY_RX_SYMBOL_1_CLK_SRC>,
<&gcc GCC_UFS_PHY_TX_SYMBOL_0_CLK_SRC>,
<&ufs_phy_rx_symbol_0_clk>,
<&ufs_phy_rx_symbol_1_clk>,
<&ufs_phy_tx_symbol_0_clk>;
resets = <&ufshc_mem 0>;
status = "disabled";
};
ufshc_mem: ufshc@1d84000 {
compatible = "qcom,ufshc";
reg = <0x1d84000 0x3000>;
reg-names = "ufs_mem";
interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>;
phys = <&ufsphy_mem>;
phy-names = "ufsphy";
#reset-cells = <1>;
lanes-per-direction = <2>;
clock-names =
"core_clk",
"bus_aggr_clk",
"iface_clk",
"core_clk_unipro",
"core_clk_ice",
"ref_clk",
"tx_lane0_sync_clk",
"rx_lane0_sync_clk",
"rx_lane1_sync_clk";
clocks =
<&gcc GCC_UFS_PHY_AXI_CLK>,
<&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>,
<&gcc GCC_UFS_PHY_AHB_CLK>,
<&gcc GCC_UFS_PHY_UNIPRO_CORE_CLK>,
<&gcc GCC_UFS_PHY_ICE_CORE_CLK>,
<&rpmhcc RPMH_LN_BB_CLK3>,
<&gcc GCC_UFS_PHY_TX_SYMBOL_0_CLK>,
<&gcc GCC_UFS_PHY_RX_SYMBOL_0_CLK>,
<&gcc GCC_UFS_PHY_RX_SYMBOL_1_CLK>;
freq-table-hz =
<100000000 403000000>,
<0 0>,
<0 0>,
<100000000 403000000>,
<100000000 403000000>,
<0 0>,
<0 0>,
<0 0>,
<0 0>;
interconnects = <&aggre1_noc MASTER_UFS_MEM &mc_virt SLAVE_EBI1>,
<&gem_noc MASTER_APPSS_PROC &config_noc SLAVE_UFS_MEM_CFG>;
interconnect-names = "ufs-ddr", "cpu-ufs";
/* set the dependency that smmu being probed before ufs */
depends-on-supply = <&apps_smmu>;
iommus = <&apps_smmu 0x60 0x0>;
qcom,iommu-dma = "bypass";
dma-coherent;
qcom,bypass-pbl-rst-wa;
qcom,max-cpus = <8>;
reset-gpios = <&tlmm 187 GPIO_ACTIVE_LOW>;
resets = <&gcc GCC_UFS_PHY_BCR>;
reset-names = "rst";
status = "disabled";
};
};
#include "tuna-gdsc.dtsi"
&cam_cc_ipe_0_gdsc {
compatible = "regulator-fixed";
compatible = "qcom,gdsc";
status = "ok";
};
&cam_cc_ofe_gdsc {
compatible = "regulator-fixed";
compatible = "qcom,gdsc";
status = "ok";
};
&cam_cc_tfe_0_gdsc {
compatible = "regulator-fixed";
compatible = "qcom,gdsc";
status = "ok";
};
&cam_cc_tfe_1_gdsc {
compatible = "regulator-fixed";
compatible = "qcom,gdsc";
status = "ok";
};
&cam_cc_tfe_2_gdsc {
compatible = "regulator-fixed";
compatible = "qcom,gdsc";
status = "ok";
};
&cam_cc_titan_top_gdsc {
compatible = "regulator-fixed";
compatible = "qcom,gdsc";
parent-supply = <&VDD_MM_MXC_VOTER_LEVEL>;
status = "ok";
};