ARM: dts: msm: Add initial device tree for SDM660

Add initial device tree support for SDM660
This is a snapshot of dtsi files as of msm-4.4
'commit c2f54771deefa34bf (" Merge "ion:
ion_system_heap: Fix variable initialization"").

Change-Id: Id87712c6cfffe6032daf4c0e3b52dc33ae1ae09d
Signed-off-by: Naitik Bharadiya <bharad@codeaurora.org>
Signed-off-by: Chetan C R <cchinnad@codeaurora.org>
This commit is contained in:
Neeraj Upadhyay 2019-11-19 09:05:06 +05:30 committed by Chetan C R
parent a863b36615
commit 0b9a1522a1
93 changed files with 24010 additions and 186 deletions

View File

@ -11,6 +11,7 @@ compatible: component name used for driver matching, should be one of the
"qcom,jtag-fuse" for jtag fuse device
"qcom,jtag-fuse-v2" for jtag fuse v2 device
"qcom,jtag-fuse-v3" for jtag fuse v3 device
"qcom,jtag-fuse-v4" for jtag fuse v4 device
reg: physical base address and length of the register set
reg-names: should be "fuse-base"

View File

@ -0,0 +1,46 @@
Limits Management Hardware Driver
================================
LMH driver provides API to interact with the LMH hardware. All the calls to
the LMH hardware are routed via secure space.
The device tree parameters for LMH driver are:
Device/Asic specific properties:
- reg : Base address of the LMH Lite hardware's interrupt status register
and its size in bytes. 'reg' parameter is required if
'qcom,lmh-trim-err-offset' is set.
- qcom,lmh-trim-err-offset : This property defines the bit in the LMH
interrupt status register, which shows whether there is a
trim error in LMH hardware.
- vdd-apss-supply : This property should hold the phandle of APSS regulator.
When defined, the M4M DPM will be notified for the APSS
voltage change.
- qcom,lmh-odcm-disable-threshold-mA : This property holds the APSS rail
current threshold below which the ODCM will be disabled.
This property requires the "vdd-apss-supply" property
defined.
Required parameters:
- compatible: Must be either "qcom,lmh" or "qcom,lmh_v1".
The driver based on the compatible string will decide
the default profile.
- interrupts: LMH Lite hardware interrupt details.
Example:
qcom,lmh {
compatible = "qcom,lmh";
interrupts = <0 332 4>;
reg = <0xF9117000 0x4>;
qcom,lmh-trim-err-offset = <18>;
vdd-apss-supply = <&pm8994_s11>;
qcom,lmh-odcm-disable-threshold-mA = <850>;
};
Or for asics that don't have trim err and don't require the voltage change
update for DPM.
qcom,lmh {
compatible = "qcom,lmh_v1";
interrupts = <0 332 4>;
};

View File

@ -257,3 +257,4 @@ compatible = "qcom,mdm9607-mtp"
compatible = "qcom,sdm660-cdp"
compatible = "qcom,sdm660-mtp"
compatible = "qcom,sdm660-qrd"
compatible = "qcom,sdm660-sim"

View File

@ -0,0 +1,71 @@
MSM Core Energy Aware driver
The Energy Aware driver provides per core power and temperature
information to the scheduler for it to make more power efficient
scheduling decision.
The required properties for the Energy-aware driver are:
- compatible: "qcom,apss-core-ea"
- reg: Physical address mapped to this device
Required nodes:
- ea@X: Parent node that has the sensor mapping for each cpu.
This node's phandle is provided within cpu node
to invoke/probe energy-aware only for available cpus.
There should be one such node present for each cpu.
Optional properties:
- qcom,low-hyst-temp: Degrees C below which the power numbers
need to be recomputed for the cores and reset
the threshold. If this is not present, the default
value is 10C.
- qcom,high-hyst-temp: Degrees C above which the power numbers
need to be recomputed for the cores and reset
the threshold. If this property is not present,
the default value is 5C.
- qcom,polling-interval: Interval for which the power numbers
need to be recomputed for the cores if there
is no change in threshold. If this property is not
present, the power is recalculated only on
temperature threshold notifications.
-qcom,throttling-temp: Temperature threshold for cpu frequency mitigation.
The value should be set same as the threshold temperature
in thermal module - 5 C, such that there is a bandwidth to
control the cores before frequency mitigation happens.
[Second level nodes]
Require properties to define per core characteristics:
- sensor: Sensor phandle to map a particular sensor to the core.
If this property is not present, then the core is assumed
to be at 40C for all the power estimations. No sensor
threshold is set. This phandle's compatible property is
"qcom,sensor-information". This driver relies on the
sensor-type and scaling-factor information provided in this
phandle.
Example
qcom,msm-core@0xfc4b0000 {
compatible = "qcom,apss-core-ea";
reg = <0xfc4b0000 0x1000>;
qcom,low-hyst-temp = <10>;
qcom,high-hyst-temp = <5>;
qcom,polling-interval = <50>;
ea0: ea0 {
sensor = <&sensor_information0>;
};
ea1: ea1 {
sensor = <&sensor_information1>;
};
};
CPU0: cpu@0 {
device_type = "cpu";
compatible = "arm,cortex-a53";
reg = <0x0>;
qcom,ea = <&ea0>;
};

View File

@ -0,0 +1,93 @@
* System sleep stats
Resource Power manager maintains information about system sleep and the time
each master spent in respective sleep modes. These were previously exported
through two modules, one for system and another for the respective master
votes. The two modules are now combined into a system stats drivers to provide
better visibility into system sleep modes.
Main node properties
- compatible
Usage: Required
Value type: <string>
Definition: must be "qcom,system-stats".
- qcom,rpm-msg-ram
Usage: Required
Value type: <phandle>
Definition: phandle to RPM's message ram registers.
- qcom,rpm-code-ram
Usage: Required
Value type: <phandle>
Definition: phandle to RPM's code ram registers.
- qcom,masters:
Usage: Required
Value type: <string list>
Definition of memory DT phandles that system stats module is dependent on.
qcom,rpm-msg-ram:
The required phandle pointed to by qcom,rpm-msg-ram are:
Node properties:
- compatible:
Usage: Required
Value Type: <string>
Definition: must be "qcom,rpm-msg-ram"
- reg:
Usage: Required
Value Type: <prop-encoded-array>
Definition: Addresses and sizes for RPM address as visible to Apps and
Stats address location.
- reg-names:
Usage: Required
Value Type: <stringlist>
Definition: Address names. Must be "phys_addr_base" or "msg-ram-base".
Must be specified in the same order as the
corresponding addresses in the reg property.
qcom,rpm-code-ram:
The required phandle pointed to by qcom,rpm-msg-ram are:
Node properties:
- compatible:
Usage: Required
Value Type: <string>
Definition: must be "qcom,rpm-code-ram".
- reg:
Usage: Required
Value Type: <prop-encoded-array>
Definition: Address and size for RPM code address.
- reg-names:
Usage: Required
Value Type: <stringlist>
Definition: Address names. Must be "msg-ram-base"
Example:
rpm_code_ram: rpm-memory@0x68000 {
compatible = "qcom,rpm-code-ram";
reg = <0x68000 0x5000>;
reg-name = "msg-ram-base";
};
rpm_msg_ram: memory@0x200000 {
compatible = "qcom,rpm-msg-ram";
reg = <0x200000 0x1000>,
<0x290000 0x1000>;
reg-names = "phys_addr_base",
"code-ram-base";
};
qcom,system-stats@68140 {
compatible = "qcom,system-stats";
qcom,rpm-msg-ram = <&rpm_msg_ram>;
qcom,rpm-code-ram = <&rpm_code_ram>;
qcom,masters = "APSS", "MPSS", "ADSP", "SLPI";
};

View File

@ -0,0 +1,86 @@
MSM SPDM bandwidth monitor device
devfreq-spdm is a device that represents a device that is monitored by the SPDM
hardware to measure the traffic status of configured master ports on the bus.
Required properties:
-compatible: Must be "qcom,devfreq_spdm"
-qcom,spdm-client: Client id of the port being monitored
-qcom,bw-upstep: Initial up vote size in MB/s
-qcom,bw-dwnstep: Initial down vote size in MB/s
-qcom,max-vote: Vote ceiling in MB/s
-qcom,ports: SPDM ports used by this device
-qcom,alpha-up: SPDM filter up alpha value
-qcom,alpha-down: SPDM filter down alpha value
-qcom,bucket-size: SPDM filter bucket size
-qcom,pl-freqs: The driver supports different filter values at
three different performance levels. This value
defines the cut-over frequenices
-qcom,reject-rate: Desired rejection rate used to calculate
SPDM threshold
-qcom,response-time-us: Desired response time used to calculate
SPDM threshold
-qcom,cci-response-time-us: Desired response time used to calculate
SPDM threshold when CCI is under heavy load
-qcom,max-cci-freq: CCI frequency at which cci_response_time_us
is used
-qcom,up-step-multp: used to increase rate of growth on up votes
-qcom,spdm-interval: down-vote polling interval
Optional properties:
-clock-names: Clocks used to measure current bus frequency.
Expected names are "cci_clk"
-clocks: References to named clocks
Example:
devfreq_spdm_cpu {
compatible = "qcom,devfreq_spdm";
qcom,msm-bus,name = "devfreq_spdm";
qcom,msm-bus,num-cases = <2>;
qcom,msm-bus,num-paths = <1>;
qcom,msm-bus,vectors-KBps =
<1 512 0 0>,
<1 512 0 0>;
qcom,spdm-client = <0>;
clock-names = "cci_clk";
clocks = <&clock_cpu clk_cci_clk>;
qcom,bw-upstep = <100>;
qcom,bw-dwnstep = <100>;
qcom,max-vote = <10000>;
qcom,up-step-multp = <2>;
qcom,spdm-interval = <100>;
qcom,ports = <16>;
qcom,alpha-up = <7>;
qcom,alpha-down = <15>;
qcom,bucket-size = <8>;
/*max pl1 freq, max pl2 freq*/
qcom,pl-freqs = <149999999 150000000>;
/* pl1 low, pl1 high, pl2 low, pl2 high, pl3 low, pl3 high */
qcom,reject-rate = <5000 5000 5000 5000 5000 5000>;
/* pl1 low, pl1 high, pl2 low, pl2 high, pl3 low, pl3 high */
qcom,response-time-us = <220 220 2000 2000 900 900>;
/* pl1 low, pl1 high, pl2 low, pl2 high, pl3 low, pl3 high */
qcom,cci-response-time-us = <50 50 30 30 20 20>;
qcom,max-cci-freq = <600000000>;
};
This device is always used with the SPDM governor which requires a device tree
entry to know what IRQ to respond to.
Required properties:
-compatible Must be "qcom,gov_spdm_hyp"
-interrupt-names SPDM irq to handle. Name should be "spdm-irq"
-interrupts The interrupt number the SPDM hw is assigned
Example:
devfreq_spdm_gov {
compatible = "qcom,gov_spdm_hyp";
interrupt-names = "spdm-irq";
interrupts = <0 192 0>;
};

View File

@ -50,3 +50,100 @@ Example:
};
Example:
mdss_dp_ctrl: qcom,dp_ctrl@c990000 {
cell-index = <0>;
compatible = "qcom,mdss-dp";
qcom,mdss-fb-map = <&mdss_fb3>;
gdsc-supply = <&gdsc_mdss>;
vdda-1p2-supply = <&pm8998_l2>;
vdda-0p9-supply = <&pm8998_l1>;
reg = <0xc990000 0xa84>,
<0xc011000 0x910>,
<0x1fcb200 0x050>;
reg-names = "dp_ctrl", "dp_phy", "tcsr_regs";
clocks = <&clock_mmss clk_mmss_mnoc_ahb_clk>,
<&clock_mmss clk_mmss_mdss_ahb_clk>,
<&clock_mmss clk_mmss_mdss_axi_clk>,
<&clock_mmss clk_mmss_mdss_mdp_clk>,
<&clock_mmss clk_mmss_mdss_hdmi_dp_ahb_clk>,
<&clock_mmss clk_mmss_mdss_dp_aux_clk>,
<&clock_gcc clk_gcc_usb_phy_cfg_ahb2phy_clk>,
<&clock_mmss clk_mmss_mdss_dp_link_clk>,
<&clock_mmss clk_mmss_mdss_dp_link_intf_clk>,
<&clock_mmss clk_mmss_mdss_dp_crypto_clk>,
<&clock_mmss clk_mmss_mdss_dp_pixel_clk>;
clock-names = "core_mnoc_clk", "core_iface_clk", "core_bus_clk",
"core_mdp_core_clk", "core_alt_iface_clk",
"core_aux_clk", "core_cfg_ahb_clk", "ctrl_link_clk",
"ctrl_link_iface_clk", "ctrl_crypto_clk", "ctrl_pixel_clk";
qcom,aux-cfg0-settings = [1c 00];
qcom,aux-cfg1-settings = [20 13 23 1d];
qcom,aux-cfg2-settings = [24 00];
qcom,aux-cfg3-settings = [28 00];
qcom,aux-cfg4-settings = [2c 0a];
qcom,aux-cfg5-settings = [30 26];
qcom,aux-cfg6-settings = [34 0a];
qcom,aux-cfg7-settings = [38 03];
qcom,aux-cfg8-settings = [3c bb];
qcom,aux-cfg9-settings = [40 03];
qcom,logical2physical-lane-map = [02 03 01 00];
qcom,phy-register-offset = <0x4>;
qcom,max-pclk-frequency-khz = <593470>;
qcom,core-supply-entries {
#address-cells = <1>;
#size-cells = <0>;
qcom,core-supply-entry@0 {
reg = <0>;
qcom,supply-name = "gdsc";
qcom,supply-min-voltage = <0>;
qcom,supply-max-voltage = <0>;
qcom,supply-enable-load = <0>;
qcom,supply-disable-load = <0>;
};
};
qcom,ctrl-supply-entries {
#address-cells = <1>;
#size-cells = <0>;
qcom,ctrl-supply-entry@0 {
reg = <0>;
qcom,supply-name = "vdda-1p2";
qcom,supply-min-voltage = <1200000>;
qcom,supply-max-voltage = <1200000>;
qcom,supply-enable-load = <12560>;
qcom,supply-disable-load = <4>;
};
};
qcom,phy-supply-entries {
#address-cells = <1>;
#size-cells = <0>;
qcom,phy-supply-entry@0 {
reg = <0>;
qcom,supply-name = "vdda-0p9";
qcom,supply-min-voltage = <880000>;
qcom,supply-max-voltage = <880000>;
qcom,supply-enable-load = <73400>;
qcom,supply-disable-load = <32>;
};
};
pinctrl-names = "mdss_dp_active", "mdss_dp_sleep";
pinctrl-0 = <&mdss_dp_aux_active &mdss_dp_usbplug_cc_active
&mdss_dp_hpd_active>;
pinctrl-1 = <&mdss_dp_aux_suspend &mdss_dp_usbplug_cc_suspend
&mdss_dp_hpd_suspend>;
qcom,aux-en-gpio = <&tlmm 77 0>;
qcom,aux-sel-gpio = <&tlmm 78 0>;
qcom,usbplug-cc-gpio = <&tlmm 38 0>;
qcom,hpd-gpio = <&tlmm 34 0>;
};

View File

@ -21,6 +21,7 @@ Required properties:
"qcom,mdss_dsi_pll_28lpm", "qcom,mdss_dsi_pll_14nm",
"qcom,mdss_dp_pll_14nm", "qcom,mdss_hdmi_pll_28lpm",
"qcom,mdss_dsi_pll_7nm_v2"
"qcom,mdss_dp_pll_sdm660",
- cell-index: Specifies the controller used
- reg: offset and length of the register set for the device.
- reg-names : names to refer to register sets related to this device

View File

@ -1,7 +1,7 @@
* msm-qpnp-pin
msm-qpnp-pin is a GPIO chip driver for the MSM SPMI implementation.
It creates a spmi_device for every spmi-dev-container block of device_nodes.
It creates a platform_device for every block of device_nodes.
These device_nodes contained within specify the PMIC pin number associated
with each gpio chip. The driver will map these to Linux GPIO numbers.
@ -10,8 +10,6 @@ with each gpio chip. The driver will map these to Linux GPIO numbers.
-Root Node-
Required properties :
- spmi-dev-container : Used to specify the following child nodes as part of the
same SPMI device.
- gpio-controller : Specify as gpio-controller. All child nodes will belong to
this gpio_chip.
- #gpio-cells: We encode a PMIC pin number and a 32-bit flag field to
@ -188,13 +186,11 @@ qpnp: qcom,spmi@fc4c0000 {
#interrupt-cells = <3>;
qcom,pm8941@0 {
spmi-slave-container;
reg = <0x0>;
#address-cells = <1>;
#size-cells = <1>;
pm8941_gpios: gpios {
spmi-dev-container;
compatible = "qcom,qpnp-pin";
gpio-controller;
#gpio-cells = <2>;

View File

@ -0,0 +1,134 @@
Qualcomm Technologies QPNP WLED
QPNP (Qualcomm Technologies Plug N Play) WLED (White Light
Emitting Diode) driver is used for controlling display
backlight that is part of PMIC on Qualcomm Technologies
reference platforms. The PMIC is connected to the host
processor via SPMI bus.
Required properties:
- compatible : should be "qcom,qpnp-wled"
- reg : base address and size for wled modules
- reg-names : names associated with base addresses. It
should be "qpnp-wled-ctrl-base", "qpnp-wled-sink-base",
"qpnp-wled-ibb-base", "qpnp-wled-lab-base".
- qcom,pmic-revid : phandle of PMIC revid module. This is used to
identify the PMIC subtype.
Optional properties for WLED:
- interrupts : Specifies the interrupts associated with WLED. The available
interrupts are over voltage protection(ovp) and short circuit(sc).
The values for ovp and sc are <0x3 0xd8 0x1> and <0x3 0xd8 0x2>.
- interrupt-names : Specify the interrupt names associated with interrupts. Must be
one of "ovp-irq" or "sc-irq"
- linux,name : name of the wled. default is "wled".
- linux,default-trigger : trigger for the backlight. default is NONE.
- qcom,fdbk-output : string feedback current output for wled module. The accepted values
are "wled1", "wled2", "wled3", "wled4" and "auto". default is "auto".
- qcom,vref-uv : maximum reference voltage in uV.
For pmi8994/8952/8996, supported values are from 300000 to 675000
with a step size of 25000, the default value is 350000.
For pmi8998/pm660l, supported values are from 60000 to 397500
with a step size of 22500, the default value is 127500.
- qcom,switch-freq-khz : switch frequency in khz. default is 800.
- qcom,ovp-mv : Over voltage protection threshold in mV. Default is
29500. Supported values are:
- 31000, 29500, 19400, 17800 for pmi8994/8952/8996.
- 31100, 29600, 19600, 18100 for pmi8998/pm660l.
Should only be used if qcom,disp-type-amoled is not
specified.
- qcom,ilim-ma : Current limit threshold in mA.
For pmi8994/8952/8996, default value for LCD is 980mA
and AMOLED is 385mA.
Supported values are:
- 105, 385, 660, 980, 1150, 1420, 1700, 1980.
For pmi8998/pm660l, default value for LCD is
970mA and AMOLED is 620mA.
Supported values are:
- 105, 280, 450, 620, 970, 1150, 1300, 1500.
- qcom,boost-duty-ns : maximum boost duty cycle in ns. default is 104.
- qcom,mod-freq-khz : modulation frequency in khz. default is 9600.
- qcom,dim-mode : dimming mode. supporting dimming modes are "analog",
"digital", and "hybrid". default is "hybrid".
- qcom,hyb-thres : threshold value when used in hybrid mode. It represents the
percentage of brightntess at which dimming mode is switched
from "digital" to "analog". the default value is 6.25%. as the
floating point cannot be represented directly, the value is
multiplied by 100. so the default is 625.
- qcom,sync-dly-us : delay for current sync in us. default is 400.
- qcom,fs-curr-ua : maximum full scale current in ua. default is 25000.
- qcom,en-9b-dim-res : boolean, specify if 9-bit dim resultion is needed. otherwise 12-bit is used.
- qcom,en-phase-stag : boolean, specify if phase staggering is needed.
- qcom,en-cabc : boolean, specify if cabc (content adaptive backlight control) is needed.
- qcom,disp-type-amoled : specify if the display is amoled
- qcom,led-strings-list : Wled module has four strings of leds numbered from 0 to 3. each string of leds
are operated individually. specify the list of strings used by the device.
any combination of led strings can be used. default value is [00 01 02 03]
- qcom,en-ext-pfet-sc-pro : Specify if external pfet short circuit protection is needed
- qcom,cons-sync-write-delay-us : Specify in 'us' the duration of delay between two consecutive writes to
SYNC register.
- qcom,sc-debounce-cycles : debounce time for short circuit detection
- qcom,loop-ea-gm : control the gm for gm stage in control loop. default is 3.
- qcom,loop-auto-gm-en : A boolean property to specify if auto gm is enabled.
- qcom,loop-auto-gm-thresh : Specify auto gm threshold if "loop-auto-gm-en" is defined.
Supported values are: 0 - 3.
- qcom,lcd-auto-pfm-thresh : Specify the auto-pfm threshold, if the headroom voltage level
falls below this threshold and auto PFM is enabled, boost
controller will enter into PFM mode automatically.
- qcom,lcd-psm-ctrl : A boolean property to specify if PSM needs to be
controlled dynamically when WLED module is enabled
or disabled.
- qcom,auto-calibration-enable : A boolean property which enables auto-calibration
of the WLED sink configuration.
- qcom,wled-brightness-map : Array of brightness map codes of size 256.
These codes will be mapped to the brightness
level requested in the scale of 0-4095. Code
entry is of 16 bit size.
- qcom,wled-stepper-en : A boolean property to specify if stepper algorithm
needs to be enabled. This needs the brightness map
table to be specified.
Optional properties if 'qcom,disp-type-amoled' is mentioned in DT:
- qcom,loop-comp-res-kohm : control to select the compensation resistor in kohm. default is 320.
- qcom,vref-psm-mv : reference psm voltage in mv. default for amoled is 450.
- qcom,avdd-mode-spmi: Boolean property to enable AMOLED_VOUT programming via SPMI. If not specified,
AMOLED_VOUT is programmed via S-wire. This can be specified only for newer
PMICs like pmi8998/pm660l.
- qcom,avdd-target-voltage-mv: The voltage required for AMOLED_VOUT. Accepted values are in the range
of 5650 to 7900 in steps of 150. Default value is 7600. Unit is in mV.
For old revisions, accepted values are: 7900, 7600, 7300, 6400, 6100,
5800.
Example:
qcom,leds@d800 {
compatible = "qcom,qpnp-wled";
reg = <0xd800 0x100>,
<0xd900 0x100>,
<0xdc00 0x100>,
<0xde00 0x100>;
reg-names = "qpnp-wled-ctrl-base",
"qpnp-wled-sink-base",
"qpnp-wled-ibb-base",
"qpnp-wled-lab-base";
interrupts = <0x3 0xd8 0x2>;
interrupt-names = "sc-irq";
status = "okay";
linux,name = "wled";
linux,default-trigger = "bkl-trigger";
qcom,fdbk-output = "auto";
qcom,vref-uv = <350000>;
qcom,switch-freq-khz = <800>;
qcom,ovp-mv = <29500>;
qcom,ilim-ma = <980>;
qcom,boost-duty-ns = <26>;
qcom,mod-freq-khz = <9600>;
qcom,dim-mode = "hybrid";
qcom,dim-method = "linear";
qcom,hyb-thres = <625>;
qcom,sync-dly-us = <800>;
qcom,fs-curr-ua = <16000>;
qcom,en-phase-stag;
qcom,led-strings-list = [00 01 02 03];
qcom,en-ext-pfet-sc-pro;
qcom,wled-brightness-map = /bits/ 16 <0 . . 4095>;
};

View File

@ -0,0 +1,358 @@
Qualcomm Technologies, Inc. QPNP LEDs
Qualcomm Technologies, Inc. Plug N Play (QPNP) LED modules
are used for controlling LEDs that are connected to a QPNP PMIC.
The PMIC is connected to a host processor via the SPMI bus. Various
LED modules are supported such as Keypad backlight, WLED (white LED),
RGB LED and flash LED.
Each LED module is represented as a node of "leds-qpnp". This
node will further contain the type of LED supported and its
properties. At least one child node is required for each LED
module. Each must have the required properties below, in addition
to the properties for the LED type, WLED, Flash, RGB and MPP.
Required properties for each child node, WLED, Flash and RGB:
- compatible : should be "qcom,leds-qpnp"
- qcom,id : must be one of values supported in enum qpnp_led
- label : type of led that will be used, ie "wled"
- qcom,max-current : maximum current that the LED can sustain in mA
- linux,name : name of the led that is used in led framework
Optional properties for each child node, WLED, Flash, MPP, RGB and KPDBL:
- qcom,in-order-command-processing : specify if user space requests leds in order
WLED is primarily used as display backlight. Display subsystem uses
LED triggers for WLED to control the brightness as needed.
Optional properties for WLED:
- qcom,num-strings: number of wled strings to be configured
- qcom,num-physical-strings: number of physical wled strings supported
- qcom,ovp-val: over voltage protection threshold,
follows enum wled_ovp_threshold
- qcom,boost-curr-lim: boot currnet limit, follows enum wled_current_bost_limit
- qcom,ctrl-delay-us: delay in activation of led
- qcom,dig-mod-gen-en: digital module generator
- qcom,cs-out-en: current sink output enable
- qcom,op-fdbck: selection of output as feedback for the boost, 00 = automatic selection, 01 = select LED1 output, 02 = select LED2 output, 03 = select LED3 output
- qcom,cp-select: high pole capacitance
- linux,default-trigger: trigger the led from external modules such as display
- qcom,default-state: default state of the led, should be "on" or "off"
Flash is used primarily as a camera or video flash.
Optional properties for flash:
- qcom,headroom: headroom to use. Values should be 0, 1, 2, 3 for 250mV, 300mV, 400mV and 500mV
- qcom,duration: duration of the flash and torch, 10ms - 1280ms for flash and 2s - 33s for torch
- qcom,clamp-curr: current to clamp at, mA
- qcom,startup-dly: delay before flashing after flash executed. Values should 0, 1, 2, 3 for 10us, 32us, 64us, and 128us
- qcom,saftey-timer: include for safety timer use, otherwise watchdog timer will be used
- linux,default-trigger: trigger the led from external modules such as display
- qcom,default-state: default state of the led, should be "on" or "off"
- qcom,torch-enable: set flash led to torch mode functionality and triggers software workaround for torch if hardware does not support
- qcom,sw_vreg_ok: Specify if software strobe is used to inform the readiness of flash module to fire the flash LED when there is no smbb support
- qcom,no-smbb-support: Specify if smbb boost is not required and there is a single regulator for both flash and torch.
- flash-boost-supply: SMBB regulator for LED flash mode
- torch-boost-supply: SMBB regulator for LED torch mode
- flash-wa-supply: SMBB regulator for flash workarounds.
RGB Led is a tri-colored led, Red, Blue & Green.
Required properties for RGB led:
- qcom,mode: mode the led should operate in, options "pwm" and "lpg". "manual" mode is not supported for RGB led.
Required properties for PWM mode only:
- pwms: Use the phandle of pwm device
- qcom,pwm-us: time the pwm device will modulate at (us)
Required properties for LPG mode only:
- pwms: Use the phandle of pwm device
- qcom,pwm-us: time the pwm device will modulate at (us)
- qcom,duty-pcts: array of values for duty cycle to go through
- qcom,start-idx: starting point duty-pcts array
Optional properties for LPG mode only:
- qcom,pause-lo: pause at low end of cycle
- qcom,pause-hi: pause at high end of cycle
- qcom,ramp-step-ms: step between each cycle (ms)
- qcom,lut-flags: flags to be used in lut configuration
Optional properties for RGB led:
- linux,default-trigger: trigger the led from external modules such as display
- qcom,default-state: default state of the led, should be "on" or "off"
- qcom,turn-off-delay-ms: delay in millisecond for turning off the led when its default-state is "on". Value is being ignored in case default-state is "off".
- qcom,use-blink: Use blink sysfs entry for switching into lpg mode. For optimal use, set default mode to pwm. All required lpg parameters must be supplied.
MPP LED is an LED controlled through a Multi Purpose Pin.
Optional properties for MPP LED:
- linux,default-trigger: trigger the led from external modules such as display
- qcom,default-state: default state of the led, should be "on" or "off"
- qcom,source-sel: select power source, default 1 (enabled)
- qcom,mode-ctrl: select operation mode, default 0x60 = Mode Sink
- qcom,mode: mode the led should operate in, options "pwm", "lpg" and "manual"
- qcom,vin-ctrl: select input source, supported values are 0 to 3
- qcom,use-blink: Use blink sysfs entry for switching into lpg mode. For optimal use, set default mode to pwm. All required lpg parameters must be supplied.
- qcom,min-brightness - Lowest possible brightness supported on this LED other than 0.
- qcom,current-setting: default current value for wled used as button backlight in mA
- mpp-power-supply: regulator support for MPP LED
- qcom,mpp-power-max-voltage - maximum voltage for MPP LED regulator. This should not be specified when no regulator is in use.
- qcom,mpp-power-min-voltage - minimum voltage for MPP LED regulator. This should not be specified when no regulator is in use.
Required properties for PWM mode only:
- pwms: Use the phandle of pwm device
- qcom,pwm-us: time the pwm device will modulate at (us)
Required properties for LPG mode only:
- pwms: Use the phandle of pwm device
- qcom,pwm-us: time the pwm device will modulate at (us)
- qcom,duty-pcts: array of values for duty cycle to go through
- qcom,start-idx: starting point duty-pcts array
Optional properties for LPG mode only:
- qcom,pause-lo: pause at low end of cycle
- qcom,pause-hi: pause at high end of cycle
- qcom,ramp-step-ms: step between each cycle (ms)
- qcom,lut-flags: flags to be used in lut configuration
Keypad backlight is a backlight source for buttons. It supports four rows
and the required rows are enabled by specifying values in the properties.
Required properties for keypad backlight:
- qcom,mode: mode the led should operate in, options "pwm" and "lpg". "manual" mode is not supported for keypad backlight.
- qcom,row-id: specify the id of the row. Supported values are 0 to 3.
Optional properties for keypad backlight:
- qcom,row-src-vbst: select source for rows. Specify for vbst and ignore it
for vph_pwr.
- qcom,row-src-en: specify to enable row source
- qcom,always-on: specify if the module has to be always on
- qcom,use-blink: Use blink sysfs entry for switching into lpg mode. For optimal use, set default mode to pwm. All required lpg parameters must be supplied.
Required properties for PWM mode only:
- pwms: Use the phandle of pwm device
- qcom,pwm-us: time the pwm device will modulate at (us)
Required properties for LPG mode only:
- pwms: Use the phandle of pwm device
- qcom,pwm-us: time the pwm device will modulate at (us)
- qcom,duty-pcts: array of values for duty cycle to go through
- qcom,start-idx: starting point duty-pcts array
Optional properties for LPG mode only:
- qcom,pause-lo: pause at low end of cycle
- qcom,pause-hi: pause at high end of cycle
- qcom,ramp-step-ms: step between each cycle (ms)
- qcom,lut-flags: flags to be used in lut configuration
GPIO LED is an LED controlled through a PMIC GPIO.
Optional properties for GPIO LED:
- linux,default-trigger: trigger the led from external modules such as charging
- qcom,default-state: default state of the led, should be "on" or "off"
- qcom,turn-off-delay-ms: delay in millisecond for turning off the led when its default-state is "on". Value is being ignored in case default-state is "off".
- qcom,source-sel: select power source, default 1 (enabled)
- qcom,mode-ctrl: select operation mode, default 0x60 = Mode Sink
- qcom,vin-ctrl: select input source, supported values are 0 to 7
Example:
qcom,leds@a100 {
status = "okay";
qcom,led_mpp_2 {
label = "mpp";
linux,name = "button-backlight";
linux,default-trigger = "hr-trigger";
qcom,default-state = "off";
qcom,current-setting = <20>;
qcom,max-current = <40>;
qcom,id = <6>;
qcom,source-sel = <1>;
qcom,mode-ctrl = <0x61>;
qcom,mode = "manual";
};
};
qcom,leds@a200 {
status = "okay";
qcom,led_mpp_3 {
label = "mpp";
linux,name = "wled-backlight";
linux-default-trigger = "none";
qcom,default-state = "on";
qcom,max-current = <40>;
qcom,id = <6>;
qcom,source-sel = <1>;
qcom,mode-ctrl = <0x10>;
qcom,vin-ctrl = <0x03>;
qcom,min-brightness = <20>;
};
};
qcom,leds@a300 {
status = "okay";
qcom,led_mpp_pwm {
label = "mpp";
linux,name = "green";
linux,default-trigger = "none";
qcom,default-state = "off";
qcom,max-current = <40>;
qcom,current-setting = <5>;
qcom,id = <6>;
qcom,mode = "pwm";
qcom,source-sel = <8>;
qcom,mode-ctrl = <0x60>;
pwms = <&pm8941_pwm_1 0 0>;
qcom,pwm-us = <1000>;
};
};
qcom,leds@d000 {
status = "okay";
qcom,rgb_pwm {
label = "rgb";
linux,name = "led:rgb_red";
qcom,mode = "pwm";
qcom,pwm-us = <1000>;
pwms = <&pm8941_pwm_7 0 0>;
qcom,max-current = <12>;
qcom,default-state = "off";
qcom,id = <3>;
linux,default-trigger =
"battery-charging";
};
qcom,rgb_lpg {
label = "rgb";
linux,name = "led:rgb_green";
qcom,mode = "lpg";
pwms = <&pm8941_pwm_6 0 0>;
qcom,pwm-us = <1000>;
qcom,duty-ms = <20>;
qcom,start-idx = <1>;
qcom,idx-len = <10>;
qcom,duty-pcts = [00 19 32 4B 64
64 4B 32 19 00];
qcom,max-current = <12>;
qcom,default-state = "off";
qcom,id = <3>;
linux,default-trigger =
"battery-charging";
};
qcom,rgb_blink {
label = "rgb";
linux,name = "led:rgb_blue";
qcom,mode = "pwm";
pwms = <&pm8941_pwm_5 0 0>;
qcom,start-idx = <1>;
qcom,idx-len = <10>;
qcom,duty-pcts = [00 19 32 4B 64
64 4B 32 19 00];
qcom,lut-flags = <3>;
qcom,pause-lo = <0>;
qcom,pause-hi = <0>;
qcom,ramp-step-ms = <255>;
qcom,max-current = <12>;
qcom,default-state = "on";
qcom,turn-off-delay-ms = <500>;
qcom,id = <5>;
linux,default-trigger = "none";
qcom,pwm-us = <1000>;
qcom,use-blink;
};
};
qcom,leds@d300 {
compatible = "qcom,leds-qpnp";
status = "okay";
flash-boost-supply = <&pm8941_chg_boost>;
torch-boost-supply = <&pm8941_boost>;
qcom,flash_0 {
qcom,max-current = <1000>;
qcom,default-state = "off";
qcom,headroom = <0>;
qcom,duration = <200>;
qcom,clamp-curr = <200>;
qcom,startup-dly = <1>;
qcom,safety-timer;
label = "flash";
linux,default-trigger =
"flash0_trigger";
linux,name = "led:flash_0";
qcom,current = <625>;
qcom,id = <1>;
qcom,no-torch-module;
};
};
qcom,leds@d800 {
compatible = "qcom,leds-qpnp";
status = "okay";
qcom,wled_0 {
linux,default-trigger = "bkl-trigger"
label = "wled";
qcom,cs-out-en;
qcom,op-fdbck = <1>;
qcom,default-state "off";
qcom,max-current = <25>;
qcom,ctrl-delay-us = <0>;
qcom,boost-curr-lim = <3>;
qcom,cp-sel = <0>;
qcom,switch-freq = <2>;
qcom,ovp-val = <2>;
qcom,num-strings = <1>;
qcom,id = <0>;
linux,name = "led:wled_backlight";
};
};
qcom,leds@e200 {
status = "okay";
qcom,kpdbl1 {
label = "kpdbl";
linux,name = "kpdbl-pwm-1";
qcom,mode = <0>;
pwms = <&pm8941_pwm_9 0 0>;
qcom,pwm-us = <1000>;
qcom,id = <7>;
qcom,max-current = <20>;
qcom,row-id = <0>;
qcom,row-src-en;
qcom,always-on;
};
qcom,kpdbl2 {
label = "kpdbl";
linux,name = "kpdbl-lut-2";
qcom,mode = <1>;
pwms = <&pm8941_pwm_10 0 0>;
qcom,pwm-us = <1000>;
qcom,start-idx = <1>;
qcom,duty-pcts = [00 00 00 00 64
64 00 00 00 00];
qcom,id = <7>;
qcom,max-current = <20>;
qcom,row-id = <1>;
qcom,row-src-en;
};
};
qcom,leds@c900 {
compatible = "qcom,leds-qpnp";
reg = <0xc900 0x100>;
status = "okay";
qcom,led_gpio_10 {
label = "gpio";
linux,name = "led:notification";
qcom,max-current = <40>;
qcom,id = <8>;
linux,default-trigger = "notification";
qcom,default-state = "on";
qcom,turn-off-delay-ms = <1000>;
qcom,source-sel = <1>;
qcom,mode-ctrl = <0x10>;
qcom,vin-ctrl = <0x02>;
};
};

View File

@ -0,0 +1,29 @@
Laser Sensor Device Tree Bindings.
========================================
Boards with the Laser Sensor connected to CCI shall have the following
properties:
Required node properties:
- cell-index: cci hardware core index
- compatible:
- "st,stmvl53l0" : STMiecroelectronics VL53L0 Laser sensor.
- reg : offset and length of the register set for the device
- qcom, cci-master: cci master the sensor connected to
- cam_cci-supply : cci voltage regulator used
- cam_laser-supply: laser sensor voltage regulator
- qcom,cam-vreg-name: voltage regulators name
- qcom, cam-vreg-min-voltage: specify minimum voltage level for
regulators used
- qcom, cam-vreg-max-voltage: specify maximum voltage level for
regulators used
- pinctrl-names : should specify the pin control groups followed by
the definition of each group
stm,irq-gpio : irq gpio which is to provide interrupts to host.
- gpios : should contain phandle to gpio controller node and array of
#gpio-cells specifying specific gpio (controller specific)
- qcom,gpio-req-tbl-num : contains index to gpios specific to the sensor
- qcom,gpio-req-tbl-flags : should contain direction of gpios present in
qcom,gpio-req-tbl-num property (in the same order)
- qcom,gpio-req-tbl-label : should contain name of gpios present in
qcom,gpio-req-tbl-num property (in the same order)

View File

@ -0,0 +1,44 @@
Qualcomm Technologies, Inc. QPNP Coincell - coincell battery charger devices
Required properties:
- compatible: Must be "qcom,qpnp-coincell".
- reg: Specifies the SPMI address and size for this coincell device.
Required structure:
- A qcom,qpnp-coincell node must be a child of an SPMI node that has specified
the spmi-slave-container property.
Optional properties:
- qcom,rset-ohms: Specifies the resistance of the current limiting
resistor in ohms. Four values are supported:
800, 1200, 1700, and 2100.
- qcom,vset-millivolts: Specifies the coincell charging voltage in millivolts.
Four values are supported: 2500, 3000, 3100, and 3200.
- qcom,charge-enable: Specifies if coincell charging should be enabled or not.
0 = disable charging, 1 = enabled charging
If any of the optional properties are not specified, then the hardware default
values for the unspecified properties will be used instead.
Example:
qcom,spmi@fc4c0000 {
#address-cells = <1>;
#size-cells = <0>;
interrupt-controller;
#interrupt-cells = <3>;
qcom,pm8941@1 {
spmi-slave-container;
reg = <0x1>;
#address-cells = <1>;
#size-cells = <1>;
qcom,coincell@2800 {
compatible = "qcom,qpnp-coincell";
reg = <0x2800 0x100>;
qcom,rset-ohms = <800>;
qcom,vset-millivolts = <3100>;
qcom,charge-enable = <1>;
};
};
};

View File

@ -0,0 +1,219 @@
Qualcomm Technologies, Inc. QPNP PWM/LPG controller
qpnp-pwm driver supports Pulse Width Module (PWM) functionality. PWM feature is
used in range of applications such as varying Display brightness, LED dimming,
etc. QTI PMICs have a physical device called Light Pulse Generator (LPG). In
addition to support PWM functionality, the LPG module provides a rich set of
user defined PWM pattern configurations, such as sawtooth, linear up, linear
down, triangular patterns etc. The PWM patterns are used in applications such as
charger driver where the driver uses these patterns to indicate various states
of charging.
Required device bindings:
- compatible: should be "qcom,qpnp-pwm"
- reg: Offset and length of the controller's LPG channel register.
- reg-names: Name for the above register.
"qpnp-lpg-channel-base" = physical base address of the
controller's LPG channel register.
- qcom,lpg-lut-size: LPG LUT size.
- qcom,channel-id: channel Id for the PWM.
- qcom,supported-sizes: Supported PWM sizes.
Following three pwm sizes lists are supported by PWM/LPG controllers.
<6>, <9>;
<7>, <8>;
<6>, <7>, <9>;
- qcom,ramp-index: Ramp index in LUT ramp control register.
Each LPG has an index in the LUT ramp control register.
One exception is that, if LPG does not support LUT mode
and supports only PWM mode then there is no need to
provide the ramp-index.
Optional device bindings:
- qcom,force-pwm-size: For certain LPG channels, PWM size can be forced.
Possible values 6, 7, 8 and 9.
- qcom,channel-owner: A string value to supply owner information.
- qcom,mode-select: 0 = PWM mode
1 = LPG mode
- qcom,dtest-line: indicates which DTEST line to be configured for LPG
or PWM output. For LPG subtypes, possible values are 1,
2, 3 and 4. For PWM subtype, possibe values are 1 and 2.
- qcom,dtest-output: indicates the output configuration for DTEST line.
For LPG subtypes, possible output values are:
0 = Disabled
1 = LPG output low
2 = LPG output high
3,4,5 = DTEST line specific configuration
6,7 = Not used
For PWM subtype, possible output values are:
0 = Disabled
1 = pwm_out for DTEST1 or reserved
2 = pwm_out for DTEST2 or reserved
3 = Not used
If this binding is specified along with the required bindings of PWM/LPG then
in addition to configure PWM/LPG the qpnp-pwm driver also enables the feature
at the probe time. In the case where the binding is not specified the qpnp-pwm
driver does not enable the feature. Also, it is considered an error to specify
a particular mode using this binding but not the respective feature subnode.
All PWM devices support both PWM and LPG features within the same device.
To support each feature, there are some required and optional bindings passed
through device tree.
The PWM device can enable one feature (either PWM or LPG) at any given time.
Therefore, the qpnp-pwm driver applies the last PWM or LPG feature configuration
and enables that feature.
Required bindings to support PWM feature:
- qcom,period: PWM period time in microseconds.
- qcom,duty: PWM duty time in microseconds.
- label: "pwm"
Required bindings to support LPG feature:
The following bindings are needed to configure LPG mode, where a list of
duty cycle percentages is populated. The size of the list cannot exceed
the size of the LPG look-up table.
- reg: Offset and length of LPG look-up table (LUT). The LPG look-up table is a
contiguous address space that is populated with PWM values.
The size of PWM value is 9 bit and the size of each
entry of the table is 8 bit. Thus, two entries are used
to fill each PWM value. The lower entry is used for PWM
LSB byte and higher entry is used for PWM MSB bit.
- reg-names: Name for the above register.
"qpnp-lpg-lut-base" = physical base address of LPG LUT.
- qcom,period: PWM period time in microseconds.
- qcom,duty-percents: List of entries for look-up table
- cell-index: Index of look-up table that should be used to start
filling up the duty-pct list. start-idx + size of list
cannot exceed the size of look-up table.
- label: "lpg"
Optional bindings to support LPG feature:
- qcom,ramp-step-duration: Time (in ms) to wait before loading next entry of LUT
- qcom,lpg-lut-pause-hi: Time (in ms) to wait once pattern reaches to hi
index.
- qcom,lpg-lut-pause-lo: Time (in ms) to wait once pattern reaches to lo
index.
- qcom,lpg-lut-ramp-direction: 1 = Start the pattern from lo index to hi index.
0 = Start the pattern from hi index to lo index.
- qcom,lpg-lut-pattern-repeat: 1 = Repeat the pattern after the pause once it
reaches to last duty cycle.
0 = Do not repeat the pattern.
- qcom,lpg-lut-ramp-toggle: 1 = Toggle the direction of the pattern.
0 = Do not toggle the direction.
- qcom,lpg-lut-enable-pause-hi: 1 = Enable pause time at hi index.
0 = Disable pause time at hi index.
- qcom,lpg-lut-enable-pause-lo: 1 = Enable pause time at lo index.
0 = Disable pause time at lo index.
Example:
qcom,spmi@fc4c0000 {
#address-cells = <1>;
#size-cells = <0>;
qcom,pm8941@1 {
spmi-slave-container;
reg = <0x1>;
#address-cells = <1>;
#size-cells = <1>;
pwm@b100 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "qcom,qpnp-pwm";
reg = <0xb100 0x100>, <0xb040 0x80>;
reg-names = "qpnp-lpg-channel-base", "qpnp-lpg-lut-base";
qcom,channel-id = <0>;
qcom,supported-sizes = <6>, <7>, <9>;
qcom,ramp-index = <0>;
status = "okay";
};
pwm@b200 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "qcom,qpnp-pwm";
reg = <0xb200 0x100>, <0xb040 0x80>;
reg-names = "qpnp-lpg-channel-base", "qpnp-lpg-lut-base";
qcom,channel-id = <1>;
qcom,supported-sizes = <6>, <7>, <9>;
qcom,ramp-index = <1>;
qcom,force-pwm-size = <9>;
qcom,period = <6000000>;
status = "okay";
qcom,pwm {
qcom,duty = <4000000>;
label = "pwm";
};
};
pwm@b500 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "qcom,qpnp-pwm"
reg = <0xb500 0x100>, <0xb040 0x80>;
reg-names = "qpnp-lpg-channel-base", "qpnp-lpg-lut-base";
qcom,channel-id = <4>;
qcom,supported-sizes = <6>, <7>, <9>;
qcom,ramp-index = <4>;
qcom,period = <6000000>;
qcom,mode-select = <0>;
qcom,channel-owner = "RGB-led";
status = "okay";
qcom,pwm {
qcom,duty = <4000000>;
label = "pwm";
};
qcom,lpg {
qcom,duty-percents = <1 14 28 42 56 84 100
100 84 56 42 28 14 1>;
cell-index = <0>;
qcom,ramp-step-duration = <20>;
label = "lpg";
};
};
pwm@b300 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "qcom,qpnp-pwm";
reg = <0xb200 0x100>, <0xb040 0x80>;
reg-names = "qpnp-lpg-channel-base", "qpnp-lpg-lut-base";
qcom,channel-id = <2>;
qcom,supported-sizes = <6>, <7>, <9>;
qcom,ramp-index = <1>;
qcom,force-pwm-size = <9>;
qcom,period = <6000000>;
qcom,dtest-line = <3>;
qcom,dtest-output = <1>;
status = "okay";
qcom,pwm {
qcom,duty = <4000000>;
label = "pwm";
};
};
};
};
There are couple of ways to configure PWM device channels as shown in above
example,
1. The PWM device channel #0 is configured with only required device bindings.
In this case, the qpnp-pwm driver does not configure any mode by default.
2. The qpnp-pwm driver configures PWM device channel #1 with PWM feature
configuration, but does not enable the channel since "qcom,mode-select" binding
is not specified in the devicetree.
3. Both the PWM and LPG configurations are provided for PWM device channel #4.
The qpnp-pwm driver configures both the modes, but enables PWM mode at the probe
time. It also sets the channel owner information for the channel.
4. This configuration is pretty similar to #2 above except in this case channel
#3 is configured for PWM mode. Also it's DTEST3 line is configured to output
LPG OUT low.

View File

@ -342,6 +342,13 @@ Required properties:
property enable apr driver to receive subsystem up/down
notification from modem/adsp.
Optional properties:
- compatible : "qcom,msm-audio-apr-dummy"
Add this compatible as child device to msm-audio-apr device.
This child device is added after lpass is up to invoke
deferred probe devices.
* msm-ocmem-audio
Required properties:
@ -483,6 +490,22 @@ Required properties:
- compatible : "qcom,msm-ext-disp-audio-codec-rx"
* SDM660 ASoC Machine driver
Required properties:
- compatible : "qcom,sdm660-asoc-snd"
* sdm660-asoc-snd-tasha
Required properties:
- compatible : "qcom,sdm660-asoc-snd-tasha"
* sdm660-asoc-snd-tavil
Required properties:
- compatible : "qcom,sdm660-asoc-snd-tavil"
Example:
qcom,msm-pcm {

View File

@ -238,6 +238,123 @@ pahu_codec {
};
};
Tombak audio CODEC in SPMI mode
- compatible = "qcom,msm-codec-core",
- compatible = "qcom,pmic-codec-digital"
- compatible = "qcom,pmic-codec-analog"
- reg: represents the slave base address provided to the peripheral.
- interrupt-parent : The parent interrupt controller.
- interrupts: List of interrupts in given SPMI peripheral.
- interrupt-names: Names specificed to above list of interrupts in same
order.
Optional properties:
- cdc-vdda-cp-supply: phandle of cp supply's regulator device tree node.
- qcom,cdc-vdda-cp-voltage: cp supply's voltage level min and max in mV.
- qcom,cdc-vdda-cp-current: cp supply's max current in mA.
- cdc-vdda-rx-h-supply: phandle of vdda-rx-h supply's regulator device tree node.
- qcom,cdc-vdda-rx-h-voltage: vdda-rx-h supply's voltage level min and max in mV.
- qcom,cdc-vdda-rx-h-current: vdda-rx-h supply's max current in mA.
- cdc-vdda-tx-h-supply: phandle of vdda-tx-h supply's regulator device tree node.
- qcom,cdc-vdda-tx-h-voltage: vdda-tx-h supply's voltage level min and max in mV.
- qcom,cdc-vdda-tx-h-current: vdda-tx-h supply's max current in mA.
- cdc-vdd-px-supply: phandle of vdd-px supply's regulator device tree node.
- qcom,cdc-vdd-px-voltage: vdd-px supply's voltage level min and max in mV.
- qcom,cdc-vdd-px-current: vdd-px supply's max current in mA.
- cdc-vdd-pa-supply: phandle of vdd-pa supply's regulator device tree node.
- qcom,cdc-vdd-pa-voltage: vdd-pa supply's voltage level min and max in mV.
- qcom,cdc-vdd-pa-current: vdd-pa supply's max current in mA.
- cdc-vdd-mic-bias-supply: phandle of mic-bias supply's regulator device tree
node.
- qcom,cdc-vdd-mic-bias-voltage: mic-bias supply's voltage level min and max
in mV.
- qcom,cdc-vdd-mic-bias-current: mic-bias supply's max current in mA.
- qcom,cdc-mclk-clk-rate: Specifies the master clock rate in Hz required for
codec.
- qcom,cdc-static-supplies: List of supplies to be enabled prior to codec
hardware probe. Supplies in this list will be
stay enabled.
- qcom,cdc-on-demand-supplies: List of supplies which can be enabled
dynamically.
Supplies in this list are off by default.
- qcom,cdc-micbias-cfilt-mv : MICBIAS voltage value
- qcom,cdc-boost-voltage: Specifies the analog boost output voltage value.
Value from 4000 to 5550 in mV in steps of 50 mV can be given.
- qcom,dig-cdc-base-addr: Specifies the digital codec base address for MSM digital
core register writes.
Example:
msm_digital_codec: msm-dig-codec@c0f0000 {
compatible = "qcom,msm-digital-codec";
reg = <0xc0f0000 0x0>;
};
pmic_analog_codec: analog-codec@f000 {
compatible = "qcom,pmic-analog-codec";
reg = <0xf000 0x200>;
interrupt-parent = <&spmi_bus>;
interrupts = <0x1 0xf0 0x0>,
<0x1 0xf0 0x1>,
<0x1 0xf0 0x2>,
<0x1 0xf0 0x3>,
<0x1 0xf0 0x4>,
<0x1 0xf0 0x5>,
<0x1 0xf0 0x6>,
<0x1 0xf0 0x7>;
interrupt-names = "spk_cnp_int",
"spk_clip_int",
"spk_ocp_int",
"ins_rem_det1",
"but_rel_det",
"but_press_det",
"ins_rem_det",
"mbhc_int";
cdc-vdda-cp-supply = <&pm8916_s4>;
qcom,cdc-vdda-cp-voltage = <1800000 2200000>;
qcom,cdc-vdda-cp-current = <770000>;
cdc-vdda-rx-h-supply = <&pm8916_l5>;
qcom,cdc-vdda-rx-h-voltage = <1800000 1800000>;
qcom,cdc-vdda-rx-h-current = <20000>;
cdc-vdda-tx-h-supply = <&pm8916_l5>;
qcom,cdc-vdda-tx-h-voltage = <1800000 1800000>;
qcom,cdc-vdda-tx-h-current = <20000>;
cdc-vdd-px-supply = <&pm8916_s4>;
qcom,cdc-vdd-px-voltage = <1800000 2200000>;
qcom,cdc-vdd-px-current = <770000>;
cdc-vdd-pa-supply = <&pm8916_l5>;
qcom,cdc-vdd-pa-voltage = <1800000 1800000>;
qcom,cdc-vdd-pa-current = <5000>;
cdc-vdd-mic-bias-supply = <&pm8916_l13>;
qcom,cdc-vdd-mic-bias-voltage = <3075000 3075000>;
qcom,cdc-vdd-mic-bias-current = <25000>;
qcom,cdc-mclk-clk-rate = <9600000>;
qcom,cdc-static-supplies = "cdc-vdda-h",
"cdc-vdd-px",
"cdc-vdd-pa",
"cdc-vdda-cp";
qcom,cdc-on-demand-supplies = "cdc-vdd-mic-bias";
};
Wcd9xxx audio CODEC in I2C mode
- compatible = "qcom,wcd9xxx-i2c-device";

View File

@ -12,6 +12,8 @@ VADC_TM node
Required properties:
- compatible : should be "qcom,qpnp-adc-tm" for thermal ADC driver.
: should be "qcom,qpnp-adc-tm-hc" for thermal ADC driver using
refreshed BTM peripheral.
- reg : offset and length of the PMIC Aribter register map.
- address-cells : Must be one.
- size-cells : Must be zero.

View File

@ -0,0 +1,77 @@
Qualcomm Technologies, Inc. QPNP Temperature Alarm
QPNP temperature alarm peripherals are found inside of Qualcomm Technologies,
Inc. PMIC chips that utilize the MSM SPMI implementation. These peripherals
provide an interrupt signal and status register to identify high PMIC die
temperature.
Required properties:
- compatible: Must be "qcom,qpnp-temp-alarm".
- reg: Specifies the SPMI address and size for this temperature
alarm device.
- interrupts: PMIC temperature alarm interrupt
- label: A string used as a descriptive name for this thermal device.
This name should be 19 characters or less.
Required structure:
- A qcom,qpnp-temp-alarm node must be a child of an SPMI node that has specified
the spmi-slave-container property
Optional properties:
- qcom,channel-num: VADC channel number associated PMIC DIE_TEMP thermistor.
If no channel is specified, then the die temperature
must be estimated based on the over temperature stage.
- qcom,threshold-set: Integer value which specifies which set of threshold
temperatures to use for the over temperature stages.
Possible values (x = {stage 1 threshold temperature,
stage 2 threshold temperature,
stage 3 threshold temperature}):
0 = {105 C, 125 C, 145 C}
1 = {110 C, 130 C, 150 C}
2 = {115 C, 135 C, 155 C}
3 = {120 C, 140 C, 160 C}
- qcom,clock-rate: Integer value which specifies the temperature monitoring
clock rate. This property is only supported on GEN2
temperature alarm peripherals.
Supported values:
0 = 100 Hz
1 = 50 Hz
2 = 25 Hz
3 = 12.5 Hz
- qcom,allow-override: Boolean which controls the ability of software to
override shutdowns. If present, then software is
allowed to override automatic PMIC hardware stage 2 and
stage 3 over temperature shutdowns. Otherwise, software
is not allowed to override automatic shutdown.
- qcom,default-temp: Specifies the default temperature in millicelcius to use
if no ADC channel is present to read the real time
temperature.
- qcom,temp_alarm-vadc: Corresponding VADC device's phandle.
Note, if a given optional qcom,* binding is not present, then the default
hardware state for that feature will be maintained.
Example:
&spmi_bus {
#address-cells = <1>;
#size-cells = <0>;
interrupt-controller;
#interrupt-cells = <3>;
qcom,pm8941@0 {
spmi-slave-container;
reg = <0x0>;
#address-cells = <1>;
#size-cells = <1>;
qcom,temp-alarm@2400 {
compatible = "qcom,qpnp-temp-alarm";
reg = <0x2400 0x100>;
interrupts = <0x0 0x24 0x0>;
label = "pm8941_tz";
qcom,channel-num = <8>;
qcom,threshold-set = <0>;
qcom,temp_alarm-vadc = <&pm8941_vadc>;
};
};
};

View File

@ -333,6 +333,29 @@ dtb-$(CONFIG_ARCH_SDXPRAIRIE) += sdxprairie-rumi.dtb \
dtb-$(CONFIG_ARCH_MDM9607) += mdm9607-mtp.dtb
dtb-$(CONFIG_ARCH_SDM660) += sdm660-sim.dtb \
sdm660-internal-codec-cdp.dtb \
sdm660-internal-codec-mtp.dtb \
sdm660-internal-codec-rcm.dtb \
sdm660-cdp.dtb \
sdm660-mtp.dtb \
sdm660-qrd.dtb \
sdm660-rcm.dtb \
sdm660-pm660a-cdp.dtb \
sdm660-pm660a-mtp.dtb \
sdm660-pm660a-qrd.dtb \
sdm660-pm660a-rcm.dtb \
sdm660-internal-codec-pm660a-cdp.dtb \
sdm660-internal-codec-pm660a-mtp.dtb \
sdm660-internal-codec-pm660a-rcm.dtb \
sdm660-pm660a-sim.dtb \
sdm660-headset-jacktype-no-cdp.dtb \
sdm660-headset-jacktype-no-rcm.dtb \
sdm660-pm660a-headset-jacktype-no-cdp.dtb \
sdm660-pm660a-headset-jacktype-no-rcm.dtb \
sdm660-usbc-audio-mtp.dtb \
sdm660-usbc-audio-rcm.dtb \
ifeq ($(CONFIG_ARM64),y)
always := $(dtb-y)
subdir-y := $(dts-dirs)

View File

@ -0,0 +1,132 @@
/* Copyright (c) 2018-2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
&mdss_mdp {
dsi_hx8399c_truly_vid: qcom,mdss_dsi_hx8399_truly_fhd_video {
qcom,mdss-dsi-panel-name =
"hx8399c video mode dsi truly panel";
qcom,mdss-dsi-panel-type = "dsi_video_mode";
qcom,mdss-dsi-panel-framerate = <60>;
qcom,mdss-dsi-virtual-channel-id = <0>;
qcom,mdss-dsi-stream = <0>;
qcom,mdss-dsi-panel-width = <1080>;
qcom,mdss-dsi-panel-height = <2160>;
qcom,mdss-dsi-h-front-porch = <42>;
qcom,mdss-dsi-h-back-porch = <42>;
qcom,mdss-dsi-h-pulse-width = <10>;
qcom,mdss-dsi-h-sync-skew = <0>;
qcom,mdss-dsi-v-back-porch = <15>;
qcom,mdss-dsi-v-front-porch = <10>;
qcom,mdss-dsi-v-pulse-width = <3>;
qcom,mdss-dsi-h-left-border = <0>;
qcom,mdss-dsi-h-right-border = <0>;
qcom,mdss-dsi-v-top-border = <0>;
qcom,mdss-dsi-v-bottom-border = <0>;
qcom,mdss-pan-physical-width-dimension = <65>;
qcom,mdss-pan-physical-height-dimension = <129>;
qcom,mdss-dsi-bpp = <24>;
qcom,mdss-dsi-color-order = "rgb_swap_rgb";
qcom,mdss-dsi-underflow-color = <0xff>;
qcom,mdss-dsi-border-color = <0>;
qcom,mdss-dsi-on-command = [
39 01 00 00 00 00 04
b9 ff 83 99
39 01 00 00 00 00 02
d2 88
39 01 00 00 00 00 0c
b1 02 04 72 92 01
32 aa 11 11 52 57
39 01 00 00 00 00 10
b2 00 80 80 cc 05 07 5a
11 10 10 00 1e 70 03 d4
39 01 00 00 00 00 2d
b4 00 ff 59 59 01 ab 00
00 09 00 03 05 00 28 03
0b 0d 21 03 02 00 0c a3
80 59 59 02 ab 00 00 09
00 03 05 00 28 03 0b 0d
02 00 0c a3 01
39 01 00 00 05 00 22
d3 00 0c 03 03 00 00 10
10 00 00 03 00 03 00 08
78 08 78 00 00 00 00 00
24 02 05 05 03 00 00 00
05 40
39 01 00 00 05 00 21
d5 20 20 19 19 18 18 02
03 00 01 24 24 18 18 18
18 24 24 00 00 00 00 00
00 00 00 2f 2f 30 30 31
31
39 01 00 00 05 00 21
d6 24 24 18 18 19 19 01
00 03 02 24 24 18 18 18
18 20 20 40 40 40 40 40
40 40 40 2f 2f 30 30 31
31
39 01 00 00 00 00 02
bd 00
39 01 00 00 00 00 11
d8 aa aa aa aa aa aa aa
aa aa ba aa aa aa ba aa
aa
39 01 00 00 00 00 02
bd 01
39 01 00 00 00 00 11
d8 00 00 00 00 00 00 00
00 82 ea aa aa 82 ea aa
aa
39 01 00 00 00 00 02
bd 02
39 01 00 00 00 00 09
d8 ff ff c0 3f ff ff c0
3f
39 01 00 00 00 00 02
bd 00
39 01 00 00 05 00 37
e0 01 21 31 2d 66 6f 7b
75 7a 81 86 89 8c 90 95
97 9a a1 a2 aa 9e ad b0
5b 57 63 7a 01 21 31 2d
66 6f 7b 75 7a 81 86 89
8c 90 95 97 9a a1 a2 aa
9e ad b0 5b 57 63 7a
39 01 00 00 00 00 03
b6 7e 7e
39 01 00 00 00 00 02
cc 08
05 01 00 00 96 00 02 11 00
05 01 00 00 32 00 02 29 00];
qcom,mdss-dsi-off-command = [
05 01 00 00 32 00 02 28 00
05 01 00 00 96 00 02 10 00];
qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
qcom,mdss-dsi-off-command-state = "dsi_hs_mode";
qcom,mdss-dsi-h-sync-pulse = <0>;
qcom,mdss-dsi-traffic-mode = "non_burst_sync_event";
qcom,mdss-dsi-lane-map = "lane_map_0123";
qcom,mdss-dsi-bllp-eof-power-mode;
qcom,mdss-dsi-bllp-power-mode;
qcom,mdss-dsi-tx-eot-append;
qcom,mdss-dsi-lane-0-state;
qcom,mdss-dsi-lane-1-state;
qcom,mdss-dsi-lane-2-state;
qcom,mdss-dsi-lane-3-state;
qcom,mdss-dsi-t-clk-post = <0x0e>;
qcom,mdss-dsi-t-clk-pre = <0x31>;
qcom,mdss-dsi-dma-trigger = "trigger_sw";
qcom,mdss-dsi-mdp-trigger = "none";
qcom,mdss-dsi-lp11-init;
qcom,mdss-dsi-reset-sequence = <1 10>, <0 10>, <1 10>;
};
};

View File

@ -0,0 +1,115 @@
/* Copyright (c) 2018-2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
&mdss_mdp {
dsi_lgd_incell_sw49106_fhd_video:
qcom,mdss_dsi_lgd_incell_sw49106_fhd_video {
qcom,mdss-dsi-panel-name =
"lgd incell sw49106 fhd video";
qcom,mdss-dsi-panel-type = "dsi_video_mode";
qcom,mdss-dsi-panel-framerate = <60>;
qcom,mdss-dsi-virtual-channel-id = <0>;
qcom,mdss-dsi-stream = <0>;
qcom,mdss-dsi-panel-width = <1080>;
qcom,mdss-dsi-panel-height = <2160>;
qcom,mdss-dsi-h-front-porch = <8>;
qcom,mdss-dsi-h-back-porch = <8>;
qcom,mdss-dsi-h-pulse-width = <4>;
qcom,mdss-dsi-h-sync-skew = <0>;
qcom,mdss-dsi-v-back-porch = <92>;
qcom,mdss-dsi-v-front-porch = <170>;
qcom,mdss-dsi-v-pulse-width = <1>;
qcom,mdss-dsi-h-left-border = <0>;
qcom,mdss-dsi-h-right-border = <0>;
qcom,mdss-dsi-v-top-border = <0>;
qcom,mdss-dsi-v-bottom-border = <0>;
qcom,mdss-dsi-bpp = <24>;
qcom,mdss-dsi-underflow-color = <0xff>;
qcom,mdss-dsi-border-color = <0>;
qcom,mdss-dsi-h-sync-pulse = <0>;
qcom,mdss-dsi-traffic-mode = "burst_mode";
qcom,mdss-dsi-bllp-eof-power-mode;
qcom,mdss-dsi-bllp-power-mode;
qcom,mdss-dsi-lane-0-state;
qcom,mdss-dsi-lane-1-state;
qcom,mdss-dsi-lane-2-state;
qcom,mdss-dsi-lane-3-state;
qcom,mdss-dsi-panel-timings = [F8 3C 28 00 6E 72 2E
40 30 03 04 00];
qcom,mdss-dsi-t-clk-post = <0x02>;
qcom,mdss-dsi-t-clk-pre = <0x2D>;
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <4095>;
qcom,mdss-dsi-dma-trigger = "trigger_sw";
qcom,mdss-dsi-mdp-trigger = "none";
qcom,mdss-dsi-on-command = [05 01 00 00 0B 00 02 35 00
15 01 00 00 00 00 02 36 00
15 01 00 00 00 00 02 51 FF
15 01 00 00 00 00 02 53 24
15 01 00 00 00 00 02 55 80
39 01 00 00 00 00 02 B0 AC
39 01 00 00 00 00 06 B1 46 00 80 14 85
39 01 00 00 00 00 08 B3 05 08 14 00 1C 00 02
39 01 00 00 00 00 10 B4 83 08 00 04 04 04 04 00
00 00 00 00 00 00 00
39 01 00 00 00 00 13 B5 03 1E 0B 02 29 00 00 00
00 04 00 24 00 10 10 10 10 00
39 01 00 00 00 00 0A B6 00 72 39 13 08 67 00 60 46
39 01 00 00 00 00 05 B7 00 50 37 04
39 01 00 00 00 00 0C B8 70 38 14 ED 08 04 00 01
0A A0 00
39 01 00 00 00 00 06 C0 8A 8F 18 C1 12
39 01 00 00 00 00 07 C1 01 00 30 C2 C7 0F
39 01 00 00 00 00 03 C2 2A 00
39 01 00 00 00 00 07 C3 05 0E 0E 50 88 09
39 01 00 00 00 00 04 C4 A2 E8 F4
39 01 00 00 00 00 05 C5 C2 2A 4E 08
39 01 00 00 00 00 03 C6 15 01
39 01 00 00 00 00 07 CA 00 00 03 84 55 F5
39 01 00 00 00 00 03 CB 3F A0
39 01 00 00 00 00 09 CC F0 03 10 55 11 FC 34 34
39 01 00 00 00 00 07 CD 11 50 50 90 00 F3
39 01 00 00 00 00 07 CE A0 28 28 34 00 AB
39 01 00 00 00 00 10 D0 10 1B 22 2A 35 42 4A 53 4D
44 34 23 10 03 81
39 01 00 00 00 00 10 D1 09 15 1C 25 31 3F 47 52 4F
45 34 22 0E 01 83
39 01 00 00 00 00 10 D2 10 1B 22 29 34 41 49 52 4E
44 34 23 10 03 81
39 01 00 00 00 00 10 D3 09 15 1C 24 30 3E 46 51 50
45 34 22 0E 01 83
39 01 00 00 00 00 10 D4 10 1B 22 2A 35 42 4A 53 4D
44 34 23 10 03 81
39 01 00 00 00 00 10 D5 09 15 1C 25 31 3F 47 52 4F
45 34 22 0E 01 83
39 01 00 00 00 00 0D E5 24 23 11 10 00 0A 08 06 04
11 0E 23
39 01 00 00 00 00 0D E6 24 23 11 10 01 0B 09 07 05
11 0E 23
39 01 00 00 00 00 07 E7 15 16 17 18 19 1A
39 01 00 00 00 00 07 E8 1B 1C 1D 1E 1F 20
39 01 00 00 00 00 05 ED 00 01 53 0C
39 01 00 00 00 00 03 F0 B2 00
39 01 00 00 00 00 05 F2 01 00 17 00
39 01 00 00 64 00 07 F3 00 50 90 C9 00 01
05 01 00 00 78 00 02 11 00
05 01 00 00 05 00 02 29 00];
qcom,mdss-dsi-off-command = [05 01 00 00 32 00 02 28 00
05 01 00 00 64 00 02 10 00];
qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
qcom,mdss-dsi-off-command-state = "dsi_lp_mode";
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-dsi-reset-sequence = <1 400>, <0 400>, <1 400>;
qcom,mdss-dsi-tx-eot-append;
qcom,mdss-dsi-post-init-delay = <1>;
};
};

View File

@ -0,0 +1,105 @@
/* Copyright (c) 2015-2017, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
&mdss_mdp {
dsi_dual_nt35597_cmd: qcom,mdss_dsi_nt35597_wqxga_cmd{
qcom,mdss-dsi-panel-name =
"Dual nt35597 cmd mode dsi panel without DSC";
qcom,mdss-dsi-panel-type = "dsi_cmd_mode";
qcom,mdss-dsi-panel-framerate = <60>;
qcom,mdss-dsi-virtual-channel-id = <0>;
qcom,mdss-dsi-stream = <0>;
qcom,mdss-dsi-panel-width = <720>;
qcom,mdss-dsi-panel-height = <2560>;
qcom,mdss-dsi-h-front-porch = <100>;
qcom,mdss-dsi-h-back-porch = <32>;
qcom,mdss-dsi-h-pulse-width = <16>;
qcom,mdss-dsi-h-sync-skew = <0>;
qcom,mdss-dsi-v-back-porch = <7>;
qcom,mdss-dsi-v-front-porch = <8>;
qcom,mdss-dsi-v-pulse-width = <1>;
qcom,mdss-dsi-h-left-border = <0>;
qcom,mdss-dsi-h-right-border = <0>;
qcom,mdss-dsi-v-top-border = <0>;
qcom,mdss-dsi-v-bottom-border = <0>;
qcom,mdss-dsi-bpp = <24>;
qcom,mdss-dsi-color-order = "rgb_swap_rgb";
qcom,mdss-dsi-underflow-color = <0xff>;
qcom,mdss-dsi-border-color = <0>;
qcom,mdss-dsi-h-sync-pulse = <0>;
qcom,mdss-dsi-traffic-mode = "non_burst_sync_event";
qcom,mdss-dsi-bllp-eof-power-mode;
qcom,mdss-dsi-bllp-power-mode;
qcom,mdss-dsi-lane-0-state;
qcom,mdss-dsi-lane-1-state;
qcom,mdss-dsi-lane-2-state;
qcom,mdss-dsi-lane-3-state;
qcom,mdss-dsi-panel-timings = [cd 32 22 00 60 64 26 34 29 03
04 00];
qcom,adjust-timer-wakeup-ms = <1>;
qcom,mdss-dsi-reset-sequence = <1 10>, <0 10>, <1 10>;
qcom,mdss-pan-physical-width-dimension = <74>;
qcom,mdss-pan-physical-height-dimension = <131>;
qcom,mdss-dsi-t-clk-post = <0x0d>;
qcom,mdss-dsi-t-clk-pre = <0x2d>;
qcom,mdss-dsi-bl-max-level = <4095>;
qcom,mdss-dsi-dma-trigger = "trigger_sw";
qcom,mdss-dsi-mdp-trigger = "none";
qcom,mdss-dsi-te-pin-select = <1>;
qcom,mdss-dsi-wr-mem-start = <0x2c>;
qcom,mdss-dsi-wr-mem-continue = <0x3c>;
qcom,mdss-dsi-te-dcs-command = <1>;
qcom,mdss-dsi-te-check-enable;
qcom,mdss-dsi-te-using-te-pin;
qcom,ulps-enabled;
qcom,mdss-dsi-on-command = [15 01 00 00 10 00 02 ff 10
15 01 00 00 10 00 02 fb 01
15 01 00 00 10 00 02 ba 03
15 01 00 00 10 00 02 e5 01
15 01 00 00 10 00 02 35 00
15 01 00 00 10 00 02 bb 10
15 01 00 00 10 00 02 b0 03
15 01 00 00 10 00 02 ff e0
15 01 00 00 10 00 02 fb 01
15 01 00 00 10 00 02 6b 3d
15 01 00 00 10 00 02 6c 3d
15 01 00 00 10 00 02 6d 3d
15 01 00 00 10 00 02 6e 3d
15 01 00 00 10 00 02 6f 3d
15 01 00 00 10 00 02 35 02
15 01 00 00 10 00 02 36 72
15 01 00 00 10 00 02 37 10
15 01 00 00 10 00 02 08 c0
15 01 00 00 10 00 02 ff 24
15 01 00 00 10 00 02 fb 01
15 01 00 00 10 00 02 c6 06
15 01 00 00 10 00 02 ff 10
05 01 00 00 a0 00 02 11 00
05 01 00 00 a0 00 02 29 00];
qcom,mdss-dsi-off-command = [05 01 00 00 0a 00 02 28 00
05 01 00 00 3c 00 02 10 00];
qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
qcom,mdss-dsi-off-command-state = "dsi_hs_mode";
qcom,config-select = <&dsi_dual_nt35597_cmd_config0>;
dsi_dual_nt35597_cmd_config0: config0 {
qcom,split-mode = "dualctl-split";
};
dsi_dual_nt35597_cmd_config1: config1 {
qcom,split-mode = "pingpong-split";
};
};
};

View File

@ -0,0 +1,96 @@
/* Copyright (c) 2015-2017, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
&mdss_mdp {
dsi_dual_nt35597_video: qcom,mdss_dsi_nt35597_wqxga_video {
qcom,mdss-dsi-panel-name = "Dual nt35597 video mode dsi
panel without DSC";
qcom,mdss-dsi-panel-type = "dsi_video_mode";
qcom,mdss-dsi-panel-framerate = <60>;
qcom,mdss-dsi-virtual-channel-id = <0>;
qcom,mdss-dsi-stream = <0>;
qcom,mdss-dsi-panel-width = <720>;
qcom,mdss-dsi-panel-height = <2560>;
qcom,mdss-dsi-h-front-porch = <100>;
qcom,mdss-dsi-h-back-porch = <32>;
qcom,mdss-dsi-h-pulse-width = <16>;
qcom,mdss-dsi-h-sync-skew = <0>;
qcom,mdss-dsi-v-back-porch = <7>;
qcom,mdss-dsi-v-front-porch = <8>;
qcom,mdss-dsi-v-pulse-width = <1>;
qcom,mdss-dsi-bpp = <24>;
qcom,mdss-dsi-underflow-color = <0x3ff>;
qcom,mdss-dsi-border-color = <0>;
qcom,mdss-dsi-panel-hdr-enabled;
qcom,mdss-dsi-panel-hdr-color-primaries = <14500 15500 32000
17000 15500 30000 8000 3000>;
qcom,mdss-dsi-panel-peak-brightness = <4200000>;
qcom,mdss-dsi-panel-blackness-level = <3230>;
qcom,mdss-dsi-on-command = [15 01 00 00 00 00 02 ff 10
15 01 00 00 00 00 02 fb 01
15 01 00 00 00 00 02 ba 03
15 01 00 00 00 00 02 e5 01
15 01 00 00 00 00 02 35 00
15 01 00 00 00 00 02 bb 03
15 01 00 00 00 00 02 b0 03
39 01 00 00 00 00 06 3b 03 08 08 64 9a
15 01 00 00 00 00 02 ff e0
15 01 00 00 00 00 02 fb 01
15 01 00 00 00 00 02 6b 3d
15 01 00 00 00 00 02 6c 3d
15 01 00 00 00 00 02 6d 3d
15 01 00 00 00 00 02 6e 3d
15 01 00 00 00 00 02 6f 3d
15 01 00 00 00 00 02 35 02
15 01 00 00 00 00 02 36 72
15 01 00 00 00 00 02 37 10
15 01 00 00 00 00 02 08 c0
15 01 00 00 00 00 02 ff 10
05 01 00 00 78 00 02 11 00
05 01 00 00 32 00 02 29 00];
qcom,mdss-dsi-off-command = [05 01 00 00 0a 00 02 28 00
05 01 00 00 3c 00 02 10 00];
qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
qcom,mdss-dsi-off-command-state = "dsi_hs_mode";
qcom,mdss-dsi-h-sync-pulse = <0>;
qcom,mdss-dsi-traffic-mode = "non_burst_sync_event";
qcom,mdss-dsi-bllp-eof-power-mode;
qcom,mdss-dsi-bllp-power-mode;
qcom,mdss-dsi-lane-0-state;
qcom,mdss-dsi-lane-1-state;
qcom,mdss-dsi-lane-2-state;
qcom,mdss-dsi-lane-3-state;
qcom,mdss-dsi-panel-timings = [e2 36 24 00 66 6a 28 38 2a
03 04 00];
qcom,mdss-dsi-t-clk-post = <0x0d>;
qcom,mdss-dsi-t-clk-pre = <0x2d>;
qcom,mdss-dsi-dma-trigger = "trigger_sw";
qcom,mdss-dsi-mdp-trigger = "none";
qcom,mdss-dsi-reset-sequence = <1 10>, <0 10>, <1 10>;
qcom,mdss-pan-physical-width-dimension = <74>;
qcom,mdss-pan-physical-height-dimension = <131>;
qcom,mdss-dsi-min-refresh-rate = <55>;
qcom,mdss-dsi-max-refresh-rate = <60>;
qcom,mdss-dsi-pan-enable-dynamic-fps;
qcom,mdss-dsi-pan-fps-update = "dfps_immediate_porch_mode_vfp";
qcom,config-select = <&dsi_dual_nt35597_video_config0>;
dsi_dual_nt35597_video_config0: config0 {
qcom,split-mode = "dualctl-split";
};
dsi_dual_nt35597_video_config1: config1 {
qcom,split-mode = "pingpong-split";
};
};
};

View File

@ -1,4 +1,4 @@
/* Copyright (c) 2016-2017, The Linux Foundation. All rights reserved.
/* Copyright (c) 2016-2017, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@ -243,5 +243,16 @@
qcom,mdss-dsc-block-prediction-enable;
};
};
dsi_nt35597_truly_dsc_cmd_config2: config2 {
qcom,lm-split = <720 720>;
qcom,mdss-dsc-encoders = <2>; /* DSC Merge */
qcom,mdss-dsc-slice-height = <16>;
qcom,mdss-dsc-slice-width = <720>;
qcom,mdss-dsc-slice-per-pkt = <2>;
qcom,mdss-dsc-bit-per-component = <8>;
qcom,mdss-dsc-bit-per-pixel = <8>;
qcom,mdss-dsc-block-prediction-enable;
};
};
};

View File

@ -1,4 +1,4 @@
/* Copyright (c) 2016-2018, The Linux Foundation. All rights reserved.
/* Copyright (c) 2016-2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@ -229,5 +229,16 @@
qcom,mdss-dsc-block-prediction-enable;
};
};
dsi_nt35597_truly_dsc_video_config2: config2 {
qcom,lm-split = <720 720>;
qcom,mdss-dsc-encoders = <2>; /* DSC Merge */
qcom,mdss-dsc-slice-height = <16>;
qcom,mdss-dsc-slice-width = <720>;
qcom,mdss-dsc-slice-per-pkt = <2>;
qcom,mdss-dsc-bit-per-component = <8>;
qcom,mdss-dsc-bit-per-pixel = <8>;
qcom,mdss-dsc-block-prediction-enable;
};
};
};

View File

@ -1,4 +1,4 @@
/* Copyright (c) 2016-2017, The Linux Foundation. All rights reserved.
/* Copyright (c) 2016-2017, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@ -15,13 +15,177 @@
qcom,mdss-dsi-panel-name =
"Dual nt35597 video mode dsi truly panel without DSC";
qcom,mdss-dsi-panel-type = "dsi_video_mode";
qcom,mdss-dsi-panel-framerate = <60>;
qcom,mdss-dsi-virtual-channel-id = <0>;
qcom,mdss-dsi-stream = <0>;
qcom,mdss-dsi-panel-hdr-enabled;
qcom,mdss-dsi-panel-hdr-color-primaries = <14500 15500 32000
17000 15500 30000 8000 3000>;
qcom,mdss-dsi-panel-peak-brightness = <4200000>;
qcom,mdss-dsi-panel-blackness-level = <3230>;
qcom,mdss-dsi-panel-width = <720>;
qcom,mdss-dsi-panel-height = <2560>;
qcom,mdss-dsi-h-front-porch = <100>;
qcom,mdss-dsi-h-back-porch = <32>;
qcom,mdss-dsi-h-pulse-width = <16>;
qcom,mdss-dsi-h-sync-skew = <0>;
qcom,mdss-dsi-v-back-porch = <7>;
qcom,mdss-dsi-v-front-porch = <8>;
qcom,mdss-dsi-v-pulse-width = <1>;
qcom,mdss-dsi-bpp = <24>;
qcom,mdss-dsi-underflow-color = <0x3ff>;
qcom,mdss-dsi-border-color = <0>;
qcom,mdss-dsi-on-command = [
/* CMD2_P0 */
15 01 00 00 00 00 02 FF 20
15 01 00 00 00 00 02 FB 01
15 01 00 00 00 00 02 00 01
15 01 00 00 00 00 02 01 55
15 01 00 00 00 00 02 02 45
15 01 00 00 00 00 02 05 40
15 01 00 00 00 00 02 06 19
15 01 00 00 00 00 02 07 1E
15 01 00 00 00 00 02 0B 73
15 01 00 00 00 00 02 0C 73
15 01 00 00 00 00 02 0E B0
15 01 00 00 00 00 02 0F AE
15 01 00 00 00 00 02 11 B8
15 01 00 00 00 00 02 13 00
15 01 00 00 00 00 02 58 80
15 01 00 00 00 00 02 59 01
15 01 00 00 00 00 02 5A 00
15 01 00 00 00 00 02 5B 01
15 01 00 00 00 00 02 5C 80
15 01 00 00 00 00 02 5D 81
15 01 00 00 00 00 02 5E 00
15 01 00 00 00 00 02 5F 01
15 01 00 00 00 00 02 72 11
15 01 00 00 00 00 02 68 03
/* CMD2_P4 */
15 01 00 00 00 00 02 FF 24
15 01 00 00 00 00 02 FB 01
15 01 00 00 00 00 02 00 1C
15 01 00 00 00 00 02 01 0B
15 01 00 00 00 00 02 02 0C
15 01 00 00 00 00 02 03 01
15 01 00 00 00 00 02 04 0F
15 01 00 00 00 00 02 05 10
15 01 00 00 00 00 02 06 10
15 01 00 00 00 00 02 07 10
15 01 00 00 00 00 02 08 89
15 01 00 00 00 00 02 09 8A
15 01 00 00 00 00 02 0A 13
15 01 00 00 00 00 02 0B 13
15 01 00 00 00 00 02 0C 15
15 01 00 00 00 00 02 0D 15
15 01 00 00 00 00 02 0E 17
15 01 00 00 00 00 02 0F 17
15 01 00 00 00 00 02 10 1C
15 01 00 00 00 00 02 11 0B
15 01 00 00 00 00 02 12 0C
15 01 00 00 00 00 02 13 01
15 01 00 00 00 00 02 14 0F
15 01 00 00 00 00 02 15 10
15 01 00 00 00 00 02 16 10
15 01 00 00 00 00 02 17 10
15 01 00 00 00 00 02 18 89
15 01 00 00 00 00 02 19 8A
15 01 00 00 00 00 02 1A 13
15 01 00 00 00 00 02 1B 13
15 01 00 00 00 00 02 1C 15
15 01 00 00 00 00 02 1D 15
15 01 00 00 00 00 02 1E 17
15 01 00 00 00 00 02 1F 17
/* STV */
15 01 00 00 00 00 02 20 40
15 01 00 00 00 00 02 21 01
15 01 00 00 00 00 02 22 00
15 01 00 00 00 00 02 23 40
15 01 00 00 00 00 02 24 40
15 01 00 00 00 00 02 25 6D
15 01 00 00 00 00 02 26 40
15 01 00 00 00 00 02 27 40
/* Vend */
15 01 00 00 00 00 02 E0 00
15 01 00 00 00 00 02 DC 21
15 01 00 00 00 00 02 DD 22
15 01 00 00 00 00 02 DE 07
15 01 00 00 00 00 02 DF 07
15 01 00 00 00 00 02 E3 6D
15 01 00 00 00 00 02 E1 07
15 01 00 00 00 00 02 E2 07
/* UD */
15 01 00 00 00 00 02 29 D8
15 01 00 00 00 00 02 2A 2A
/* CLK */
15 01 00 00 00 00 02 4B 03
15 01 00 00 00 00 02 4C 11
15 01 00 00 00 00 02 4D 10
15 01 00 00 00 00 02 4E 01
15 01 00 00 00 00 02 4F 01
15 01 00 00 00 00 02 50 10
15 01 00 00 00 00 02 51 00
15 01 00 00 00 00 02 52 80
15 01 00 00 00 00 02 53 00
15 01 00 00 00 00 02 56 00
15 01 00 00 00 00 02 54 07
15 01 00 00 00 00 02 58 07
15 01 00 00 00 00 02 55 25
/* Reset XDONB */
15 01 00 00 00 00 02 5B 43
15 01 00 00 00 00 02 5C 00
15 01 00 00 00 00 02 5F 73
15 01 00 00 00 00 02 60 73
15 01 00 00 00 00 02 63 22
15 01 00 00 00 00 02 64 00
15 01 00 00 00 00 02 67 08
15 01 00 00 00 00 02 68 04
/* Resolution:1440x2560*/
15 01 00 00 00 00 02 72 02
/* mux */
15 01 00 00 00 00 02 7A 80
15 01 00 00 00 00 02 7B 91
15 01 00 00 00 00 02 7C D8
15 01 00 00 00 00 02 7D 60
15 01 00 00 00 00 02 7F 15
15 01 00 00 00 00 02 75 15
/* ABOFF */
15 01 00 00 00 00 02 B3 C0
15 01 00 00 00 00 02 B4 00
15 01 00 00 00 00 02 B5 00
/* Source EQ */
15 01 00 00 00 00 02 78 00
15 01 00 00 00 00 02 79 00
15 01 00 00 00 00 02 80 00
15 01 00 00 00 00 02 83 00
/* FP BP */
15 01 00 00 00 00 02 93 0A
15 01 00 00 00 00 02 94 0A
/* Inversion Type */
15 01 00 00 00 00 02 8A 00
15 01 00 00 00 00 02 9B FF
/* IMGSWAP =1 @PortSwap=1 */
15 01 00 00 00 00 02 9D B0
15 01 00 00 00 00 02 9F 63
15 01 00 00 00 00 02 98 10
/* FRM */
15 01 00 00 00 00 02 EC 00
/* CMD1 */
15 01 00 00 00 00 02 FF 10
/* VBP+VSA=,VFP = 10H */
15 01 00 00 00 00 04 3B 03 0A 0A
/* FTE on */
15 01 00 00 00 00 02 35 00
/* EN_BK =1(auto black) */
15 01 00 00 00 00 02 E5 01
/* CMD mode(10) VDO mode(03) */
15 01 00 00 00 00 02 BB 03
/* Non Reload MTP */
15 01 00 00 00 00 02 FB 01
/* SlpOut + DispOn */
05 01 00 00 78 00 02 11 00
05 01 00 00 78 00 02 29 00
];
qcom,mdss-dsi-off-command = [05 01 00 00 78 00 02 28 00
05 01 00 00 78 00 02 10 00];
qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
qcom,mdss-dsi-off-command-state = "dsi_hs_mode";
qcom,mdss-dsi-h-sync-pulse = <0>;
qcom,mdss-dsi-traffic-mode = "non_burst_sync_event";
qcom,mdss-dsi-bllp-eof-power-mode;
qcom,mdss-dsi-bllp-power-mode;
@ -29,185 +193,23 @@
qcom,mdss-dsi-lane-1-state;
qcom,mdss-dsi-lane-2-state;
qcom,mdss-dsi-lane-3-state;
qcom,mdss-dsi-panel-timings = [e2 36 24 00 66 6a 28 38 2a 03
04 00];
qcom,mdss-dsi-t-clk-post = <0x0d>;
qcom,mdss-dsi-t-clk-pre = <0x2d>;
qcom,mdss-dsi-dma-trigger = "trigger_sw";
qcom,mdss-dsi-mdp-trigger = "none";
qcom,mdss-dsi-reset-sequence = <1 20>, <0 20>, <1 50>;
qcom,mdss-dsi-tx-eot-append;
qcom,mdss-pan-physical-width-dimension = <74>;
qcom,mdss-pan-physical-height-dimension = <131>;
qcom,mdss-dsi-tx-eot-append;
qcom,mdss-dsi-underflow-color = <0x3ff>;
qcom,mdss-dsi-border-color = <0>;
qcom,mdss-dsi-bpp = <24>;
qcom,mdss-dsi-display-timings {
timing@0{
qcom,mdss-dsi-panel-width = <720>;
qcom,mdss-dsi-panel-height = <2560>;
qcom,mdss-dsi-h-front-porch = <100>;
qcom,mdss-dsi-h-back-porch = <32>;
qcom,mdss-dsi-h-pulse-width = <16>;
qcom,mdss-dsi-h-sync-skew = <0>;
qcom,mdss-dsi-v-back-porch = <7>;
qcom,mdss-dsi-v-front-porch = <8>;
qcom,mdss-dsi-v-pulse-width = <1>;
qcom,mdss-dsi-panel-framerate = <60>;
qcom,mdss-dsi-on-command = [
/* CMD2_P0 */
15 01 00 00 00 00 02 FF 20
15 01 00 00 00 00 02 FB 01
15 01 00 00 00 00 02 00 01
15 01 00 00 00 00 02 01 55
15 01 00 00 00 00 02 02 45
15 01 00 00 00 00 02 05 40
15 01 00 00 00 00 02 06 19
15 01 00 00 00 00 02 07 1E
15 01 00 00 00 00 02 0B 73
15 01 00 00 00 00 02 0C 73
15 01 00 00 00 00 02 0E B0
15 01 00 00 00 00 02 0F AE
15 01 00 00 00 00 02 11 B8
15 01 00 00 00 00 02 13 00
15 01 00 00 00 00 02 58 80
15 01 00 00 00 00 02 59 01
15 01 00 00 00 00 02 5A 00
15 01 00 00 00 00 02 5B 01
15 01 00 00 00 00 02 5C 80
15 01 00 00 00 00 02 5D 81
15 01 00 00 00 00 02 5E 00
15 01 00 00 00 00 02 5F 01
15 01 00 00 00 00 02 72 31
15 01 00 00 00 00 02 68 03
/* CMD2_P4 */
15 01 00 00 00 00 02 FF 24
15 01 00 00 00 00 02 FB 01
15 01 00 00 00 00 02 00 1C
15 01 00 00 00 00 02 01 0B
15 01 00 00 00 00 02 02 0C
15 01 00 00 00 00 02 03 01
15 01 00 00 00 00 02 04 0F
15 01 00 00 00 00 02 05 10
15 01 00 00 00 00 02 06 10
15 01 00 00 00 00 02 07 10
15 01 00 00 00 00 02 08 89
15 01 00 00 00 00 02 09 8A
15 01 00 00 00 00 02 0A 13
15 01 00 00 00 00 02 0B 13
15 01 00 00 00 00 02 0C 15
15 01 00 00 00 00 02 0D 15
15 01 00 00 00 00 02 0E 17
15 01 00 00 00 00 02 0F 17
15 01 00 00 00 00 02 10 1C
15 01 00 00 00 00 02 11 0B
15 01 00 00 00 00 02 12 0C
15 01 00 00 00 00 02 13 01
15 01 00 00 00 00 02 14 0F
15 01 00 00 00 00 02 15 10
15 01 00 00 00 00 02 16 10
15 01 00 00 00 00 02 17 10
15 01 00 00 00 00 02 18 89
15 01 00 00 00 00 02 19 8A
15 01 00 00 00 00 02 1A 13
15 01 00 00 00 00 02 1B 13
15 01 00 00 00 00 02 1C 15
15 01 00 00 00 00 02 1D 15
15 01 00 00 00 00 02 1E 17
15 01 00 00 00 00 02 1F 17
/* STV */
15 01 00 00 00 00 02 20 40
15 01 00 00 00 00 02 21 01
15 01 00 00 00 00 02 22 00
15 01 00 00 00 00 02 23 40
15 01 00 00 00 00 02 24 40
15 01 00 00 00 00 02 25 6D
15 01 00 00 00 00 02 26 40
15 01 00 00 00 00 02 27 40
/* Vend */
15 01 00 00 00 00 02 E0 00
15 01 00 00 00 00 02 DC 21
15 01 00 00 00 00 02 DD 22
15 01 00 00 00 00 02 DE 07
15 01 00 00 00 00 02 DF 07
15 01 00 00 00 00 02 E3 6D
15 01 00 00 00 00 02 E1 07
15 01 00 00 00 00 02 E2 07
/* UD */
15 01 00 00 00 00 02 29 D8
15 01 00 00 00 00 02 2A 2A
/* CLK */
15 01 00 00 00 00 02 4B 03
15 01 00 00 00 00 02 4C 11
15 01 00 00 00 00 02 4D 10
15 01 00 00 00 00 02 4E 01
15 01 00 00 00 00 02 4F 01
15 01 00 00 00 00 02 50 10
15 01 00 00 00 00 02 51 00
15 01 00 00 00 00 02 52 80
15 01 00 00 00 00 02 53 00
15 01 00 00 00 00 02 56 00
15 01 00 00 00 00 02 54 07
15 01 00 00 00 00 02 58 07
15 01 00 00 00 00 02 55 25
/* Reset XDONB */
15 01 00 00 00 00 02 5B 43
15 01 00 00 00 00 02 5C 00
15 01 00 00 00 00 02 5F 73
15 01 00 00 00 00 02 60 73
15 01 00 00 00 00 02 63 22
15 01 00 00 00 00 02 64 00
15 01 00 00 00 00 02 67 08
15 01 00 00 00 00 02 68 04
/* Resolution:1440x2560*/
15 01 00 00 00 00 02 72 02
/* mux */
15 01 00 00 00 00 02 7A 80
15 01 00 00 00 00 02 7B 91
15 01 00 00 00 00 02 7C D8
15 01 00 00 00 00 02 7D 60
15 01 00 00 00 00 02 7F 15
15 01 00 00 00 00 02 75 15
/* ABOFF */
15 01 00 00 00 00 02 B3 C0
15 01 00 00 00 00 02 B4 00
15 01 00 00 00 00 02 B5 00
/* Source EQ */
15 01 00 00 00 00 02 78 00
15 01 00 00 00 00 02 79 00
15 01 00 00 00 00 02 80 00
15 01 00 00 00 00 02 83 00
/* FP BP */
15 01 00 00 00 00 02 93 0A
15 01 00 00 00 00 02 94 0A
/* Inversion Type */
15 01 00 00 00 00 02 8A 00
15 01 00 00 00 00 02 9B FF
/* IMGSWAP =1 @PortSwap=1 */
15 01 00 00 00 00 02 9D B0
15 01 00 00 00 00 02 9F 63
15 01 00 00 00 00 02 98 10
/* FRM */
15 01 00 00 00 00 02 EC 00
/* CMD1 */
15 01 00 00 00 00 02 FF 10
/* VBP+VSA=,VFP = 10H */
15 01 00 00 00 00 04 3B 03 0A 0A
/* FTE on */
15 01 00 00 00 00 02 35 00
/* EN_BK =1(auto black) */
15 01 00 00 00 00 02 E5 01
/* CMD mode(10) VDO mode(03) */
15 01 00 00 00 00 02 BB 03
/* Non Reload MTP */
15 01 00 00 00 00 02 FB 01
/* SlpOut + DispOn */
05 01 00 00 78 00 02 11 00
05 01 00 00 78 00 02 29 00
];
qcom,mdss-dsi-off-command = [05 01 00 00 78 00
02 28 00 05 01 00 00 78 00 02 10 00];
qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
qcom,mdss-dsi-off-command-state = "dsi_hs_mode";
qcom,mdss-dsi-h-sync-pulse = <0>;
};
qcom,config-select = <&dsi_dual_nt35597_truly_video_config0>;
dsi_dual_nt35597_truly_video_config0: config0 {
qcom,split-mode = "dualctl-split";
};
};
};

View File

@ -0,0 +1,131 @@
/* Copyright (c) 2017, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
&mdss_mdp {
dsi_rm67195_amoled_fhd_cmd: qcom,mdss_dsi_rm67195_amoled_fhd_cmd{
qcom,mdss-dsi-panel-name =
"rm67195 amoled fhd cmd mode dsi panel";
qcom,mdss-dsi-panel-type = "dsi_cmd_mode";
qcom,mdss-dsi-panel-framerate = <60>;
qcom,mdss-dsi-virtual-channel-id = <0>;
qcom,mdss-dsi-stream = <0>;
qcom,mdss-dsi-panel-width = <1080>;
qcom,mdss-dsi-panel-height = <1920>;
qcom,mdss-dsi-h-front-porch = <120>;
qcom,mdss-dsi-h-back-porch = <60>;
qcom,mdss-dsi-h-pulse-width = <12>;
qcom,mdss-dsi-h-sync-skew = <0>;
qcom,mdss-dsi-v-back-porch = <12>;
qcom,mdss-dsi-v-front-porch = <8>;
qcom,mdss-dsi-v-pulse-width = <4>;
qcom,mdss-dsi-h-left-border = <0>;
qcom,mdss-dsi-h-right-border = <0>;
qcom,mdss-dsi-v-top-border = <0>;
qcom,mdss-dsi-v-bottom-border = <0>;
qcom,mdss-dsi-bpp = <24>;
qcom,mdss-dsi-underflow-color = <0xff>;
qcom,mdss-dsi-border-color = <0>;
qcom,mdss-dsi-color-order = "rgb_swap_rgb";
qcom,mdss-dsi-on-command = [
15 01 00 00 00 00 02 fe 0d
15 01 00 00 00 00 02 0b c0
15 01 00 00 00 00 02 42 00
15 01 00 00 00 00 02 18 08
15 01 00 00 00 00 02 08 41
15 01 00 00 00 00 02 46 02
15 01 00 00 00 00 02 1e 04
15 01 00 00 02 00 02 1e 00
15 01 00 00 00 00 02 fe 0a
15 01 00 00 00 00 02 24 17
15 01 00 00 00 00 02 04 07
15 01 00 00 00 00 02 1a 0c
15 01 00 00 02 00 02 0f 44
15 01 00 00 00 00 02 fe 0b
15 01 00 00 00 00 02 28 40
15 01 00 00 02 00 02 29 4f
15 01 00 00 00 00 02 fe 04
15 01 00 00 00 00 02 0a d8
15 01 00 00 00 00 02 0c e6
15 01 00 00 00 00 02 4e 20
15 01 00 00 00 00 02 4f 1b
15 01 00 00 00 00 02 50 2f
15 01 00 00 02 00 02 51 08
15 01 00 00 00 00 02 fe 09
15 01 00 00 00 00 02 00 08
15 01 00 00 00 00 02 01 08
15 01 00 00 00 00 02 02 00
15 01 00 00 00 00 02 03 00
15 01 00 00 00 00 02 04 10
15 01 00 00 00 00 02 05 00
15 01 00 00 00 00 02 06 08
15 01 00 00 00 00 02 07 08
15 01 00 00 00 00 02 08 00
15 01 00 00 00 00 02 12 24
15 01 00 00 00 00 02 13 49
15 01 00 00 00 00 02 14 92
15 01 00 00 00 00 02 15 49
15 01 00 00 00 00 02 16 92
15 01 00 00 00 00 02 17 24
15 01 00 00 00 00 02 18 24
15 01 00 00 00 00 02 19 49
15 01 00 00 00 00 02 1a 92
15 01 00 00 00 00 02 1b 49
15 01 00 00 00 00 02 1c 92
15 01 00 00 00 00 02 1d 24
15 01 00 00 00 00 02 1e 24
15 01 00 00 00 00 02 1f 49
15 01 00 00 00 00 02 20 92
15 01 00 00 00 00 02 21 49
15 01 00 00 00 00 02 22 92
15 01 00 00 00 00 02 23 24
15 01 00 00 00 00 02 9b 07
15 01 00 00 02 00 02 9c a5
15 01 00 00 00 00 02 fe 00
15 01 00 00 00 00 02 c2 08
15 01 00 00 02 00 02 35 00
39 01 00 00 00 00 03 44 03 e8
05 01 00 00 82 00 02 11 00
05 01 00 00 14 00 02 29 00];
qcom,mdss-dsi-off-command = [05 01 00 00 14 00 02 28 00
05 01 00 00 82 00 02 10 00];
qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
qcom,mdss-dsi-off-command-state = "dsi_hs_mode";
qcom,mdss-dsi-h-sync-pulse = <0>;
qcom,mdss-dsi-traffic-mode = "non_burst_sync_pulse";
qcom,mdss-dsi-lane-map = "lane_map_0123";
qcom,mdss-dsi-bllp-eof-power-mode;
qcom,mdss-dsi-bllp-power-mode;
qcom,mdss-dsi-lane-0-state;
qcom,mdss-dsi-lane-1-state;
qcom,mdss-dsi-lane-2-state;
qcom,mdss-dsi-lane-3-state;
qcom,mdss-dsi-t-clk-post = <0x0d>;
qcom,mdss-dsi-t-clk-pre = <0x2f>;
qcom,mdss-dsi-wr-mem-start = <0x2c>;
qcom,mdss-dsi-wr-mem-continue = <0x3c>;
qcom,mdss-dsi-te-pin-select = <1>;
qcom,mdss-dsi-te-dcs-command = <1>;
qcom,mdss-dsi-te-check-enable;
qcom,mdss-dsi-te-using-te-pin;
qcom,mdss-dsi-dma-trigger = "trigger_sw";
qcom,mdss-dsi-mdp-trigger = "none";
qcom,mdss-dsi-lp11-init;
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_dcs";
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <255>;
qcom,mdss-pan-physical-width-dimension = <70>;
qcom,mdss-pan-physical-height-dimension = <125>;
qcom,mdss-dsi-reset-sequence = <1 20>, <0 20>, <1 20>;
qcom,mdss-dsi-panel-orientation = "180";
};
};

View File

@ -0,0 +1,83 @@
/* Copyright (c) 2014-2016, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
&mdss_mdp {
dsi_dual_sharp_video: qcom,mdss_dsi_sharp_wqxga_video {
qcom,mdss-dsi-panel-name = "Dual SHARP video mode dsi panel";
qcom,mdss-dsi-panel-type = "dsi_video_mode";
qcom,mdss-dsi-panel-framerate = <60>;
qcom,mdss-dsi-virtual-channel-id = <0>;
qcom,mdss-dsi-stream = <0>;
qcom,mdss-dsi-panel-width = <800>;
qcom,mdss-dsi-panel-height = <2560>;
qcom,mdss-dsi-h-front-porch = <76>;
qcom,mdss-dsi-h-back-porch = <32>;
qcom,mdss-dsi-h-pulse-width = <16>;
qcom,mdss-dsi-h-sync-skew = <0>;
qcom,mdss-dsi-v-back-porch = <11>;
qcom,mdss-dsi-v-front-porch = <2>;
qcom,mdss-dsi-v-pulse-width = <1>;
qcom,mdss-dsi-bpp = <24>;
qcom,mdss-dsi-underflow-color = <0xff>;
qcom,mdss-dsi-border-color = <0>;
qcom,mdss-dsi-on-command = [05 01 00 00 a0 00 02 11 00
05 01 00 00 02 00 02 29 00];
qcom,mdss-dsi-pre-off-command = [05 01 00 00 02 00 02 28 00
05 01 00 00 a0 00 02 10 00];
qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
qcom,mdss-dsi-off-command-state = "dsi_hs_mode";
qcom,mdss-dsi-h-sync-pulse = <0>;
qcom,mdss-dsi-traffic-mode = "non_burst_sync_event";
qcom,mdss-dsi-bllp-eof-power-mode;
qcom,mdss-dsi-bllp-power-mode;
qcom,mdss-dsi-lane-0-state;
qcom,mdss-dsi-lane-1-state;
qcom,mdss-dsi-lane-2-state;
qcom,mdss-dsi-lane-3-state;
qcom,cmd-sync-wait-broadcast;
qcom,mdss-dsi-panel-timings = [e2 36 24 00 66 6a 28 38 2a 03
04 00];
qcom,mdss-dsi-t-clk-post = <0x02>;
qcom,mdss-dsi-t-clk-pre = <0x2a>;
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <4095>;
qcom,mdss-dsi-dma-trigger = "trigger_sw";
qcom,mdss-dsi-mdp-trigger = "none";
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm";
qcom,mdss-dsi-bl-pmic-pwm-frequency = <50>;
qcom,mdss-dsi-bl-pmic-bank-select = <2>;
qcom,mdss-dsi-reset-sequence = <1 2>, <0 5>, <1 120>;
qcom,mdss-pan-physical-width-dimension = <83>;
qcom,mdss-pan-physical-height-dimension = <133>;
qcom,mdss-dsi-min-refresh-rate = <53>;
qcom,mdss-dsi-max-refresh-rate = <60>;
qcom,mdss-dsi-pan-enable-dynamic-fps;
qcom,mdss-dsi-pan-fps-update = "dfps_immediate_porch_mode_vfp";
qcom,mdss-dsi-panel-status-check-mode = "bta_check";
qcom,mdss-dsi-tx-eot-append;
qcom,esd-check-enabled;
qcom,mdss-dsi-panel-hdr-enabled;
qcom,mdss-dsi-panel-hdr-color-primaries = <14880 15935 32435
16555 14945 30910 7790 3415>;
qcom,mdss-dsi-panel-peak-brightness = <5643000>;
qcom,mdss-dsi-panel-blackness-level = <6134>;
qcom,config-select = <&dsi_dual_sharp_video_config0>;
dsi_dual_sharp_video_config0: config0 {
qcom,split-mode = "dualctl-split";
};
dsi_dual_sharp_video_config1: config1 {
qcom,split-mode = "pingpong-split";
};
};
};

View File

@ -0,0 +1,96 @@
/* Copyright (c) 2015-2017, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
&mdss_mdp {
dsi_truly_1080_cmd: qcom,mdss_dsi_truly_1080p_cmd {
qcom,mdss-dsi-panel-name = "truly 1080p cmd mode dsi panel";
qcom,mdss-dsi-panel-type = "dsi_cmd_mode";
qcom,mdss-dsi-panel-framerate = <60>;
qcom,mdss-dsi-virtual-channel-id = <0>;
qcom,mdss-dsi-stream = <0>;
qcom,mdss-dsi-panel-width = <1080>;
qcom,mdss-dsi-panel-height = <1920>;
qcom,mdss-dsi-h-front-porch = <96>;
qcom,mdss-dsi-h-back-porch = <64>;
qcom,mdss-dsi-h-pulse-width = <16>;
qcom,mdss-dsi-h-sync-skew = <0>;
qcom,mdss-dsi-v-back-porch = <16>;
qcom,mdss-dsi-v-front-porch = <4>;
qcom,mdss-dsi-v-pulse-width = <1>;
qcom,mdss-dsi-h-left-border = <0>;
qcom,mdss-dsi-h-right-border = <0>;
qcom,mdss-dsi-v-top-border = <0>;
qcom,mdss-dsi-v-bottom-border = <0>;
qcom,mdss-dsi-bpp = <24>;
qcom,mdss-dsi-underflow-color = <0xff>;
qcom,mdss-dsi-border-color = <0>;
qcom,mdss-dsi-te-pin-select = <1>;
qcom,mdss-dsi-te-dcs-command = <1>;
qcom,mdss-dsi-te-check-enable;
qcom,mdss-dsi-te-using-te-pin;
qcom,mdss-dsi-h-sync-pulse = <0>;
qcom,mdss-dsi-traffic-mode = "burst_mode";
qcom,mdss-dsi-bllp-eof-power-mode;
qcom,mdss-dsi-bllp-power-mode;
qcom,mdss-dsi-lane-0-state;
qcom,mdss-dsi-lane-1-state;
qcom,mdss-dsi-lane-2-state;
qcom,mdss-dsi-lane-3-state;
qcom,mdss-dsi-panel-timings = [e6 38 26 00 68 6e 2a 3c 44 03
04 00];
qcom,mdss-dsi-t-clk-post = <0x02>;
qcom,mdss-dsi-t-clk-pre = <0x2d>;
qcom,mdss-dsi-tx-eot-append;
qcom,mdss-dsi-dma-trigger = "trigger_sw";
qcom,mdss-dsi-mdp-trigger = "none";
qcom,mdss-dsi-on-command = [23 01 00 00 00 00 02 d6 01
15 01 00 00 00 00 02 35 00
15 01 00 00 00 00 02 51 ff
15 01 00 00 00 00 02 53 2c
15 01 00 00 00 00 02 55 00
05 01 00 00 78 00 02 11 00
23 01 00 00 00 00 02 b0 04
29 01 00 00 00 00 07 b3 04 00 00 00 00 00
29 01 00 00 00 00 03 b6 3a d3
29 01 00 00 00 00 03 c0 00 00
29 01 00 00 00 00 23 c1 84 60 10 eb ff 6f ce ff ff 17 02
58 73 ae b1 20 c6 ff ff 1f f3 ff 5f 10 10 10 10 00 02 01
22 22 00 01
29 01 00 00 00 00 08 c2 31 f7 80 06 08 00 00
29 01 00 00 00 00 17 c4 70 00 00 00 00 04 00 00 00 0c 06
00 00 00 00 00 04 00 00 00 0c 06
29 01 00 00 00 00 29 c6 78 69 00 69 00 69 00 00 00 00 00
69 00 69 00 69 10 19 07 00 78 00 69 00 69 00 69 00 00 00
00 00 69 00 69 00 69 10 19 07
29 01 00 00 00 00 0a cb 31 fc 3f 8c 00 00 00 00 c0
23 01 00 00 00 00 02 cc 0b
29 01 00 00 00 00 0b d0 11 81 bb 1e 1e 4c 19 19 0c 00
29 01 00 00 00 00 1a d3 1b 33 bb bb b3 33 33 33 00 01 00
a0 d8 a0 0d 4e 4e 33 3b 22 72 07 3d bf 33
29 01 00 00 00 00 08 d5 06 00 00 01 51 01 32
29 01 00 00 00 00 1f c7 01 0a 11 18 26 33 3e 50 38 42 52
60 67 6e 77 01 0a 11 18 26 33 3e 50 38 42 52 60 67 6e 77
29 01 00 00 14 00 14 c8 01 00 00 00 00 fc 00 00 00 00
00 fc 00 00 00 00 00 fc 00
05 01 00 00 14 00 02 29 00];
qcom,mdss-dsi-off-command = [05 01 00 00 14 00 02 28 00
05 01 00 00 78 00 02 10 00];
qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
qcom,mdss-dsi-off-command-state = "dsi_lp_mode";
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <4095>;
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-dsi-reset-sequence = <1 10>, <0 10>, <1 10>;
qcom,mdss-dsi-post-init-delay = <1>;
qcom,ulps-enabled;
};
};

View File

@ -0,0 +1,90 @@
/* Copyright (c) 2015-2016, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
&mdss_mdp {
dsi_truly_1080_vid: qcom,mdss_dsi_truly_1080p_video {
qcom,mdss-dsi-panel-name = "truly 1080p video mode dsi panel";
qcom,mdss-dsi-panel-type = "dsi_video_mode";
qcom,mdss-dsi-panel-framerate = <60>;
qcom,mdss-dsi-virtual-channel-id = <0>;
qcom,mdss-dsi-stream = <0>;
qcom,mdss-dsi-panel-width = <1080>;
qcom,mdss-dsi-panel-height = <1920>;
qcom,mdss-dsi-h-front-porch = <96>;
qcom,mdss-dsi-h-back-porch = <64>;
qcom,mdss-dsi-h-pulse-width = <16>;
qcom,mdss-dsi-h-sync-skew = <0>;
qcom,mdss-dsi-v-back-porch = <16>;
qcom,mdss-dsi-v-front-porch = <4>;
qcom,mdss-dsi-v-pulse-width = <1>;
qcom,mdss-dsi-h-left-border = <0>;
qcom,mdss-dsi-h-right-border = <0>;
qcom,mdss-dsi-v-top-border = <0>;
qcom,mdss-dsi-v-bottom-border = <0>;
qcom,mdss-dsi-bpp = <24>;
qcom,mdss-dsi-underflow-color = <0xff>;
qcom,mdss-dsi-border-color = <0>;
qcom,mdss-dsi-h-sync-pulse = <0>;
qcom,mdss-dsi-traffic-mode = "burst_mode";
qcom,mdss-dsi-bllp-eof-power-mode;
qcom,mdss-dsi-bllp-power-mode;
qcom,mdss-dsi-lane-0-state;
qcom,mdss-dsi-lane-1-state;
qcom,mdss-dsi-lane-2-state;
qcom,mdss-dsi-lane-3-state;
qcom,mdss-dsi-panel-timings = [e6 38 26 00 68 6e 2a 3c 44 03
04 00];
qcom,mdss-dsi-t-clk-post = <0x02>;
qcom,mdss-dsi-t-clk-pre = <0x2d>;
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <4095>;
qcom,mdss-dsi-dma-trigger = "trigger_sw";
qcom,mdss-dsi-mdp-trigger = "none";
qcom,mdss-dsi-on-command = [15 01 00 00 00 00 02 35 00
15 01 00 00 00 00 02 51 ff
15 01 00 00 00 00 02 53 2c
15 01 00 00 00 00 02 55 00
05 01 00 00 78 00 02 11 00
23 01 00 00 00 00 02 b0 00
29 01 00 00 00 00 07 b3 14 00 00 00 00 00
29 01 00 00 00 00 03 b6 3a d3
29 01 00 00 00 00 03 c0 00 00
29 01 00 00 00 00 23 c1 84 60 10 eb ff 6f ce ff ff 17 02
58 73 ae b1 20 c6 ff ff 1f f3 ff 5f 10 10 10 10 00 02 01
22 22 00 01
29 01 00 00 00 00 08 c2 31 f7 80 06 08 00 00
29 01 00 00 00 00 17 c4 70 00 00 00 00 04 00 00 00 0c 06
00 00 00 00 00 04 00 00 00 0c 06
29 01 00 00 00 00 29 c6 00 69 00 69 00 69 00 00 00 00 00
69 00 69 00 69 10 19 07 00 01 00 69 00 69 00 69 00 00 00
00 00 69 00 69 00 69 10 19 07
29 01 00 00 00 00 0a cb 31 fc 3f 8c 00 00 00 00 c0
23 01 00 00 00 00 02 cc 0b
29 01 00 00 00 00 0b d0 11 81 bb 1e 1e 4c 19 19 0c 00
29 01 00 00 00 00 1a d3 1b 33 bb bb b3 33 33 33 00 01 00
a0 d8 a0 0d 4e 4e 33 3b 22 72 07 3d bf 33
29 01 00 00 00 00 08 d5 06 00 00 01 51 01 32
29 01 00 00 00 00 1f c7 01 0a 11 18 26 33 3e 50 38 42 52
60 67 6e 77 01 0a 11 18 26 33 3e 50 38 42 52 60 67 6e 77
29 01 00 00 14 00 14 c8 01 00 00 00 00 fc 00 00 00 00
00 fc 00 00 00 00 00 fc 00
05 01 00 00 14 00 02 29 00];
qcom,mdss-dsi-off-command = [05 01 00 00 14 00 02 28 00
05 01 00 00 78 00 02 10 00];
qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
qcom,mdss-dsi-off-command-state = "dsi_lp_mode";
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-dsi-reset-sequence = <1 10>, <0 10>, <1 10>;
qcom,mdss-dsi-tx-eot-append;
qcom,mdss-dsi-post-init-delay = <1>;
};
};

View File

@ -0,0 +1,81 @@
/* Copyright (c) 2016-2017, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
qcom,ascent_3450mah {
/* Ascent_wConn_Aging_3450mAh_averaged_MasterSlave_Jul11th2017 */
qcom,max-voltage-uv = <4350000>;
qcom,fg-cc-cv-threshold-mv = <4340>;
qcom,fastchg-current-ma = <3450>;
qcom,batt-id-kohm = <60>;
qcom,battery-beta = <3435>;
qcom,battery-type = "ascent_3450mah_averaged_masterslave_jul11th2017";
qcom,checksum = <0x7C33>;
qcom,gui-version = "PMI8998GUI - 2.0.0.58";
qcom,fg-profile-data = [
8F 1F 94 05
73 0A 4A 06
27 1D 21 EA
16 0A 3B 0C
07 18 97 22
A5 3C EC 4A
5C 00 00 00
10 00 00 00
00 00 92 BC
CD BD 02 B4
11 00 08 00
69 DA AD 07
4B FD 19 FA
1D 0C B0 0C
EB F3 78 3B
24 06 09 20
27 00 14 00
7E 1F F2 05
19 0A 55 FD
6C 1D C6 ED
1A 12 FF 1D
6F 18 EB 22
B9 45 6F 52
55 00 00 00
0E 00 00 00
00 00 A1 D5
34 BA A0 CA
0F 00 00 00
93 00 AD 07
8D FD F6 00
BA 0D 5C 04
B3 FC F4 1B
C3 33 CC FF
07 10 00 00
A4 0D 99 45
0F 00 40 00
A4 01 0A FA
FF 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
];
};

View File

@ -0,0 +1,81 @@
/* Copyright (c) 2016-2017, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
qcom,itech_3000mah {
/* #Itech_B00826LF_3000mAh_ver1660_averaged_MasterSlave_Jan10th2017*/
qcom,max-voltage-uv = <4350000>;
qcom,fg-cc-cv-threshold-mv = <4340>;
qcom,fastchg-current-ma = <2000>;
qcom,batt-id-kohm = <100>;
qcom,battery-beta = <3435>;
qcom,battery-type = "itech_b00826lf_3000mah_ver1660_jan10th2017";
qcom,checksum = <0xFB8F>;
qcom,gui-version = "PMI8998GUI - 2.0.0.54";
qcom,fg-profile-data = [
A4 1F 6E 05
9C 0A 2B FC
32 1D 23 E5
60 0B 1B 15
AD 17 8C 22
EA 3C 89 4A
5B 00 00 00
12 00 00 00
00 00 62 C2
0C CD D8 C2
19 00 08 00
85 EA C7 EC
E2 05 2F 01
9B F5 12 12
5E 05 88 3B
22 06 09 20
27 00 14 00
7D 1F DD 05
3F 0A E5 FC
72 1D E3 F5
6F 12 C0 1D
88 18 FB 22
8D 45 C6 52
54 00 00 00
0F 00 00 00
00 00 BD CD
55 C2 5D C5
14 00 00 00
7E 00 C7 EC
60 06 BB 00
59 06 61 03
D9 FC 75 1B
B3 33 CC FF
07 10 00 00
3E 0B 99 45
14 00 40 00
AE 01 0A FA
FF 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
];
};

View File

@ -0,0 +1,81 @@
/* Copyright (c) 2016-2017, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
qcom,qrd_msm8998_skuk_3000mah {
/* QRD8997_ST1031GA_3000mAh_averaged_MasterSlave_Jan10th2017 */
qcom,max-voltage-uv = <4400000>;
qcom,fg-cc-cv-threshold-mv = <4390>;
qcom,fastchg-current-ma = <3000>;
qcom,batt-id-kohm = <68>;
qcom,battery-beta = <3380>;
qcom,battery-type = "qrd8997_st1031ga_3000mah";
qcom,checksum = <0xD299>;
qcom,gui-version = "PMI8998GUI - 2.0.0.54";
qcom,fg-profile-data = [
70 1F B1 05
6F 0A A1 FC
8C 1D D7 FD
C4 12 AC 1D
7E 18 01 23
8C 45 B6 52
55 00 00 00
0F 00 00 00
00 00 92 C5
95 CD A0 CA
1F 00 08 00
9F E3 C3 EC
F7 FC 25 F3
02 01 FF 12
29 DC 1D 3A
1C 06 09 20
27 00 14 00
AC 1F B4 05
57 0A EF FC
6A 1D E9 E2
11 0B BB 14
40 19 DC 22
79 45 03 53
53 00 00 00
0E 00 00 00
00 00 05 CC
3A BB 24 CA
1C 00 00 00
56 F2 C3 EC
A6 06 A2 F2
9A 06 CC 01
8C EA CF 1A
BA 33 CC FF
07 10 00 00
3A 0C 66 46
1C 00 40 00
98 01 0A FA
FF 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
];
};

View File

@ -0,0 +1,216 @@
/* Copyright (c) 2016-2017, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include <dt-bindings/clock/qcom,gcc-sdm660.h>
#include <dt-bindings/clock/qcom,mmcc-sdm660.h>
#include <dt-bindings/msm/msm-bus-ids.h>
#include <dt-bindings/clock/qcom,rpmcc.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
&soc {
anoc2_smmu: arm,smmu-anoc2@16c0000 {
compatible = "qcom,smmu-v2";
reg = <0x16c0000 0x40000>;
#iommu-cells = <1>;
qcom,skip-init;
qcom,use-3-lvl-tables;
qcom,regulator-names = "vdd";
#global-interrupts = <2>;
interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 231 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 373 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 374 IRQ_TYPE_LEVEL_LOW>,
<GIC_SPI 375 IRQ_TYPE_LEVEL_LOW>,
<GIC_SPI 376 IRQ_TYPE_LEVEL_LOW>,
<GIC_SPI 377 IRQ_TYPE_LEVEL_LOW>,
<GIC_SPI 378 IRQ_TYPE_LEVEL_LOW>,
<GIC_SPI 462 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 463 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 464 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 465 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 466 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 467 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 357 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 359 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 360 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 442 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 443 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 444 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 447 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 468 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 469 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 472 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 473 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 474 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clock_rpmcc AGGR2_NOC_SMMU_CLK>;
clock-names = "smmu_aggr2_noc_clk";
#clock-cells = <1>;
};
lpass_q6_smmu: arm,smmu-lpass_q6@5100000 {
compatible = "qcom,smmu-v2";
reg = <0x5100000 0x40000>;
#iommu-cells = <1>;
qcom,skip-init;
qcom,use-3-lvl-tables;
qcom,regulator-names = "vdd";
#global-interrupts = <2>;
interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 231 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 226 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 393 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 394 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 395 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 396 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 397 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 398 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 399 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 400 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 401 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 402 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 403 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 225 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 310 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 404 IRQ_TYPE_LEVEL_HIGH>;
vdd-supply = <&gdsc_hlos1_vote_lpass_adsp>;
clocks = <&clock_gcc HLOS1_VOTE_LPASS_ADSP_SMMU_CLK>;
clock-names = "lpass_q6_smmu_clk";
#clock-cells = <1>;
};
mmss_bimc_smmu: arm,smmu-mmss@cd00000 {
compatible = "qcom,smmu-v2";
reg = <0xcd00000 0x40000>;
#iommu-cells = <1>;
qcom,skip-init;
qcom,use-3-lvl-tables;
qcom,regulator-names = "vdd";
#global-interrupts = <2>;
interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 231 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 263 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 267 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 244 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 245 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 247 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 248 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 249 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 250 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 251 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 252 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 253 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 254 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 255 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 260 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 261 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 273 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 274 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 275 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 276 IRQ_TYPE_LEVEL_HIGH>;
vdd-supply = <&gdsc_bimc_smmu>;
clocks = <&clock_mmss MMSS_MNOC_AHB_CLK>,
<&clock_rpmcc RPM_SMD_MMSSNOC_AXI_CLK>,
<&clock_mmss MMSS_BIMC_SMMU_AHB_CLK>,
<&clock_mmss MMSS_BIMC_SMMU_AXI_CLK>;
clock-names = "mmss_mnoc_ahb_clk",
"mmssnoc_axi_clk",
"mmss_bimc_smmu_ahb_clk",
"mmss_bimc_smmu_axi_clk";
#clock-cells = <1>;
qcom,bus-master-id = <MSM_BUS_MNOC_BIMC_MAS>;
};
kgsl_smmu: arm,smmu-kgsl@5040000 {
compatible = "qcom,smmu-v2";
reg = <0x5040000 0x10000>;
#iommu-cells = <1>;
qcom,dynamic;
qcom,use-3-lvl-tables;
qcom,disable-atos;
qcom,regulator-names = "vdd";
#global-interrupts = <2>;
interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 231 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 349 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 350 IRQ_TYPE_LEVEL_HIGH>;
qcom,deferred-regulator-disable-delay = <80>;
vdd-supply = <&gdsc_gpu_cx>;
clocks = <&clock_gcc GCC_GPU_CFG_AHB_CLK>,
<&clock_gcc GCC_BIMC_GFX_CLK>,
<&clock_gcc GCC_GPU_BIMC_GFX_CLK>;
clock-names = "gcc_gpu_cfg_ahb_clk",
"gcc_bimc_gfx_clk",
"gcc_gpu_bimc_gfx_clk";
#clock-cells = <1>;
};
turing_q6_smmu: arm,smmu-turing_q6@5180000 {
compatible = "qcom,smmu-v2";
reg = <0x5180000 0x40000>;
#iommu-cells = <1>;
qcom,register-save;
qcom,skip-init;
#global-interrupts = <2>;
interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 231 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 533 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 534 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 535 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 536 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 537 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 538 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 539 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 540 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 541 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 542 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 543 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 544 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 545 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 546 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 547 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 548 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 549 IRQ_TYPE_LEVEL_HIGH>;
vdd-supply = <&gdsc_hlos1_vote_turing_adsp>;
clocks = <&clock_gcc HLOS1_VOTE_TURING_ADSP_SMMU_CLK>;
clock-names = "turing_q6_smmu_clk";
#clock-cells = <1>;
};
iommu_test_device {
compatible = "iommu-debug-test";
/*
* 42 shouldn't be used by anyone on the mmss_smmu. We just
* need _something_ here to get this node recognized by the
* SMMU driver. Our test uses ATOS, which doesn't use SIDs
* anyways, so using a dummy value is ok.
*/
iommus = <&mmss_bimc_smmu 42>;
};
};

View File

@ -0,0 +1,409 @@
/* Copyright (c) 2016, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
&kgsl_smmu {
attach-impl-defs = <0x6000 0x2378>,
<0x6060 0x1055>,
<0x678c 0x8>,
<0x6794 0x28>,
<0x6800 0x6>,
<0x6900 0x3ff>,
<0x6924 0x204>,
<0x6928 0x11000>,
<0x6930 0x800>,
<0x6960 0xffffffff>,
<0x6b64 0x1a5551>,
<0x6b68 0x9a82a382>;
};
&lpass_q6_smmu {
attach-impl-defs = <0x6000 0x2378>,
<0x6060 0x1055>,
<0x6070 0xe0>,
<0x6074 0xe0>,
<0x6078 0xe0>,
<0x607c 0xe0>,
<0x60f0 0xc0>,
<0x60f4 0xc8>,
<0x60f8 0xd0>,
<0x60fc 0xd8>,
<0x6170 0x0>,
<0x6174 0x30>,
<0x6178 0x60>,
<0x617c 0x90>,
<0x6270 0x0>,
<0x6274 0x2>,
<0x6278 0x4>,
<0x627c 0x6>,
<0x62f0 0x8>,
<0x62f4 0xe>,
<0x62f8 0x14>,
<0x62fc 0x1a>,
<0x6370 0x20>,
<0x6374 0x40>,
<0x6378 0x60>,
<0x637c 0x80>,
<0x6784 0x0>,
<0x678c 0x10>,
<0x67a0 0x0>,
<0x67a4 0x0>,
<0x67a8 0x20>,
<0x67b0 0x0>,
<0x67b4 0x8>,
<0x67b8 0xc8>,
<0x67d0 0x4>,
<0x67dc 0x8>,
<0x67e0 0x8>,
<0x6800 0x6>,
<0x6900 0x3ff>,
<0x6924 0x202>,
<0x6928 0x10a00>,
<0x6930 0x500>,
<0x6960 0xffffffff>,
<0x6b64 0x121151>,
<0x6b68 0xea800080>,
<0x6c00 0x0>,
<0x6c04 0x0>,
<0x6c08 0x0>,
<0x6c0c 0x0>,
<0x6c10 0x1>,
<0x6c14 0x1>,
<0x6c18 0x1>,
<0x6c1c 0x1>,
<0x6c20 0x2>,
<0x6c24 0x2>,
<0x6c28 0x2>,
<0x6c2c 0x2>,
<0x6c30 0x3>,
<0x6c34 0x3>,
<0x6c38 0x3>,
<0x6c3c 0x3>;
};
&turing_q6_smmu {
attach-impl-defs = <0x6000 0x2378>,
<0x6060 0x1055>,
<0x6070 0xe0>,
<0x6074 0xe0>,
<0x6078 0xe0>,
<0x607c 0xe0>,
<0x60f0 0xc0>,
<0x60f4 0xc8>,
<0x60f8 0xd0>,
<0x60fc 0xd8>,
<0x6170 0x0>,
<0x6174 0x30>,
<0x6178 0x60>,
<0x617c 0x90>,
<0x6270 0x0>,
<0x6274 0x2>,
<0x6278 0x4>,
<0x627c 0x6>,
<0x62f0 0x8>,
<0x62f4 0xe>,
<0x62f8 0x14>,
<0x62fc 0x1a>,
<0x6370 0x20>,
<0x6374 0x40>,
<0x6378 0x60>,
<0x637c 0x80>,
<0x6784 0x0>,
<0x678c 0x10>,
<0x67a0 0x0>,
<0x67a4 0x0>,
<0x67a8 0x20>,
<0x67b0 0x0>,
<0x67b4 0x8>,
<0x67b8 0xc8>,
<0x67d0 0x4>,
<0x67dc 0x8>,
<0x67e0 0x8>,
<0x6800 0x6>,
<0x6900 0x3ff>,
<0x6924 0x202>,
<0x6928 0x10a00>,
<0x6930 0x500>,
<0x6960 0xffffffff>,
<0x6b64 0x121151>,
<0x6b68 0xea800080>,
<0x6c00 0x0>,
<0x6c04 0x0>,
<0x6c08 0x0>,
<0x6c0c 0x0>,
<0x6c10 0x1>,
<0x6c14 0x1>,
<0x6c18 0x1>,
<0x6c1c 0x1>,
<0x6c20 0x2>,
<0x6c24 0x2>,
<0x6c28 0x2>,
<0x6c2c 0x2>,
<0x6c30 0x3>,
<0x6c34 0x3>,
<0x6c38 0x3>,
<0x6c3c 0x3>;
};
&mmss_bimc_smmu {
attach-impl-defs = <0x6000 0x2378>,
<0x6060 0x1055>,
<0x678c 0x28>,
<0x6794 0xe0>,
<0x6800 0x6>,
<0x6900 0x3ff>,
<0x6924 0x204>,
<0x6928 0x11002>,
<0x6930 0x800>,
<0x6960 0xffffffff>,
<0x6964 0xffffffff>,
<0x6968 0xffffffff>,
<0x696c 0xffffffff>,
<0x6b48 0x330330>,
<0x6b4c 0x81>,
<0x6b50 0x3333>,
<0x6b54 0x3333>,
<0x6b64 0x1a5555>,
<0x6b68 0xbaaa892a>,
<0x6b70 0x10100202>,
<0x6b74 0x10100202>,
<0x6b78 0x10100000>,
<0x6b80 0x20042004>,
<0x6b84 0x20042004>;
};
&anoc2_smmu {
attach-impl-defs = <0x6000 0x2378>,
<0x6060 0x1055>,
<0x6070 0xf>,
<0x6074 0x23>,
<0x6078 0x37>,
<0x607c 0x39>,
<0x6080 0x3f>,
<0x6084 0x6f>,
<0x6088 0x74>,
<0x608c 0x92>,
<0x6090 0xb0>,
<0x6094 0xf0>,
<0x6098 0xf0>,
<0x609c 0xf0>,
<0x60f0 0x0>,
<0x60f4 0x1>,
<0x60f8 0x3>,
<0x60fc 0x4>,
<0x6100 0x6>,
<0x6104 0x8>,
<0x6108 0x9>,
<0x610c 0xb>,
<0x6110 0xd>,
<0x6114 0xf>,
<0x6118 0xf>,
<0x611c 0xf>,
<0x6170 0x0>,
<0x6174 0x0>,
<0x6178 0x0>,
<0x617c 0x0>,
<0x6180 0x0>,
<0x6184 0x0>,
<0x6188 0x0>,
<0x618c 0x0>,
<0x6190 0x0>,
<0x6194 0x0>,
<0x6198 0x0>,
<0x619c 0x0>,
<0x6270 0x0>,
<0x6274 0x1>,
<0x6278 0x2>,
<0x627c 0x4>,
<0x6280 0x4>,
<0x6284 0x6>,
<0x6288 0x6>,
<0x628c 0xa>,
<0x6290 0xc>,
<0x6294 0xc>,
<0x6298 0xc>,
<0x629c 0xc>,
<0x62f0 0xc>,
<0x62f4 0x12>,
<0x62f8 0x18>,
<0x62fc 0x1a>,
<0x6300 0x1d>,
<0x6304 0x23>,
<0x6308 0x24>,
<0x630c 0x28>,
<0x6310 0x2c>,
<0x6314 0x30>,
<0x6318 0x30>,
<0x631c 0x30>,
<0x6370 0x30>,
<0x6374 0x35>,
<0x6378 0x3a>,
<0x637c 0x3e>,
<0x6380 0x46>,
<0x6384 0x50>,
<0x6388 0x55>,
<0x638c 0x5d>,
<0x6390 0x67>,
<0x6394 0x80>,
<0x6398 0x80>,
<0x639c 0x80>,
<0x678c 0x12>,
<0x6794 0x32>,
<0x67a0 0x0>,
<0x67a4 0xe1>,
<0x67a8 0xf0>,
<0x67b0 0x0>,
<0x67b4 0xc>,
<0x67b8 0x9c>,
<0x67d0 0x0>,
<0x67dc 0x4>,
<0x67e0 0x8>,
<0x6800 0x6>,
<0x6900 0x3ff>,
<0x6b48 0x330330>,
<0x6b4c 0x81>,
<0x6b50 0x1313>,
<0x6b64 0x121155>,
<0x6b68 0xcaa84920>,
<0x6b70 0xc0c0000>,
<0x6b74 0x8080000>,
<0x6b78 0x8080000>,
<0x6b80 0x20002000>,
<0x6b84 0x20002000>,
<0x6c00 0x5>,
<0x6c04 0x0>,
<0x6c08 0x5>,
<0x6c0c 0x0>,
<0x6c10 0x5>,
<0x6c14 0x0>,
<0x6c18 0x5>,
<0x6c1c 0x0>,
<0x6c20 0x5>,
<0x6c24 0x0>,
<0x6c28 0x0>,
<0x6c2c 0x0>,
<0x6c30 0x0>,
<0x6c34 0x0>,
<0x6c38 0x0>,
<0x6c3c 0x0>,
<0x6c40 0x0>,
<0x6c44 0x0>,
<0x6c48 0x0>,
<0x6c4c 0x0>,
<0x6c50 0x0>,
<0x6c54 0x0>,
<0x6c58 0x0>,
<0x6c5c 0x0>,
<0x6c60 0x0>,
<0x6c64 0x0>,
<0x6c68 0x0>,
<0x6c6c 0x0>,
<0x6c70 0x0>,
<0x6c74 0x0>,
<0x6c78 0x0>,
<0x6c7c 0x0>,
<0x6c80 0x0>,
<0x6c84 0x0>,
<0x6c88 0x0>,
<0x6c8c 0x0>,
<0x6c90 0x0>,
<0x6c94 0x0>,
<0x6c98 0x0>,
<0x6c9c 0x0>,
<0x6ca0 0x0>,
<0x6ca4 0x0>,
<0x6ca8 0x0>,
<0x6cac 0x0>,
<0x6cb0 0x0>,
<0x6cb4 0x0>,
<0x6cb8 0x0>,
<0x6cbc 0x0>,
<0x6cc0 0x0>,
<0x6cc4 0x0>,
<0x6cc8 0x0>,
<0x6ccc 0x0>,
<0x6cd0 0x0>,
<0x6cd4 0x0>,
<0x6cd8 0x0>,
<0x6cdc 0x0>,
<0x6ce0 0x0>,
<0x6ce4 0x0>,
<0x6ce8 0x0>,
<0x6cec 0x0>,
<0x6cf0 0x0>,
<0x6cf4 0x0>,
<0x6cf8 0x0>,
<0x6cfc 0x0>,
<0x6d00 0x3>,
<0x6d04 0x4>,
<0x6d08 0x4>,
<0x6d0c 0x0>,
<0x6d10 0x8>,
<0x6d14 0x8>,
<0x6d18 0x3>,
<0x6d1c 0x2>,
<0x6d20 0x4>,
<0x6d24 0x0>,
<0x6d28 0x4>,
<0x6d2c 0x0>,
<0x6d30 0x7>,
<0x6d34 0x0>,
<0x6d38 0x6>,
<0x6d3c 0x0>,
<0x6d40 0x0>,
<0x6d44 0x1>,
<0x6d48 0x4>,
<0x6d4c 0x0>,
<0x6d50 0x4>,
<0x6d54 0x0>,
<0x6d58 0x4>,
<0x6d5c 0x0>,
<0x6d60 0x0>,
<0x6d64 0x0>,
<0x6d68 0x0>,
<0x6d6c 0x0>,
<0x6d70 0x0>,
<0x6d74 0x0>,
<0x6d78 0x0>,
<0x6d7c 0x0>,
<0x6d80 0x0>,
<0x6d84 0x0>,
<0x6d88 0x0>,
<0x6d8c 0x0>,
<0x6d90 0x0>,
<0x6d94 0x0>,
<0x6d98 0x0>,
<0x6d9c 0x0>,
<0x6da0 0x0>,
<0x6da4 0x0>,
<0x6da8 0x0>,
<0x6dac 0x0>,
<0x6db0 0x0>,
<0x6db4 0x0>,
<0x6db8 0x0>,
<0x6dbc 0x0>,
<0x6dc0 0x0>,
<0x6dc4 0x0>,
<0x6dc8 0x0>,
<0x6dcc 0x0>,
<0x6dd0 0x0>,
<0x6dd4 0x0>,
<0x6dd8 0x0>,
<0x6ddc 0x0>,
<0x6de0 0x0>,
<0x6de4 0x0>,
<0x6de8 0x0>,
<0x6dec 0x0>,
<0x6df0 0x0>,
<0x6df4 0x0>,
<0x6df8 0x0>,
<0x6dfc 0x0>;
};

View File

@ -0,0 +1,974 @@
/*
* Copyright (c) 2015-2017, 2019 The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
&spi_7 {
status = "okay";
};
&soc {
pcm0: qcom,msm-pcm {
compatible = "qcom,msm-pcm-dsp";
qcom,msm-pcm-dsp-id = <0>;
};
routing: qcom,msm-pcm-routing {
compatible = "qcom,msm-pcm-routing";
};
compr: qcom,msm-compr-dsp {
compatible = "qcom,msm-compr-dsp";
};
pcm2: qcom,msm-ultra-low-latency {
compatible = "qcom,msm-pcm-dsp";
qcom,msm-pcm-dsp-id = <2>;
qcom,msm-pcm-low-latency;
qcom,latency-level = "ultra";
};
pcm1: qcom,msm-pcm-low-latency {
compatible = "qcom,msm-pcm-dsp";
qcom,msm-pcm-dsp-id = <1>;
qcom,msm-pcm-low-latency;
qcom,latency-level = "regular";
};
pcm2: qcom,msm-ultra-low-latency {
compatible = "qcom,msm-pcm-dsp";
qcom,msm-pcm-dsp-id = <2>;
qcom,msm-pcm-low-latency;
qcom,latency-level = "ultra";
};
pcm_noirq: qcom,msm-pcm-dsp-noirq {
compatible = "qcom,msm-pcm-dsp-noirq";
qcom,msm-pcm-low-latency;
qcom,latency-level = "ultra";
};
cpe: qcom,msm-cpe-lsm {
compatible = "qcom,msm-cpe-lsm";
};
cpe3: qcom,msm-cpe-lsm@3 {
compatible = "qcom,msm-cpe-lsm";
qcom,msm-cpe-lsm-id = <3>;
};
wdsp_mgr: qcom,wcd-dsp-mgr {
compatible = "qcom,wcd-dsp-mgr";
qcom,wdsp-components = <&wcd934x_cdc 0>,
<&wcd_spi_0 1>,
<&glink_spi_xprt_wdsp 2>;
qcom,img-filename = "cpe_9340";
};
wdsp_glink: qcom,wcd-dsp-glink {
compatible = "qcom,wcd-dsp-glink";
};
compress: qcom,msm-compress-dsp {
compatible = "qcom,msm-compress-dsp";
};
voip: qcom,msm-voip-dsp {
compatible = "qcom,msm-voip-dsp";
};
voice: qcom,msm-pcm-voice {
compatible = "qcom,msm-pcm-voice";
qcom,destroy-cvd;
};
stub_codec: qcom,msm-stub-codec {
compatible = "qcom,msm-stub-codec";
};
qcom,msm-dai-fe {
compatible = "qcom,msm-dai-fe";
};
afe: qcom,msm-pcm-afe {
compatible = "qcom,msm-pcm-afe";
};
dai_dp: qcom,msm-dai-q6-dp {
compatible = "qcom,msm-dai-q6-hdmi";
qcom,msm-dai-q6-dev-id = <24608>;
};
loopback: qcom,msm-pcm-loopback {
compatible = "qcom,msm-pcm-loopback";
};
qcom,msm-dai-mi2s {
compatible = "qcom,msm-dai-mi2s";
dai_mi2s0: qcom,msm-dai-q6-mi2s-prim {
compatible = "qcom,msm-dai-q6-mi2s";
qcom,msm-dai-q6-mi2s-dev-id = <0>;
qcom,msm-mi2s-rx-lines = <3>;
qcom,msm-mi2s-tx-lines = <0>;
};
dai_mi2s1: qcom,msm-dai-q6-mi2s-sec {
compatible = "qcom,msm-dai-q6-mi2s";
qcom,msm-dai-q6-mi2s-dev-id = <1>;
qcom,msm-mi2s-rx-lines = <1>;
qcom,msm-mi2s-tx-lines = <0>;
};
dai_mi2s3: qcom,msm-dai-q6-mi2s-quat {
compatible = "qcom,msm-dai-q6-mi2s";
qcom,msm-dai-q6-mi2s-dev-id = <3>;
qcom,msm-mi2s-rx-lines = <1>;
qcom,msm-mi2s-tx-lines = <2>;
};
dai_mi2s2: qcom,msm-dai-q6-mi2s-tert {
compatible = "qcom,msm-dai-q6-mi2s";
qcom,msm-dai-q6-mi2s-dev-id = <2>;
qcom,msm-mi2s-rx-lines = <0>;
qcom,msm-mi2s-tx-lines = <3>;
};
dai_mi2s5: qcom,msm-dai-q6-mi2s-quin {
compatible = "qcom,msm-dai-q6-mi2s";
qcom,msm-dai-q6-mi2s-dev-id = <5>;
qcom,msm-mi2s-rx-lines = <1>;
qcom,msm-mi2s-tx-lines = <2>;
};
dai_mi2s6: qcom,msm-dai-q6-mi2s-senary {
compatible = "qcom,msm-dai-q6-mi2s";
qcom,msm-dai-q6-mi2s-dev-id = <6>;
qcom,msm-mi2s-rx-lines = <0>;
qcom,msm-mi2s-tx-lines = <3>;
};
dai_int_mi2s0: qcom,msm-dai-q6-int-mi2s0 {
compatible = "qcom,msm-dai-q6-mi2s";
qcom,msm-dai-q6-mi2s-dev-id = <7>;
qcom,msm-mi2s-rx-lines = <3>;
qcom,msm-mi2s-tx-lines = <0>;
};
dai_int_mi2s1: qcom,msm-dai-q6-int-mi2s1 {
compatible = "qcom,msm-dai-q6-mi2s";
qcom,msm-dai-q6-mi2s-dev-id = <8>;
qcom,msm-mi2s-rx-lines = <3>;
qcom,msm-mi2s-tx-lines = <0>;
};
dai_int_mi2s2: qcom,msm-dai-q6-int-mi2s2 {
compatible = "qcom,msm-dai-q6-mi2s";
qcom,msm-dai-q6-mi2s-dev-id = <9>;
qcom,msm-mi2s-rx-lines = <0>;
qcom,msm-mi2s-tx-lines = <3>;
};
dai_int_mi2s3: qcom,msm-dai-q6-int-mi2s3 {
compatible = "qcom,msm-dai-q6-mi2s";
qcom,msm-dai-q6-mi2s-dev-id = <10>;
qcom,msm-mi2s-rx-lines = <0>;
qcom,msm-mi2s-tx-lines = <3>;
};
dai_int_mi2s4: qcom,msm-dai-q6-int-mi2s4 {
compatible = "qcom,msm-dai-q6-mi2s";
qcom,msm-dai-q6-mi2s-dev-id = <11>;
qcom,msm-mi2s-rx-lines = <3>;
qcom,msm-mi2s-tx-lines = <0>;
};
dai_int_mi2s5: qcom,msm-dai-q6-int-mi2s5 {
compatible = "qcom,msm-dai-q6-mi2s";
qcom,msm-dai-q6-mi2s-dev-id = <12>;
qcom,msm-mi2s-rx-lines = <0>;
qcom,msm-mi2s-tx-lines = <3>;
};
dai_int_mi2s6: qcom,msm-dai-q6-int-mi2s6 {
compatible = "qcom,msm-dai-q6-mi2s";
qcom,msm-dai-q6-mi2s-dev-id = <13>;
qcom,msm-mi2s-rx-lines = <0>;
qcom,msm-mi2s-tx-lines = <3>;
};
};
lsm: qcom,msm-lsm-client {
compatible = "qcom,msm-lsm-client";
};
qcom,msm-dai-q6 {
compatible = "qcom,msm-dai-q6";
sb_0_rx: qcom,msm-dai-q6-sb-0-rx {
compatible = "qcom,msm-dai-q6-dev";
qcom,msm-dai-q6-dev-id = <16384>;
};
sb_0_tx: qcom,msm-dai-q6-sb-0-tx {
compatible = "qcom,msm-dai-q6-dev";
qcom,msm-dai-q6-dev-id = <16385>;
};
sb_1_rx: qcom,msm-dai-q6-sb-1-rx {
compatible = "qcom,msm-dai-q6-dev";
qcom,msm-dai-q6-dev-id = <16386>;
};
sb_1_tx: qcom,msm-dai-q6-sb-1-tx {
compatible = "qcom,msm-dai-q6-dev";
qcom,msm-dai-q6-dev-id = <16387>;
};
sb_2_rx: qcom,msm-dai-q6-sb-2-rx {
compatible = "qcom,msm-dai-q6-dev";
qcom,msm-dai-q6-dev-id = <16388>;
};
sb_2_tx: qcom,msm-dai-q6-sb-2-tx {
compatible = "qcom,msm-dai-q6-dev";
qcom,msm-dai-q6-dev-id = <16389>;
};
sb_3_rx: qcom,msm-dai-q6-sb-3-rx {
compatible = "qcom,msm-dai-q6-dev";
qcom,msm-dai-q6-dev-id = <16390>;
};
sb_3_tx: qcom,msm-dai-q6-sb-3-tx {
compatible = "qcom,msm-dai-q6-dev";
qcom,msm-dai-q6-dev-id = <16391>;
};
sb_4_rx: qcom,msm-dai-q6-sb-4-rx {
compatible = "qcom,msm-dai-q6-dev";
qcom,msm-dai-q6-dev-id = <16392>;
};
sb_4_tx: qcom,msm-dai-q6-sb-4-tx {
compatible = "qcom,msm-dai-q6-dev";
qcom,msm-dai-q6-dev-id = <16393>;
};
sb_5_tx: qcom,msm-dai-q6-sb-5-tx {
compatible = "qcom,msm-dai-q6-dev";
qcom,msm-dai-q6-dev-id = <16395>;
};
sb_5_rx: qcom,msm-dai-q6-sb-5-rx {
compatible = "qcom,msm-dai-q6-dev";
qcom,msm-dai-q6-dev-id = <16394>;
};
sb_6_rx: qcom,msm-dai-q6-sb-6-rx {
compatible = "qcom,msm-dai-q6-dev";
qcom,msm-dai-q6-dev-id = <16396>;
};
sb_7_tx: qcom,msm-dai-q6-sb-7-tx {
compatible = "qcom,msm-dai-q6-dev";
qcom,msm-dai-q6-dev-id = <16399>;
};
sb_7_rx: qcom,msm-dai-q6-sb-7-rx {
compatible = "qcom,msm-dai-q6-dev";
qcom,msm-dai-q6-dev-id = <16398>;
};
sb_8_tx: qcom,msm-dai-q6-sb-8-tx {
compatible = "qcom,msm-dai-q6-dev";
qcom,msm-dai-q6-dev-id = <16401>;
};
sb_8_rx: qcom,msm-dai-q6-sb-8-rx {
compatible = "qcom,msm-dai-q6-dev";
qcom,msm-dai-q6-dev-id = <16400>;
};
bt_sco_rx: qcom,msm-dai-q6-bt-sco-rx {
compatible = "qcom,msm-dai-q6-dev";
qcom,msm-dai-q6-dev-id = <12288>;
};
bt_sco_tx: qcom,msm-dai-q6-bt-sco-tx {
compatible = "qcom,msm-dai-q6-dev";
qcom,msm-dai-q6-dev-id = <12289>;
};
int_fm_rx: qcom,msm-dai-q6-int-fm-rx {
compatible = "qcom,msm-dai-q6-dev";
qcom,msm-dai-q6-dev-id = <12292>;
};
int_fm_tx: qcom,msm-dai-q6-int-fm-tx {
compatible = "qcom,msm-dai-q6-dev";
qcom,msm-dai-q6-dev-id = <12293>;
};
afe_pcm_rx: qcom,msm-dai-q6-be-afe-pcm-rx {
compatible = "qcom,msm-dai-q6-dev";
qcom,msm-dai-q6-dev-id = <224>;
};
afe_pcm_tx: qcom,msm-dai-q6-be-afe-pcm-tx {
compatible = "qcom,msm-dai-q6-dev";
qcom,msm-dai-q6-dev-id = <225>;
};
afe_proxy_rx: qcom,msm-dai-q6-afe-proxy-rx {
compatible = "qcom,msm-dai-q6-dev";
qcom,msm-dai-q6-dev-id = <241>;
};
afe_proxy_tx: qcom,msm-dai-q6-afe-proxy-tx {
compatible = "qcom,msm-dai-q6-dev";
qcom,msm-dai-q6-dev-id = <240>;
};
incall_record_rx: qcom,msm-dai-q6-incall-record-rx {
compatible = "qcom,msm-dai-q6-dev";
qcom,msm-dai-q6-dev-id = <32771>;
};
incall_record_tx: qcom,msm-dai-q6-incall-record-tx {
compatible = "qcom,msm-dai-q6-dev";
qcom,msm-dai-q6-dev-id = <32772>;
};
incall_music_rx: qcom,msm-dai-q6-incall-music-rx {
compatible = "qcom,msm-dai-q6-dev";
qcom,msm-dai-q6-dev-id = <32773>;
};
incall_music_2_rx: qcom,msm-dai-q6-incall-music-2-rx {
compatible = "qcom,msm-dai-q6-dev";
qcom,msm-dai-q6-dev-id = <32770>;
};
usb_audio_rx: qcom,msm-dai-q6-usb-audio-rx {
compatible = "qcom,msm-dai-q6-dev";
qcom,msm-dai-q6-dev-id = <28672>;
};
usb_audio_tx: qcom,msm-dai-q6-usb-audio-tx {
compatible = "qcom,msm-dai-q6-dev";
qcom,msm-dai-q6-dev-id = <28673>;
};
};
hostless: qcom,msm-pcm-hostless {
compatible = "qcom,msm-pcm-hostless";
};
dai_pri_auxpcm: qcom,msm-pri-auxpcm {
compatible = "qcom,msm-auxpcm-dev";
qcom,msm-cpudai-auxpcm-mode = <0>, <0>;
qcom,msm-cpudai-auxpcm-sync = <1>, <1>;
qcom,msm-cpudai-auxpcm-frame = <5>, <4>;
qcom,msm-cpudai-auxpcm-quant = <2>, <2>;
qcom,msm-cpudai-auxpcm-num-slots = <1>, <1>;
qcom,msm-cpudai-auxpcm-slot-mapping = <1>, <1>;
qcom,msm-cpudai-auxpcm-data = <0>, <0>;
qcom,msm-cpudai-auxpcm-pcm-clk-rate = <2048000>, <2048000>;
qcom,msm-auxpcm-interface = "primary";
qcom,msm-cpudai-afe-clk-ver = <2>;
};
dai_sec_auxpcm: qcom,msm-sec-auxpcm {
compatible = "qcom,msm-auxpcm-dev";
qcom,msm-cpudai-auxpcm-mode = <0>, <0>;
qcom,msm-cpudai-auxpcm-sync = <1>, <1>;
qcom,msm-cpudai-auxpcm-frame = <5>, <4>;
qcom,msm-cpudai-auxpcm-quant = <2>, <2>;
qcom,msm-cpudai-auxpcm-num-slots = <1>, <1>;
qcom,msm-cpudai-auxpcm-slot-mapping = <1>, <1>;
qcom,msm-cpudai-auxpcm-data = <0>, <0>;
qcom,msm-cpudai-auxpcm-pcm-clk-rate = <2048000>, <2048000>;
qcom,msm-auxpcm-interface = "secondary";
qcom,msm-cpudai-afe-clk-ver = <2>;
};
dai_tert_auxpcm: qcom,msm-tert-auxpcm {
compatible = "qcom,msm-auxpcm-dev";
qcom,msm-cpudai-auxpcm-mode = <0>, <0>;
qcom,msm-cpudai-auxpcm-sync = <1>, <1>;
qcom,msm-cpudai-auxpcm-frame = <5>, <4>;
qcom,msm-cpudai-auxpcm-quant = <2>, <2>;
qcom,msm-cpudai-auxpcm-num-slots = <1>, <1>;
qcom,msm-cpudai-auxpcm-slot-mapping = <1>, <1>;
qcom,msm-cpudai-auxpcm-data = <0>, <0>;
qcom,msm-cpudai-auxpcm-pcm-clk-rate = <2048000>, <2048000>;
qcom,msm-auxpcm-interface = "tertiary";
qcom,msm-cpudai-afe-clk-ver = <2>;
};
dai_quat_auxpcm: qcom,msm-quat-auxpcm {
compatible = "qcom,msm-auxpcm-dev";
qcom,msm-cpudai-auxpcm-mode = <0>, <0>;
qcom,msm-cpudai-auxpcm-sync = <1>, <1>;
qcom,msm-cpudai-auxpcm-frame = <5>, <4>;
qcom,msm-cpudai-auxpcm-quant = <2>, <2>;
qcom,msm-cpudai-auxpcm-num-slots = <1>, <1>;
qcom,msm-cpudai-auxpcm-slot-mapping = <1>, <1>;
qcom,msm-cpudai-auxpcm-data = <0>, <0>;
qcom,msm-cpudai-auxpcm-pcm-clk-rate = <2048000>, <2048000>;
qcom,msm-auxpcm-interface = "quaternary";
qcom,msm-cpudai-afe-clk-ver = <2>;
};
qcom,msm-audio-ion {
compatible = "qcom,msm-audio-ion";
qcom,smmu-version = <2>;
qcom,smmu-enabled;
iommus = <&lpass_q6_smmu 1>;
};
qcom,msm-adsp-loader {
compatible = "qcom,adsp-loader";
qcom,adsp-state = <0>;
};
qcom,msm-dai-tdm-pri-rx {
compatible = "qcom,msm-dai-tdm";
qcom,msm-cpudai-tdm-group-id = <37120>;
qcom,msm-cpudai-tdm-group-num-ports = <1>;
qcom,msm-cpudai-tdm-group-port-id = <36864>;
qcom,msm-cpudai-tdm-clk-rate = <1536000>;
qcom,msm-cpudai-tdm-clk-internal = <1>;
qcom,msm-cpudai-tdm-sync-mode = <1>;
qcom,msm-cpudai-tdm-sync-src = <1>;
qcom,msm-cpudai-tdm-data-out = <0>;
qcom,msm-cpudai-tdm-invert-sync = <1>;
qcom,msm-cpudai-tdm-data-delay = <1>;
dai_pri_tdm_rx_0: qcom,msm-dai-q6-tdm-pri-rx-0 {
compatible = "qcom,msm-dai-q6-tdm";
qcom,msm-cpudai-tdm-dev-id = <36864>;
qcom,msm-cpudai-tdm-data-align = <0>;
};
};
qcom,msm-dai-tdm-pri-tx {
compatible = "qcom,msm-dai-tdm";
qcom,msm-cpudai-tdm-group-id = <37121>;
qcom,msm-cpudai-tdm-group-num-ports = <1>;
qcom,msm-cpudai-tdm-group-port-id = <36865>;
qcom,msm-cpudai-tdm-clk-rate = <1536000>;
qcom,msm-cpudai-tdm-clk-internal = <1>;
qcom,msm-cpudai-tdm-sync-mode = <1>;
qcom,msm-cpudai-tdm-sync-src = <1>;
qcom,msm-cpudai-tdm-data-out = <0>;
qcom,msm-cpudai-tdm-invert-sync = <1>;
qcom,msm-cpudai-tdm-data-delay = <1>;
dai_pri_tdm_tx_0: qcom,msm-dai-q6-tdm-pri-tx-0 {
compatible = "qcom,msm-dai-q6-tdm";
qcom,msm-cpudai-tdm-dev-id = <36865>;
qcom,msm-cpudai-tdm-data-align = <0>;
};
};
qcom,msm-dai-tdm-sec-rx {
compatible = "qcom,msm-dai-tdm";
qcom,msm-cpudai-tdm-group-id = <37136>;
qcom,msm-cpudai-tdm-group-num-ports = <1>;
qcom,msm-cpudai-tdm-group-port-id = <36880>;
qcom,msm-cpudai-tdm-clk-rate = <1536000>;
qcom,msm-cpudai-tdm-clk-internal = <1>;
qcom,msm-cpudai-tdm-sync-mode = <1>;
qcom,msm-cpudai-tdm-sync-src = <1>;
qcom,msm-cpudai-tdm-data-out = <0>;
qcom,msm-cpudai-tdm-invert-sync = <1>;
qcom,msm-cpudai-tdm-data-delay = <1>;
dai_sec_tdm_rx_0: qcom,msm-dai-q6-tdm-sec-rx-0 {
compatible = "qcom,msm-dai-q6-tdm";
qcom,msm-cpudai-tdm-dev-id = <36880>;
qcom,msm-cpudai-tdm-data-align = <0>;
};
};
qcom,msm-dai-tdm-sec-tx {
compatible = "qcom,msm-dai-tdm";
qcom,msm-cpudai-tdm-group-id = <37137>;
qcom,msm-cpudai-tdm-group-num-ports = <1>;
qcom,msm-cpudai-tdm-group-port-id = <36881>;
qcom,msm-cpudai-tdm-clk-rate = <1536000>;
qcom,msm-cpudai-tdm-clk-internal = <1>;
qcom,msm-cpudai-tdm-sync-mode = <1>;
qcom,msm-cpudai-tdm-sync-src = <1>;
qcom,msm-cpudai-tdm-data-out = <0>;
qcom,msm-cpudai-tdm-invert-sync = <1>;
qcom,msm-cpudai-tdm-data-delay = <1>;
dai_sec_tdm_tx_0: qcom,msm-dai-q6-tdm-sec-tx-0 {
compatible = "qcom,msm-dai-q6-tdm";
qcom,msm-cpudai-tdm-dev-id = <36881>;
qcom,msm-cpudai-tdm-data-align = <0>;
};
};
qcom,msm-dai-tdm-tert-rx {
compatible = "qcom,msm-dai-tdm";
qcom,msm-cpudai-tdm-group-id = <37152>;
qcom,msm-cpudai-tdm-group-num-ports = <1>;
qcom,msm-cpudai-tdm-group-port-id = <36896>;
qcom,msm-cpudai-tdm-clk-rate = <1536000>;
qcom,msm-cpudai-tdm-clk-internal = <1>;
qcom,msm-cpudai-tdm-sync-mode = <1>;
qcom,msm-cpudai-tdm-sync-src = <1>;
qcom,msm-cpudai-tdm-data-out = <0>;
qcom,msm-cpudai-tdm-invert-sync = <1>;
qcom,msm-cpudai-tdm-data-delay = <1>;
dai_tert_tdm_rx_0: qcom,msm-dai-q6-tdm-tert-rx-0 {
compatible = "qcom,msm-dai-q6-tdm";
qcom,msm-cpudai-tdm-dev-id = <36896>;
qcom,msm-cpudai-tdm-data-align = <0>;
};
};
qcom,msm-dai-tdm-tert-tx {
compatible = "qcom,msm-dai-tdm";
qcom,msm-cpudai-tdm-group-id = <37153>;
qcom,msm-cpudai-tdm-group-num-ports = <1>;
qcom,msm-cpudai-tdm-group-port-id = <36897 >;
qcom,msm-cpudai-tdm-clk-rate = <1536000>;
qcom,msm-cpudai-tdm-clk-internal = <1>;
qcom,msm-cpudai-tdm-sync-mode = <1>;
qcom,msm-cpudai-tdm-sync-src = <1>;
qcom,msm-cpudai-tdm-data-out = <0>;
qcom,msm-cpudai-tdm-invert-sync = <1>;
qcom,msm-cpudai-tdm-data-delay = <1>;
dai_tert_tdm_tx_0: qcom,msm-dai-q6-tdm-tert-tx-0 {
compatible = "qcom,msm-dai-q6-tdm";
qcom,msm-cpudai-tdm-dev-id = <36897 >;
qcom,msm-cpudai-tdm-data-align = <0>;
};
};
qcom,msm-dai-tdm-quat-rx {
compatible = "qcom,msm-dai-tdm";
qcom,msm-cpudai-tdm-group-id = <37168>;
qcom,msm-cpudai-tdm-group-num-ports = <1>;
qcom,msm-cpudai-tdm-group-port-id = <36912>;
qcom,msm-cpudai-tdm-clk-rate = <1536000>;
qcom,msm-cpudai-tdm-clk-internal = <1>;
qcom,msm-cpudai-tdm-sync-mode = <1>;
qcom,msm-cpudai-tdm-sync-src = <1>;
qcom,msm-cpudai-tdm-data-out = <0>;
qcom,msm-cpudai-tdm-invert-sync = <1>;
qcom,msm-cpudai-tdm-data-delay = <1>;
dai_quat_tdm_rx_0: qcom,msm-dai-q6-tdm-quat-rx-0 {
compatible = "qcom,msm-dai-q6-tdm";
qcom,msm-cpudai-tdm-dev-id = <36912>;
qcom,msm-cpudai-tdm-data-align = <0>;
};
};
qcom,msm-dai-tdm-quat-tx {
compatible = "qcom,msm-dai-tdm";
qcom,msm-cpudai-tdm-group-id = <37169>;
qcom,msm-cpudai-tdm-group-num-ports = <1>;
qcom,msm-cpudai-tdm-group-port-id = <36913 >;
qcom,msm-cpudai-tdm-clk-rate = <1536000>;
qcom,msm-cpudai-tdm-clk-internal = <1>;
qcom,msm-cpudai-tdm-sync-mode = <1>;
qcom,msm-cpudai-tdm-sync-src = <1>;
qcom,msm-cpudai-tdm-data-out = <0>;
qcom,msm-cpudai-tdm-invert-sync = <1>;
qcom,msm-cpudai-tdm-data-delay = <1>;
dai_quat_tdm_tx_0: qcom,msm-dai-q6-tdm-quat-tx-0 {
compatible = "qcom,msm-dai-q6-tdm";
qcom,msm-cpudai-tdm-dev-id = <36913 >;
qcom,msm-cpudai-tdm-data-align = <0>;
};
};
qcom,avtimer@150f700c {
compatible = "qcom,avtimer";
reg = <0x150f700c 0x4>,
<0x150f7010 0x4>;
reg-names = "avtimer_lsb_addr", "avtimer_msb_addr";
qcom,clk-div = <27>;
};
qcom,msm-audio-apr {
compatible = "qcom,msm-audio-apr";
msm_audio_apr_dummy {
compatible = "qcom,msm-audio-apr-dummy";
};
};
tasha_snd: sound-9335 {
compatible = "qcom,sdm660-asoc-snd-tasha";
qcom,model = "sdm660-tasha-snd-card";
qcom,wcn-btfm;
qcom,mi2s-audio-intf;
qcom,auxpcm-audio-intf;
qcom,ext-disp-audio-rx;
qcom,msm-mi2s-master = <1>, <1>, <1>, <1>;
qcom,audio-routing =
"AIF4 VI", "MCLK",
"RX_BIAS", "MCLK",
"MADINPUT", "MCLK",
"AMIC2", "MIC BIAS2",
"MIC BIAS2", "Headset Mic",
"AMIC3", "MIC BIAS2",
"MIC BIAS2", "ANCRight Headset Mic",
"AMIC4", "MIC BIAS2",
"MIC BIAS2", "ANCLeft Headset Mic",
"AMIC5", "MIC BIAS3",
"MIC BIAS3", "Handset Mic",
"AMIC6", "MIC BIAS4",
"MIC BIAS4", "Analog Mic6",
"DMIC0", "MIC BIAS1",
"MIC BIAS1", "Digital Mic0",
"DMIC1", "MIC BIAS1",
"MIC BIAS1", "Digital Mic1",
"DMIC2", "MIC BIAS3",
"MIC BIAS3", "Digital Mic2",
"DMIC3", "MIC BIAS3",
"MIC BIAS3", "Digital Mic3",
"DMIC4", "MIC BIAS4",
"MIC BIAS4", "Digital Mic4",
"DMIC5", "MIC BIAS4",
"MIC BIAS4", "Digital Mic5",
"SpkrLeft IN", "SPK1 OUT",
"SpkrRight IN", "SPK2 OUT";
qcom,msm-mbhc-hphl-swh = <1>;
qcom,msm-mbhc-gnd-swh = <1>;
qcom,us-euro-gpios = <&us_euro_gpio>;
qcom,hph-en0-gpio = <&tasha_hph_en0>;
qcom,hph-en1-gpio = <&tasha_hph_en1>;
qcom,msm-mclk-freq = <9600000>;
asoc-platform = <&pcm0>, <&pcm1>, <&pcm2>, <&voip>, <&voice>,
<&loopback>, <&compress>, <&hostless>,
<&afe>, <&lsm>, <&routing>, <&cpe>, <&compr>,
<&pcm_noirq>, <&cpe3>;
asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1",
"msm-pcm-dsp.2", "msm-voip-dsp",
"msm-pcm-voice", "msm-pcm-loopback",
"msm-compress-dsp", "msm-pcm-hostless",
"msm-pcm-afe", "msm-lsm-client",
"msm-pcm-routing", "msm-cpe-lsm",
"msm-compr-dsp", "msm-pcm-dsp-noirq",
"msm-cpe-lsm.3";
asoc-cpu = <&dai_dp>, <&dai_mi2s0>,
<&dai_mi2s1>,
<&dai_mi2s2>, <&dai_mi2s3>,
<&dai_pri_auxpcm>, <&dai_sec_auxpcm>,
<&dai_tert_auxpcm>, <&dai_quat_auxpcm>,
<&sb_0_rx>, <&sb_0_tx>, <&sb_1_rx>, <&sb_1_tx>,
<&sb_2_rx>, <&sb_2_tx>, <&sb_3_rx>, <&sb_3_tx>,
<&sb_4_rx>, <&sb_4_tx>, <&sb_5_tx>,
<&afe_pcm_rx>, <&afe_pcm_tx>, <&afe_proxy_rx>,
<&afe_proxy_tx>, <&incall_record_rx>,
<&incall_record_tx>, <&incall_music_rx>,
<&incall_music_2_rx>, <&sb_5_rx>, <&sb_6_rx>,
<&sb_7_rx>, <&sb_7_tx>, <&sb_8_tx>, <&sb_8_rx>,
<&usb_audio_rx>, <&usb_audio_tx>,
<&dai_pri_tdm_rx_0>, <&dai_pri_tdm_tx_0>,
<&dai_sec_tdm_rx_0>, <&dai_sec_tdm_tx_0>,
<&dai_tert_tdm_rx_0>, <&dai_tert_tdm_tx_0>,
<&dai_quat_tdm_rx_0>, <&dai_quat_tdm_tx_0>;
asoc-cpu-names = "msm-dai-q6-dp.24608", "msm-dai-q6-mi2s.0",
"msm-dai-q6-mi2s.1",
"msm-dai-q6-mi2s.2", "msm-dai-q6-mi2s.3",
"msm-dai-q6-auxpcm.1", "msm-dai-q6-auxpcm.2",
"msm-dai-q6-auxpcm.3", "msm-dai-q6-auxpcm.4",
"msm-dai-q6-dev.16384", "msm-dai-q6-dev.16385",
"msm-dai-q6-dev.16386", "msm-dai-q6-dev.16387",
"msm-dai-q6-dev.16388", "msm-dai-q6-dev.16389",
"msm-dai-q6-dev.16390", "msm-dai-q6-dev.16391",
"msm-dai-q6-dev.16392", "msm-dai-q6-dev.16393",
"msm-dai-q6-dev.16395", "msm-dai-q6-dev.224",
"msm-dai-q6-dev.225", "msm-dai-q6-dev.241",
"msm-dai-q6-dev.240", "msm-dai-q6-dev.32771",
"msm-dai-q6-dev.32772", "msm-dai-q6-dev.32773",
"msm-dai-q6-dev.32770", "msm-dai-q6-dev.16394",
"msm-dai-q6-dev.16396", "msm-dai-q6-dev.16398",
"msm-dai-q6-dev.16399", "msm-dai-q6-dev.16401",
"msm-dai-q6-dev.16400", "msm-dai-q6-dev.28672",
"msm-dai-q6-dev.28673", "msm-dai-q6-tdm.36864",
"msm-dai-q6-tdm.36865", "msm-dai-q6-tdm.36880",
"msm-dai-q6-tdm.36881", "msm-dai-q6-tdm.36896",
"msm-dai-q6-tdm.36897", "msm-dai-q6-tdm.36912",
"msm-dai-q6-tdm.36913";
asoc-codec = <&stub_codec>, <&ext_disp_audio_codec>;
asoc-codec-names = "msm-stub-codec.1",
"msm-ext-disp-audio-codec-rx";
qcom,wsa-max-devs = <2>;
qcom,wsa-devs = <&wsa881x_211>, <&wsa881x_212>,
<&wsa881x_213>, <&wsa881x_214>;
qcom,wsa-aux-dev-prefix = "SpkrLeft", "SpkrRight",
"SpkrLeft", "SpkrRight";
};
tavil_snd: sound-tavil {
compatible = "qcom,sdm660-asoc-snd-tavil";
qcom,model = "sdm660-tavil-snd-card";
qcom,wcn-btfm;
qcom,mi2s-audio-intf;
qcom,auxpcm-audio-intf;
qcom,ext-disp-audio-rx;
qcom,msm-mi2s-master = <1>, <1>, <1>, <1>;
qcom,audio-routing =
"AIF4 VI", "MCLK",
"RX_BIAS", "MCLK",
"MADINPUT", "MCLK",
"AMIC2", "MIC BIAS2",
"MIC BIAS2", "Headset Mic",
"AMIC3", "MIC BIAS2",
"MIC BIAS2", "ANCRight Headset Mic",
"AMIC4", "MIC BIAS2",
"MIC BIAS2", "ANCLeft Headset Mic",
"AMIC5", "MIC BIAS3",
"MIC BIAS3", "Handset Mic",
"DMIC0", "MIC BIAS1",
"MIC BIAS1", "Digital Mic0",
"DMIC1", "MIC BIAS1",
"MIC BIAS1", "Digital Mic1",
"DMIC2", "MIC BIAS3",
"MIC BIAS3", "Digital Mic2",
"DMIC3", "MIC BIAS3",
"MIC BIAS3", "Digital Mic3",
"DMIC4", "MIC BIAS4",
"MIC BIAS4", "Digital Mic4",
"DMIC5", "MIC BIAS4",
"MIC BIAS4", "Digital Mic5",
"SpkrLeft IN", "SPK1 OUT",
"SpkrRight IN", "SPK2 OUT";
qcom,msm-mbhc-hphl-swh = <1>;
qcom,msm-mbhc-gnd-swh = <1>;
qcom,us-euro-gpios = <&tavil_us_euro_sw>;
qcom,hph-en0-gpio = <&tavil_hph_en0>;
qcom,hph-en1-gpio = <&tavil_hph_en1>;
qcom,msm-mclk-freq = <9600000>;
qcom,usbc-analog-en1_gpio = <&wcd_usbc_analog_en1_gpio>;
qcom,usbc-analog-en2_n_gpio = <&wcd_usbc_analog_en2n_gpio>;
asoc-platform = <&pcm0>, <&pcm1>, <&pcm2>, <&voip>, <&voice>,
<&loopback>, <&compress>, <&hostless>,
<&afe>, <&lsm>, <&routing>, <&cpe>, <&compr>,
<&pcm_noirq>;
asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1",
"msm-pcm-dsp.2", "msm-voip-dsp",
"msm-pcm-voice", "msm-pcm-loopback",
"msm-compress-dsp", "msm-pcm-hostless",
"msm-pcm-afe", "msm-lsm-client",
"msm-pcm-routing", "msm-cpe-lsm",
"msm-compr-dsp", "msm-pcm-dsp-noirq";
asoc-cpu = <&dai_dp>, <&dai_mi2s0>,
<&dai_mi2s1>,
<&dai_mi2s2>, <&dai_mi2s3>,
<&dai_pri_auxpcm>, <&dai_sec_auxpcm>,
<&dai_tert_auxpcm>, <&dai_quat_auxpcm>,
<&sb_0_rx>, <&sb_0_tx>, <&sb_1_rx>, <&sb_1_tx>,
<&sb_2_rx>, <&sb_2_tx>, <&sb_3_rx>, <&sb_3_tx>,
<&sb_4_rx>, <&sb_4_tx>, <&sb_5_tx>,
<&afe_pcm_rx>, <&afe_pcm_tx>, <&afe_proxy_rx>,
<&afe_proxy_tx>, <&incall_record_rx>,
<&incall_record_tx>, <&incall_music_rx>,
<&incall_music_2_rx>, <&sb_5_rx>, <&sb_6_rx>,
<&sb_7_rx>, <&sb_7_tx>, <&sb_8_tx>, <&sb_8_rx>,
<&usb_audio_rx>, <&usb_audio_tx>,
<&dai_pri_tdm_rx_0>, <&dai_pri_tdm_tx_0>,
<&dai_sec_tdm_rx_0>, <&dai_sec_tdm_tx_0>,
<&dai_tert_tdm_rx_0>, <&dai_tert_tdm_tx_0>,
<&dai_quat_tdm_rx_0>, <&dai_quat_tdm_tx_0>;
asoc-cpu-names = "msm-dai-q6-dp.24608", "msm-dai-q6-mi2s.0",
"msm-dai-q6-mi2s.1",
"msm-dai-q6-mi2s.2", "msm-dai-q6-mi2s.3",
"msm-dai-q6-auxpcm.1", "msm-dai-q6-auxpcm.2",
"msm-dai-q6-auxpcm.3", "msm-dai-q6-auxpcm.4",
"msm-dai-q6-dev.16384", "msm-dai-q6-dev.16385",
"msm-dai-q6-dev.16386", "msm-dai-q6-dev.16387",
"msm-dai-q6-dev.16388", "msm-dai-q6-dev.16389",
"msm-dai-q6-dev.16390", "msm-dai-q6-dev.16391",
"msm-dai-q6-dev.16392", "msm-dai-q6-dev.16393",
"msm-dai-q6-dev.16395", "msm-dai-q6-dev.224",
"msm-dai-q6-dev.225", "msm-dai-q6-dev.241",
"msm-dai-q6-dev.240", "msm-dai-q6-dev.32771",
"msm-dai-q6-dev.32772", "msm-dai-q6-dev.32773",
"msm-dai-q6-dev.32770", "msm-dai-q6-dev.16394",
"msm-dai-q6-dev.16396", "msm-dai-q6-dev.16398",
"msm-dai-q6-dev.16399", "msm-dai-q6-dev.16401",
"msm-dai-q6-dev.16400", "msm-dai-q6-dev.28672",
"msm-dai-q6-dev.28673", "msm-dai-q6-tdm.36864",
"msm-dai-q6-tdm.36865", "msm-dai-q6-tdm.36880",
"msm-dai-q6-tdm.36881", "msm-dai-q6-tdm.36896",
"msm-dai-q6-tdm.36897", "msm-dai-q6-tdm.36912",
"msm-dai-q6-tdm.36913";
asoc-codec = <&stub_codec>, <&ext_disp_audio_codec>;
asoc-codec-names = "msm-stub-codec.1",
"msm-ext-disp-audio-codec-rx";
qcom,wsa-max-devs = <2>;
qcom,wsa-devs = <&wsa881x_0211>, <&wsa881x_0212>,
<&wsa881x_0213>, <&wsa881x_0214>;
qcom,wsa-aux-dev-prefix = "SpkrLeft", "SpkrRight",
"SpkrLeft", "SpkrRight";
};
int_codec: sound {
status = "disabled";
compatible = "qcom,sdm660-asoc-snd";
qcom,model = "sdm660-snd-card";
qcom,wcn-btfm;
qcom,mi2s-audio-intf;
qcom,auxpcm-audio-intf;
qcom,ext-disp-audio-rx;
qcom,msm-mi2s-master = <1>, <1>, <1>, <1>;
qcom,msm-mclk-freq = <9600000>;
qcom,msm-mbhc-hphl-swh = <1>;
qcom,msm-mbhc-gnd-swh = <1>;
qcom,msm-micbias2-ext-cap;
qcom,msm-hs-micbias-type = "external";
qcom,us-euro-gpios = <&us_euro_gpio>;
qcom,cdc-pdm-gpios = <&cdc_pdm_gpios>;
qcom,cdc-comp-gpios = <&cdc_comp_gpios>;
qcom,cdc-dmic-gpios = <&cdc_dmic_gpios>;
qcom,audio-routing =
"RX_BIAS", "INT_MCLK0",
"SPK_RX_BIAS", "INT_MCLK0",
"INT_LDO_H", "INT_MCLK0",
"RX_I2S_CLK", "INT_MCLK0",
"TX_I2S_CLK", "INT_MCLK0",
"MIC BIAS External", "Handset Mic",
"MIC BIAS External2", "Headset Mic",
"MIC BIAS External", "Secondary Mic",
"AMIC1", "MIC BIAS External",
"AMIC2", "MIC BIAS External2",
"AMIC3", "MIC BIAS External",
"DMIC1", "MIC BIAS External",
"MIC BIAS External", "Digital Mic1",
"DMIC2", "MIC BIAS External",
"MIC BIAS External", "Digital Mic2",
"DMIC3", "MIC BIAS External",
"MIC BIAS External", "Digital Mic3",
"DMIC4", "MIC BIAS External",
"MIC BIAS External", "Digital Mic4",
"SpkrLeft IN", "SPK1 OUT",
"SpkrRight IN", "SPK2 OUT",
"PDM_IN_RX1", "PDM_OUT_RX1",
"PDM_IN_RX2", "PDM_OUT_RX2",
"PDM_IN_RX3", "PDM_OUT_RX3",
"ADC1_IN", "ADC1_OUT",
"ADC2_IN", "ADC2_OUT",
"ADC3_IN", "ADC3_OUT";
asoc-platform = <&pcm0>, <&pcm1>, <&pcm2>, <&voip>, <&voice>,
<&loopback>, <&compress>, <&hostless>,
<&afe>, <&lsm>, <&routing>, <&compr>,
<&pcm_noirq>;
asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1",
"msm-pcm-dsp.2", "msm-voip-dsp",
"msm-pcm-voice", "msm-pcm-loopback",
"msm-compress-dsp", "msm-pcm-hostless",
"msm-pcm-afe", "msm-lsm-client",
"msm-pcm-routing", "msm-compr-dsp",
"msm-pcm-dsp-noirq";
asoc-cpu = <&dai_dp>, <&dai_mi2s0>,
<&dai_mi2s1>,
<&dai_mi2s2>, <&dai_mi2s3>,
<&dai_int_mi2s0>, <&dai_int_mi2s1>,
<&dai_int_mi2s2>, <&dai_int_mi2s3>,
<&dai_int_mi2s4>, <&dai_int_mi2s5>,
<&dai_pri_auxpcm>, <&dai_sec_auxpcm>,
<&dai_tert_auxpcm>, <&dai_quat_auxpcm>,
<&afe_pcm_rx>, <&afe_pcm_tx>, <&afe_proxy_rx>,
<&afe_proxy_tx>, <&incall_record_rx>,
<&incall_record_tx>, <&incall_music_rx>,
<&incall_music_2_rx>, <&sb_7_rx>, <&sb_7_tx>,
<&sb_8_tx>, <&sb_8_rx>,
<&usb_audio_rx>, <&usb_audio_tx>,
<&dai_pri_tdm_rx_0>, <&dai_pri_tdm_tx_0>,
<&dai_sec_tdm_rx_0>, <&dai_sec_tdm_tx_0>,
<&dai_tert_tdm_rx_0>, <&dai_tert_tdm_tx_0>,
<&dai_quat_tdm_rx_0>, <&dai_quat_tdm_tx_0>;
asoc-cpu-names = "msm-dai-q6-dp.24608", "msm-dai-q6-mi2s.0",
"msm-dai-q6-mi2s.1",
"msm-dai-q6-mi2s.2", "msm-dai-q6-mi2s.3",
"msm-dai-q6-mi2s.7", "msm-dai-q6-mi2s.8",
"msm-dai-q6-mi2s.9", "msm-dai-q6-mi2s.10",
"msm-dai-q6-mi2s.11", "msm-dai-q6-mi2s.12",
"msm-dai-q6-auxpcm.1", "msm-dai-q6-auxpcm.2",
"msm-dai-q6-auxpcm.3", "msm-dai-q6-auxpcm.4",
"msm-dai-q6-dev.224", "msm-dai-q6-dev.225",
"msm-dai-q6-dev.241", "msm-dai-q6-dev.240",
"msm-dai-q6-dev.32771", "msm-dai-q6-dev.32772",
"msm-dai-q6-dev.32773", "msm-dai-q6-dev.32770",
"msm-dai-q6-dev.16398", "msm-dai-q6-dev.16399",
"msm-dai-q6-dev.16401", "msm-dai-q6-dev.16400",
"msm-dai-q6-dev.28672", "msm-dai-q6-dev.28673",
"msm-dai-q6-tdm.36864", "msm-dai-q6-tdm.36865",
"msm-dai-q6-tdm.36880", "msm-dai-q6-tdm.36881",
"msm-dai-q6-tdm.36896", "msm-dai-q6-tdm.36897",
"msm-dai-q6-tdm.36912", "msm-dai-q6-tdm.36913";
asoc-codec = <&stub_codec>, <&msm_digital_codec>,
<&pmic_analog_codec>, <&msm_sdw_codec>,
<&ext_disp_audio_codec>;
asoc-codec-names = "msm-stub-codec.1", "msm-dig-codec",
"analog-codec", "msm_sdw_codec",
"msm-ext-disp-audio-codec-rx";
qcom,wsa-max-devs = <2>;
qcom,wsa-devs = <&wsa881x_211_en>, <&wsa881x_212_en>,
<&wsa881x_213_en>, <&wsa881x_214_en>;
qcom,wsa-aux-dev-prefix = "SpkrLeft", "SpkrRight",
"SpkrLeft", "SpkrRight";
};
us_euro_gpio: msm_cdc_pinctrl@75 {
compatible = "qcom,msm-cdc-pinctrl";
pinctrl-names = "aud_active", "aud_sleep";
pinctrl-0 = <&wcd_gnd_mic_swap_active>;
pinctrl-1 = <&wcd_gnd_mic_swap_idle>;
};
wcd9xxx_intc: wcd9xxx-irq {
compatible = "qcom,wcd9xxx-irq";
interrupt-controller;
#interrupt-cells = <1>;
interrupts = <0 177 0>;
interrupt-names = "wcd_irq";
};
clock_audio: audio_ext_clk {
compatible = "qcom,audio-ref-clk";
qcom,audio-ref-clk-gpio = <&pm660_gpios 3 0>;
clock-names = "osr_clk";
clocks = <&clock_rpmcc RPM_SMD_DIV_CLK1>;
qcom,node_has_rpm_clock;
#clock-cells = <1>;
qcom,codec-mclk-clk-freq = <11289600>;
qcom,mclk-clk-reg = <0x15020018 0x0>;
pinctrl-names = "sleep", "active";
pinctrl-0 = <&lpi_mclk0_sleep>;
pinctrl-1 = <&lpi_mclk0_active>;
};
clock_audio_lnbb: audio_ext_clk_lnbb {
compatible = "qcom,audio-ref-clk";
clock-names = "osr_clk";
clocks = <&clock_rpmcc RPM_SMD_LN_BB_CLK2>;
qcom,node_has_rpm_clock;
#clock-cells = <1>;
};
wcd_rst_gpio: msm_cdc_pinctrl@64 {
compatible = "qcom,msm-cdc-pinctrl";
pinctrl-names = "aud_active", "aud_sleep";
pinctrl-0 = <&lpi_cdc_reset_active>;
pinctrl-1 = <&lpi_cdc_reset_sleep>;
qcom,lpi-gpios;
};
};

View File

@ -0,0 +1,159 @@
/*
* Copyright (c) 2016, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
&soc {
/* GCC GDSCs */
gdsc_usb30: qcom,gdsc@10f004 {
compatible = "qcom,gdsc";
regulator-name = "gdsc_usb30";
reg = <0x10f004 0x4>;
status = "disabled";
};
gdsc_ufs: qcom,gdsc@175004 {
compatible = "qcom,gdsc";
regulator-name = "gdsc_ufs";
reg = <0x175004 0x4>;
status = "disabled";
};
gdsc_hlos1_vote_lpass_adsp: qcom,gdsc@17d034 {
compatible = "qcom,gdsc";
regulator-name = "gdsc_hlos1_vote_lpass_adsp";
reg = <0x17d034 0x4>;
qcom,no-status-check-on-disable;
qcom,gds-timeout = <500>;
status = "disabled";
};
gdsc_hlos1_vote_turing_adsp: qcom,gdsc@17d04c {
compatible = "qcom,gdsc";
regulator-name = "gdsc_hlos1_vote_turing_adsp";
reg = <0x17d04c 0x4>;
qcom,no-status-check-on-disable;
qcom,gds-timeout = <500>;
status = "disabled";
};
gdsc_hlos2_vote_turing_adsp: qcom,gdsc@17e04c {
compatible = "qcom,gdsc";
regulator-name = "gdsc_hlos2_vote_turing_adsp";
reg = <0x17e04c 0x4>;
qcom,no-status-check-on-disable;
qcom,gds-timeout = <500>;
status = "disabled";
};
/* MMSS GDSCs */
bimc_smmu_hw_ctrl: syscon@c8ce024 {
compatible = "syscon";
reg = <0xc8ce024 0x4>;
};
gdsc_bimc_smmu: qcom,gdsc@c8ce020 {
compatible = "qcom,gdsc";
regulator-name = "gdsc_bimc_smmu";
reg = <0xc8ce020 0x4>;
hw-ctrl-addr = <&bimc_smmu_hw_ctrl>;
qcom,no-status-check-on-disable;
qcom,gds-timeout = <500>;
status = "disabled";
};
gdsc_venus: qcom,gdsc@c8c1024 {
compatible = "qcom,gdsc";
regulator-name = "gdsc_venus";
reg = <0xc8c1024 0x4>;
status = "disabled";
};
gdsc_venus_core0: qcom,gdsc@c8c1040 {
compatible = "qcom,gdsc";
regulator-name = "gdsc_venus_core0";
reg = <0xc8c1040 0x4>;
status = "disabled";
};
gdsc_camss_top: qcom,gdsc@c8c34a0 {
compatible = "qcom,gdsc";
regulator-name = "gdsc_camss_top";
reg = <0xc8c34a0 0x4>;
status = "disabled";
};
gdsc_vfe0: qcom,gdsc@c8c3664 {
compatible = "qcom,gdsc";
regulator-name = "gdsc_vfe0";
reg = <0xc8c3664 0x4>;
status = "disabled";
};
gdsc_vfe1: qcom,gdsc@c8c3674 {
compatible = "qcom,gdsc";
regulator-name = "gdsc_vfe1";
reg = <0xc8c3674 0x4>;
status = "disabled";
};
gdsc_cpp: qcom,gdsc@c8c36d4 {
compatible = "qcom,gdsc";
regulator-name = "gdsc_cpp";
reg = <0xc8c36d4 0x4>;
status = "disabled";
};
gdsc_mdss: qcom,gdsc@c8c2304 {
compatible = "qcom,gdsc";
regulator-name = "gdsc_mdss";
reg = <0xc8c2304 0x4>;
status = "disabled";
};
/* GPU GDSCs */
gpu_cx_hw_ctrl: syscon@5066008 {
compatible = "syscon";
reg = <0x5066008 0x4>;
};
gdsc_gpu_cx: qcom,gdsc@5066004 {
compatible = "qcom,gdsc";
regulator-name = "gdsc_gpu_cx";
reg = <0x5066004 0x4>;
hw-ctrl-addr = <&gpu_cx_hw_ctrl>;
qcom,no-status-check-on-disable;
qcom,gds-timeout = <2000>;
status = "disabled";
};
/* GPU GX GDSCs */
gpu_gx_domain_addr: syscon@5065130 {
compatible = "syscon";
reg = <0x5065130 0x4>;
};
gpu_gx_sw_reset: syscon@5066090 {
compatible = "syscon";
reg = <0x5066090 0x4>;
};
gdsc_gpu_gx: qcom,gdsc@5066094 {
compatible = "qcom,gdsc";
regulator-name = "gdsc_gpu_gx";
reg = <0x5066094 0x4>;
domain-addr = <&gpu_gx_domain_addr>;
sw-reset = <&gpu_gx_sw_reset>;
qcom,retain-periph;
qcom,reset-aon-logic;
status = "disabled";
};
};

View File

@ -0,0 +1,298 @@
/* Copyright (c) 2016, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
&rpm_bus {
rpm-regulator-smpa4 {
compatible = "qcom,rpm-smd-regulator-resource";
qcom,resource-name = "smpa";
qcom,resource-id = <4>;
qcom,regulator-type = <1>;
status = "disabled";
regulator-s4 {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660_s4";
qcom,set = <3>;
status = "disabled";
};
};
rpm-regulator-smpa5 {
compatible = "qcom,rpm-smd-regulator-resource";
qcom,resource-name = "smpa";
qcom,resource-id = <5>;
qcom,regulator-type = <1>;
status = "disabled";
regulator-s5 {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660_s5";
qcom,set = <3>;
status = "disabled";
};
};
rpm-regulator-smpa6 {
compatible = "qcom,rpm-smd-regulator-resource";
qcom,resource-name = "smpa";
qcom,resource-id = <6>;
qcom,regulator-type = <1>;
status = "disabled";
regulator-s6 {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660_s6";
qcom,set = <3>;
status = "disabled";
};
};
rpm-regulator-ldoa1 {
compatible = "qcom,rpm-smd-regulator-resource";
qcom,resource-name = "ldoa";
qcom,resource-id = <1>;
qcom,regulator-type = <0>;
status = "disabled";
regulator-l1 {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660_l1";
qcom,set = <3>;
status = "disabled";
};
};
rpm-regulator-ldoa2 {
compatible = "qcom,rpm-smd-regulator-resource";
qcom,resource-name = "ldoa";
qcom,resource-id = <2>;
qcom,regulator-type = <0>;
status = "disabled";
regulator-l2 {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660_l2";
qcom,set = <3>;
status = "disabled";
};
};
rpm-regulator-ldoa3 {
compatible = "qcom,rpm-smd-regulator-resource";
qcom,resource-name = "ldoa";
qcom,resource-id = <3>;
qcom,regulator-type = <0>;
status = "disabled";
regulator-l3 {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660_l3";
qcom,set = <3>;
status = "disabled";
};
};
rpm-regulator-ldoa5 {
compatible = "qcom,rpm-smd-regulator-resource";
qcom,resource-name = "ldoa";
qcom,resource-id = <5>;
qcom,regulator-type = <0>;
status = "disabled";
regulator-l5 {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660_l5";
qcom,set = <3>;
status = "disabled";
};
};
rpm-regulator-ldoa6 {
compatible = "qcom,rpm-smd-regulator-resource";
qcom,resource-name = "ldoa";
qcom,resource-id = <6>;
qcom,regulator-type = <0>;
status = "disabled";
regulator-l6 {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660_l6";
qcom,set = <3>;
status = "disabled";
};
};
rpm-regulator-ldoa7 {
compatible = "qcom,rpm-smd-regulator-resource";
qcom,resource-name = "ldoa";
qcom,resource-id = <7>;
qcom,regulator-type = <0>;
status = "disabled";
regulator-l7 {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660_l7";
qcom,set = <3>;
status = "disabled";
};
};
rpm-regulator-ldoa8 {
compatible = "qcom,rpm-smd-regulator-resource";
qcom,resource-name = "ldoa";
qcom,resource-id = <8>;
qcom,regulator-type = <0>;
status = "disabled";
regulator-l8 {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660_l8";
qcom,set = <3>;
status = "disabled";
};
};
rpm-regulator-ldoa9 {
compatible = "qcom,rpm-smd-regulator-resource";
qcom,resource-name = "ldoa";
qcom,resource-id = <9>;
qcom,regulator-type = <0>;
status = "disabled";
regulator-l9 {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660_l9";
qcom,set = <3>;
status = "disabled";
};
};
rpm-regulator-ldoa10 {
compatible = "qcom,rpm-smd-regulator-resource";
qcom,resource-name = "ldoa";
qcom,resource-id = <10>;
qcom,regulator-type = <0>;
status = "disabled";
regulator-l10 {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660_l10";
qcom,set = <3>;
status = "disabled";
};
};
rpm-regulator-ldoa11 {
compatible = "qcom,rpm-smd-regulator-resource";
qcom,resource-name = "ldoa";
qcom,resource-id = <11>;
qcom,regulator-type = <0>;
status = "disabled";
regulator-l11 {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660_l11";
qcom,set = <3>;
status = "disabled";
};
};
rpm-regulator-ldoa12 {
compatible = "qcom,rpm-smd-regulator-resource";
qcom,resource-name = "ldoa";
qcom,resource-id = <12>;
qcom,regulator-type = <0>;
status = "disabled";
regulator-l12 {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660_l12";
qcom,set = <3>;
status = "disabled";
};
};
rpm-regulator-ldoa13 {
compatible = "qcom,rpm-smd-regulator-resource";
qcom,resource-name = "ldoa";
qcom,resource-id = <13>;
qcom,regulator-type = <0>;
status = "disabled";
regulator-l13 {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660_l13";
qcom,set = <3>;
status = "disabled";
};
};
rpm-regulator-ldoa14 {
compatible = "qcom,rpm-smd-regulator-resource";
qcom,resource-name = "ldoa";
qcom,resource-id = <14>;
qcom,regulator-type = <0>;
status = "disabled";
regulator-l14 {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660_l14";
qcom,set = <3>;
status = "disabled";
};
};
rpm-regulator-ldoa15 {
compatible = "qcom,rpm-smd-regulator-resource";
qcom,resource-name = "ldoa";
qcom,resource-id = <15>;
qcom,regulator-type = <0>;
status = "disabled";
regulator-l15 {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660_l15";
qcom,set = <3>;
status = "disabled";
};
};
rpm-regulator-ldoa17 {
compatible = "qcom,rpm-smd-regulator-resource";
qcom,resource-name = "ldoa";
qcom,resource-id = <17>;
qcom,regulator-type = <0>;
status = "disabled";
regulator-l17 {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660_l17";
qcom,set = <3>;
status = "disabled";
};
};
rpm-regulator-ldoa19 {
compatible = "qcom,rpm-smd-regulator-resource";
qcom,resource-name = "ldoa";
qcom,resource-id = <19>;
qcom,regulator-type = <0>;
status = "disabled";
regulator-l19 {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660_l19";
qcom,set = <3>;
status = "disabled";
};
};
};

View File

@ -0,0 +1,657 @@
/* Copyright (c) 2016-2017, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include <dt-bindings/spmi/spmi.h>
#include <dt-bindings/interrupt-controller/irq.h>
&spmi_bus {
qcom,pm660@0 {
compatible ="qcom,spmi-pmic";
reg = <0x0 SPMI_USID>;
#address-cells = <2>;
#size-cells = <0>;
pm660_revid: qcom,revid@100 {
compatible = "qcom,qpnp-revid";
reg = <0x100 0x100>;
qcom,fab-id-valid;
qcom,tp-rev-valid;
};
pm660_misc: qcom,misc@900 {
compatible = "qcom,qpnp-misc";
reg = <0x900 0x100>;
};
qcom,power-on@800 {
compatible = "qcom,qpnp-power-on";
reg = <0x800 0x100>;
interrupts = <0x0 0x8 0x0 IRQ_TYPE_NONE>,
<0x0 0x8 0x1 IRQ_TYPE_NONE>,
<0x0 0x8 0x4 IRQ_TYPE_NONE>,
<0x0 0x8 0x5 IRQ_TYPE_NONE>;
interrupt-names = "kpdpwr", "resin",
"resin-bark", "kpdpwr-resin-bark";
qcom,pon-dbc-delay = <15625>;
qcom,kpdpwr-sw-debounce;
qcom,system-reset;
qcom,store-hard-reset-reason;
qcom,pon_1 {
qcom,pon-type = <0>;
qcom,pull-up = <1>;
linux,code = <116>;
};
qcom,pon_2 {
qcom,pon-type = <1>;
qcom,pull-up = <1>;
linux,code = <114>;
};
};
qcom,temp-alarm@2400 {
compatible = "qcom,qpnp-temp-alarm";
reg = <0x2400 0x100>;
interrupts = <0x0 0x24 0x0 IRQ_TYPE_EDGE_RISING>;
label = "pm660_tz";
qcom,channel-num = <6>;
qcom,temp_alarm-vadc = <&pm660_vadc>;
};
pm660_gpios: gpios {
compatible = "qcom,qpnp-pin";
gpio-controller;
#gpio-cells = <2>;
#address-cells = <1>;
#size-cells = <1>;
label = "pm660-gpio";
gpio@c000 {
reg = <0xc000 0x100>;
qcom,pin-num = <1>;
status = "disabled";
};
gpio@c100 {
reg = <0xc100 0x100>;
qcom,pin-num = <2>;
status = "disabled";
};
gpio@c200 {
reg = <0xc200 0x100>;
qcom,pin-num = <3>;
status = "disabled";
};
gpio@c300 {
reg = <0xc300 0x100>;
qcom,pin-num = <4>;
status = "disabled";
};
gpio@c400 {
reg = <0xc400 0x100>;
qcom,pin-num = <5>;
status = "disabled";
};
gpio@c500 {
reg = <0xc500 0x100>;
qcom,pin-num = <6>;
status = "disabled";
};
gpio@c600 {
reg = <0xc600 0x100>;
qcom,pin-num = <7>;
status = "disabled";
};
gpio@c700 {
reg = <0xc700 0x100>;
qcom,pin-num = <8>;
status = "disabled";
};
gpio@c800 {
reg = <0xc800 0x100>;
qcom,pin-num = <9>;
status = "disabled";
};
gpio@c900 {
reg = <0xc900 0x100>;
qcom,pin-num = <10>;
status = "disabled";
};
gpio@ca00 {
reg = <0xca00 0x100>;
qcom,pin-num = <11>;
status = "disabled";
};
gpio@cb00 {
reg = <0xcb00 0x100>;
qcom,pin-num = <12>;
status = "disabled";
};
gpio@cc00 {
reg = <0xcc00 0x100>;
qcom,pin-num = <13>;
status = "disabled";
};
};
pm660_coincell: qcom,coincell@2800 {
compatible = "qcom,qpnp-coincell";
reg = <0x2800 0x100>;
};
pm660_rtc: qcom,pm660_rtc {
compatible = "qcom,qpnp-rtc";
#address-cells = <1>;
#size-cells = <1>;
qcom,qpnp-rtc-write = <0>;
qcom,qpnp-rtc-alarm-pwrup = <0>;
qcom,pm660_rtc_rw@6000 {
reg = <0x6000 0x100>;
};
qcom,pm660_rtc_alarm@6100 {
reg = <0x6100 0x100>;
interrupts = <0x0 0x61 0x1 IRQ_TYPE_NONE>;
};
};
pm660_vadc: vadc@3100 {
compatible = "qcom,qpnp-vadc-hc";
reg = <0x3100 0x100>;
#address-cells = <1>;
#size-cells = <0>;
interrupts = <0x0 0x31 0x0 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "eoc-int-en-set";
qcom,adc-bit-resolution = <15>;
qcom,adc-vdd-reference = <1875>;
chan@6 {
label = "die_temp";
reg = <6>;
qcom,decimation = <2>;
qcom,pre-div-channel-scaling = <0>;
qcom,calibration-type = "absolute";
qcom,scale-function = <3>;
qcom,hw-settle-time = <0>;
qcom,fast-avg-setup = <0>;
qcom,cal-val = <0>;
};
chan@0 {
label = "ref_gnd";
reg = <0>;
qcom,decimation = <2>;
qcom,pre-div-channel-scaling = <0>;
qcom,calibration-type = "absolute";
qcom,scale-function = <0>;
qcom,hw-settle-time = <0>;
qcom,fast-avg-setup = <0>;
qcom,cal-val = <0>;
};
chan@1 {
label = "ref_1250v";
reg = <1>;
qcom,decimation = <2>;
qcom,pre-div-channel-scaling = <0>;
qcom,calibration-type = "absolute";
qcom,scale-function = <0>;
qcom,hw-settle-time = <0>;
qcom,fast-avg-setup = <0>;
qcom,cal-val = <0>;
};
chan@83 {
label = "vph_pwr";
reg = <0x83>;
qcom,decimation = <2>;
qcom,pre-div-channel-scaling = <1>;
qcom,calibration-type = "absolute";
qcom,scale-function = <0>;
qcom,hw-settle-time = <0>;
qcom,fast-avg-setup = <0>;
};
chan@85 {
label = "vcoin";
reg = <0x85>;
qcom,decimation = <2>;
qcom,pre-div-channel-scaling = <1>;
qcom,calibration-type = "absolute";
qcom,scale-function = <0>;
qcom,hw-settle-time = <0>;
qcom,fast-avg-setup = <0>;
};
chan@4c {
label = "xo_therm";
reg = <0x4c>;
qcom,decimation = <2>;
qcom,pre-div-channel-scaling = <0>;
qcom,calibration-type = "ratiometric";
qcom,scale-function = <4>;
qcom,hw-settle-time = <2>;
qcom,fast-avg-setup = <0>;
};
chan@4d {
label = "msm_therm";
reg = <0x4d>;
qcom,decimation = <2>;
qcom,pre-div-channel-scaling = <0>;
qcom,calibration-type = "ratiometric";
qcom,scale-function = <2>;
qcom,hw-settle-time = <2>;
qcom,fast-avg-setup = <0>;
};
chan@51 {
label = "quiet_therm";
reg = <0x51>;
qcom,decimation = <2>;
qcom,pre-div-channel-scaling = <0>;
qcom,calibration-type = "ratiometric";
qcom,scale-function = <2>;
qcom,hw-settle-time = <2>;
qcom,fast-avg-setup = <0>;
};
chan@4e {
label = "emmc_therm";
reg = <0x4e>;
qcom,decimation = <2>;
qcom,pre-div-channel-scaling = <0>;
qcom,calibration-type = "ratiometric";
qcom,scale-function = <2>;
qcom,hw-settle-time = <2>;
qcom,fast-avg-setup = <0>;
qcom,vadc-thermal-node;
};
chan@4f {
label = "pa_therm0";
reg = <0x4f>;
qcom,decimation = <2>;
qcom,pre-div-channel-scaling = <0>;
qcom,calibration-type = "ratiometric";
qcom,scale-function = <2>;
qcom,hw-settle-time = <2>;
qcom,fast-avg-setup = <0>;
qcom,vadc-thermal-node;
};
chan@1d {
label = "drax_temp";
reg = <0x1d>;
qcom,decimation = <2>;
qcom,pre-div-channel-scaling = <0>;
qcom,calibration-type = "absolute";
qcom,scale-function = <3>;
qcom,hw-settle-time = <0>;
qcom,fast-avg-setup = <0>;
qcom,cal-val = <0>;
};
};
pm660_charger: qcom,qpnp-smb2 {
compatible = "qcom,qpnp-smb2";
#address-cells = <1>;
#size-cells = <1>;
qcom,pmic-revid = <&pm660_revid>;
io-channels = <&pm660_rradc 8>,
<&pm660_rradc 10>,
<&pm660_rradc 3>,
<&pm660_rradc 4>;
io-channel-names = "charger_temp",
"charger_temp_max",
"usbin_i",
"usbin_v";
qcom,wipower-max-uw = <5000000>;
dpdm-supply = <&qusb_phy0>;
qcom,thermal-mitigation
= <3000000 2500000 2000000 1500000
1000000 500000>;
qcom,chgr@1000 {
reg = <0x1000 0x100>;
interrupts =
<0x0 0x10 0x0 IRQ_TYPE_EDGE_RISING>,
<0x0 0x10 0x1 IRQ_TYPE_EDGE_RISING>,
<0x0 0x10 0x2 IRQ_TYPE_EDGE_RISING>,
<0x0 0x10 0x3 IRQ_TYPE_EDGE_RISING>,
<0x0 0x10 0x4 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "chg-error",
"chg-state-change",
"step-chg-state-change",
"step-chg-soc-update-fail",
"step-chg-soc-update-request";
};
qcom,otg@1100 {
reg = <0x1100 0x100>;
interrupts = <0x0 0x11 0x0 IRQ_TYPE_EDGE_BOTH>,
<0x0 0x11 0x1 IRQ_TYPE_EDGE_BOTH>,
<0x0 0x11 0x2 IRQ_TYPE_EDGE_BOTH>,
<0x0 0x11 0x3 IRQ_TYPE_EDGE_BOTH>;
interrupt-names = "otg-fail",
"otg-overcurrent",
"otg-oc-dis-sw-sts",
"testmode-change-detect";
};
qcom,bat-if@1200 {
reg = <0x1200 0x100>;
interrupts =
<0x0 0x12 0x0 IRQ_TYPE_EDGE_RISING>,
<0x0 0x12 0x1 IRQ_TYPE_EDGE_BOTH>,
<0x0 0x12 0x2 IRQ_TYPE_EDGE_BOTH>,
<0x0 0x12 0x3 IRQ_TYPE_EDGE_BOTH>,
<0x0 0x12 0x4 IRQ_TYPE_EDGE_BOTH>,
<0x0 0x12 0x5 IRQ_TYPE_EDGE_BOTH>;
interrupt-names = "bat-temp",
"bat-ocp",
"bat-ov",
"bat-low",
"bat-therm-or-id-missing",
"bat-terminal-missing";
};
qcom,usb-chgpth@1300 {
reg = <0x1300 0x100>;
interrupts =
<0x0 0x13 0x0 IRQ_TYPE_EDGE_BOTH>,
<0x0 0x13 0x1 IRQ_TYPE_EDGE_BOTH>,
<0x0 0x13 0x2 IRQ_TYPE_EDGE_BOTH>,
<0x0 0x13 0x3 IRQ_TYPE_EDGE_BOTH>,
<0x0 0x13 0x4 IRQ_TYPE_EDGE_BOTH>,
<0x0 0x13 0x5 IRQ_TYPE_EDGE_RISING>,
<0x0 0x13 0x6 IRQ_TYPE_EDGE_RISING>,
<0x0 0x13 0x7 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "usbin-collapse",
"usbin-lt-3p6v",
"usbin-uv",
"usbin-ov",
"usbin-plugin",
"usbin-src-change",
"usbin-icl-change",
"type-c-change";
};
qcom,dc-chgpth@1400 {
reg = <0x1400 0x100>;
interrupts =
<0x0 0x14 0x0 IRQ_TYPE_EDGE_BOTH>,
<0x0 0x14 0x1 IRQ_TYPE_EDGE_BOTH>,
<0x0 0x14 0x2 IRQ_TYPE_EDGE_BOTH>,
<0x0 0x14 0x3 IRQ_TYPE_EDGE_BOTH>,
<0x0 0x14 0x4 IRQ_TYPE_EDGE_BOTH>,
<0x0 0x14 0x5 IRQ_TYPE_EDGE_BOTH>,
<0x0 0x14 0x6 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "dcin-collapse",
"dcin-lt-3p6v",
"dcin-uv",
"dcin-ov",
"dcin-plugin",
"div2-en-dg",
"dcin-icl-change";
};
qcom,chgr-misc@1600 {
reg = <0x1600 0x100>;
interrupts =
<0x0 0x16 0x0 IRQ_TYPE_EDGE_RISING>,
<0x0 0x16 0x1 IRQ_TYPE_EDGE_RISING>,
<0x0 0x16 0x2 IRQ_TYPE_EDGE_BOTH>,
<0x0 0x16 0x3 IRQ_TYPE_EDGE_BOTH>,
<0x0 0x16 0x4 IRQ_TYPE_EDGE_BOTH>,
<0x0 0x16 0x5 IRQ_TYPE_EDGE_BOTH>,
<0x0 0x16 0x6 IRQ_TYPE_EDGE_FALLING>,
<0x0 0x16 0x7 IRQ_TYPE_EDGE_BOTH>;
interrupt-names = "wdog-snarl",
"wdog-bark",
"aicl-fail",
"aicl-done",
"high-duty-cycle",
"input-current-limiting",
"temperature-change",
"switcher-power-ok";
};
};
pm660_pdphy: qcom,usb-pdphy@1700 {
compatible = "qcom,qpnp-pdphy";
reg = <0x1700 0x100>;
vdd-pdphy-supply = <&pm660l_l7>;
vbus-supply = <&smb2_vbus>;
vconn-supply = <&smb2_vconn>;
interrupts = <0x0 0x17 0x0 IRQ_TYPE_EDGE_RISING>,
<0x0 0x17 0x1 IRQ_TYPE_EDGE_RISING>,
<0x0 0x17 0x2 IRQ_TYPE_EDGE_RISING>,
<0x0 0x17 0x3 IRQ_TYPE_EDGE_RISING>,
<0x0 0x17 0x4 IRQ_TYPE_EDGE_RISING>,
<0x0 0x17 0x5 IRQ_TYPE_EDGE_RISING>,
<0x0 0x17 0x6 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "sig-tx",
"sig-rx",
"msg-tx",
"msg-rx",
"msg-tx-failed",
"msg-tx-discarded",
"msg-rx-discarded";
qcom,default-sink-caps = <5000 3000>, /* 5V @ 3A */
<9000 3000>; /* 9V @ 3A */
};
pm660_adc_tm: vadc@3400 {
compatible = "qcom,qpnp-adc-tm-hc";
reg = <0x3400 0x100>;
#address-cells = <1>;
#size-cells = <0>;
interrupts = <0x0 0x34 0x0 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "eoc-int-en-set";
qcom,adc-bit-resolution = <15>;
qcom,adc-vdd-reference = <1875>;
qcom,adc_tm-vadc = <&pm660_vadc>;
qcom,decimation = <0>;
qcom,fast-avg-setup = <0>;
chan@83 {
label = "vph_pwr";
reg = <0x83>;
qcom,pre-div-channel-scaling = <1>;
qcom,calibration-type = "absolute";
qcom,scale-function = <0>;
qcom,hw-settle-time = <0>;
qcom,btm-channel-number = <0x60>;
};
chan@4d {
label = "msm_therm";
reg = <0x4d>;
qcom,pre-div-channel-scaling = <0>;
qcom,calibration-type = "ratiometric";
qcom,scale-function = <2>;
qcom,hw-settle-time = <2>;
qcom,btm-channel-number = <0x68>;
qcom,thermal-node;
};
chan@51 {
label = "quiet_therm";
reg = <0x51>;
qcom,pre-div-channel-scaling = <0>;
qcom,calibration-type = "ratiometric";
qcom,scale-function = <2>;
qcom,hw-settle-time = <2>;
qcom,btm-channel-number = <0x70>;
qcom,thermal-node;
};
chan@4c {
label = "xo_therm";
reg = <0x4c>;
qcom,pre-div-channel-scaling = <0>;
qcom,calibration-type = "ratiometric";
qcom,scale-function = <4>;
qcom,hw-settle-time = <2>;
qcom,btm-channel-number = <0x78>;
qcom,thermal-node;
};
};
pm660_rradc: rradc@4500 {
compatible = "qcom,rradc";
reg = <0x4500 0x100>;
#address-cells = <1>;
#size-cells = <0>;
#io-channel-cells = <1>;
qcom,pmic-revid = <&pm660_revid>;
};
pm660_fg: qpnp,fg {
compatible = "qcom,fg-gen3";
#address-cells = <1>;
#size-cells = <1>;
qcom,pmic-revid = <&pm660_revid>;
io-channels = <&pm660_rradc 0>,
<&pm660_rradc 7>;
io-channel-names = "rradc_batt_id",
"rradc_die_temp";
qcom,rradc-base = <0x4500>;
qcom,fg-esr-timer-awake = <96 96>;
qcom,fg-esr-timer-asleep = <256 256>;
qcom,fg-esr-timer-charging = <0 96>;
qcom,cycle-counter-en;
status = "okay";
qcom,fg-batt-soc@4000 {
status = "okay";
reg = <0x4000 0x100>;
interrupts = <0x0 0x40 0x0 IRQ_TYPE_EDGE_BOTH>,
<0x0 0x40 0x1 IRQ_TYPE_EDGE_BOTH>,
<0x0 0x40 0x2
IRQ_TYPE_EDGE_RISING>,
<0x0 0x40 0x3
IRQ_TYPE_EDGE_RISING>,
<0x0 0x40 0x4 IRQ_TYPE_EDGE_BOTH>,
<0x0 0x40 0x5
IRQ_TYPE_EDGE_RISING>,
<0x0 0x40 0x6 IRQ_TYPE_EDGE_BOTH>,
<0x0 0x40 0x7 IRQ_TYPE_EDGE_BOTH>;
interrupt-names = "soc-update",
"soc-ready",
"bsoc-delta",
"msoc-delta",
"msoc-low",
"msoc-empty",
"msoc-high",
"msoc-full";
};
qcom,fg-batt-info@4100 {
status = "okay";
reg = <0x4100 0x100>;
interrupts = <0x0 0x41 0x0 IRQ_TYPE_EDGE_BOTH>,
<0x0 0x41 0x1 IRQ_TYPE_EDGE_BOTH>,
<0x0 0x41 0x2 IRQ_TYPE_EDGE_BOTH>,
<0x0 0x41 0x3 IRQ_TYPE_EDGE_BOTH>,
<0x0 0x41 0x6 IRQ_TYPE_EDGE_BOTH>;
interrupt-names = "vbatt-pred-delta",
"vbatt-low",
"esr-delta",
"batt-missing",
"batt-temp-delta";
};
qcom,fg-memif@4400 {
status = "okay";
reg = <0x4400 0x100>;
interrupts = <0x0 0x44 0x0 IRQ_TYPE_EDGE_BOTH>,
<0x0 0x44 0x1 IRQ_TYPE_EDGE_BOTH>,
<0x0 0x44 0x2 IRQ_TYPE_EDGE_BOTH>;
interrupt-names = "ima-rdy",
"mem-xcp",
"dma-grant";
};
};
bcl@4200 {
compatible = "qcom,msm-bcl-lmh";
reg = <0x4200 0xff>,
<0x4300 0xff>;
reg-names = "fg_user_adc",
"fg_lmh";
interrupts = <0x0 0x42 0x0 IRQ_TYPE_NONE>,
<0x0 0x42 0x2 IRQ_TYPE_NONE>;
interrupt-names = "bcl-high-ibat-int",
"bcl-low-vbat-int";
qcom,vbat-polling-delay-ms = <100>;
qcom,ibat-polling-delay-ms = <100>;
};
};
qcom,pm660@1 {
compatible ="qcom,spmi-pmic";
reg = <0x1 SPMI_USID>;
#address-cells = <2>;
#size-cells = <0>;
pm660_haptics: qcom,haptic@c000 {
compatible = "qcom,qpnp-haptic";
reg = <0xc000 0x100>;
interrupts = <0x1 0xc0 0x0 IRQ_TYPE_EDGE_BOTH>,
<0x1 0xc0 0x1 IRQ_TYPE_EDGE_BOTH>;
interrupt-names = "sc-irq", "play-irq";
qcom,pmic-revid = <&pm660_revid>;
qcom,pmic-misc = <&pm660_misc>;
qcom,misc-clk-trim-error-reg = <0xf3>;
qcom,actuator-type = "lra";
qcom,play-mode = "direct";
qcom,vmax-mv = <3200>;
qcom,ilim-ma = <800>;
qcom,wave-shape = "square";
qcom,wave-play-rate-us = <6667>;
qcom,int-pwm-freq-khz = <505>;
qcom,sc-debounce-cycles = <8>;
qcom,en-brake;
qcom,brake-pattern = [03 03 00 00];
qcom,lra-high-z = "opt0";
qcom,lra-auto-res-mode = "qwd";
qcom,lra-calibrate-at-eop = <0>;
qcom,correct-lra-drive-freq;
};
};
};

View File

@ -0,0 +1,29 @@
/* Copyright (c) 2016-2017, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
/* Disable WLED */
&pm660l_wled {
status = "disabled";
};
/* disable LCDB */
&pm660l_lcdb {
status = "disabled";
};
&pm660a_oledb {
status = "okay";
};
&pm660a_labibb {
status = "okay";
};

View File

@ -0,0 +1,238 @@
/* Copyright (c) 2016-2017, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
&rpm_bus {
rpm-regulator-smpb1 {
compatible = "qcom,rpm-smd-regulator-resource";
qcom,resource-name = "smpb";
qcom,resource-id = <1>;
qcom,regulator-type = <1>;
status = "disabled";
regulator-s1 {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660l_s1";
qcom,set = <3>;
status = "disabled";
};
};
rpm-regulator-smpb2 {
compatible = "qcom,rpm-smd-regulator-resource";
qcom,resource-name = "smpb";
qcom,resource-id = <2>;
qcom,regulator-type = <1>;
status = "disabled";
regulator-s2 {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660l_s2";
qcom,set = <3>;
status = "disabled";
};
};
rpm-regulator-smpb3 {
compatible = "qcom,rpm-smd-regulator-resource";
qcom,resource-name = "rwcx";
qcom,resource-id = <0>;
qcom,regulator-type = <1>;
status = "disabled";
regulator-s3 {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660l_s3";
qcom,set = <3>;
status = "disabled";
};
};
rpm-regulator-smpb5 {
compatible = "qcom,rpm-smd-regulator-resource";
qcom,resource-name = "rwmx";
qcom,resource-id = <0>;
qcom,regulator-type = <1>;
status = "disabled";
regulator-s5 {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660l_s5";
qcom,set = <3>;
status = "disabled";
};
};
rpm-regulator-ldob1 {
compatible = "qcom,rpm-smd-regulator-resource";
qcom,resource-name = "ldob";
qcom,resource-id = <1>;
qcom,regulator-type = <0>;
status = "disabled";
regulator-l1 {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660l_l1";
qcom,set = <3>;
status = "disabled";
};
};
rpm-regulator-ldob2 {
compatible = "qcom,rpm-smd-regulator-resource";
qcom,resource-name = "ldob";
qcom,resource-id = <2>;
qcom,regulator-type = <0>;
status = "disabled";
regulator-l2 {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660l_l2";
qcom,set = <3>;
status = "disabled";
};
};
rpm-regulator-ldob3 {
compatible = "qcom,rpm-smd-regulator-resource";
qcom,resource-name = "ldob";
qcom,resource-id = <3>;
qcom,regulator-type = <0>;
status = "disabled";
regulator-l3 {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660l_l3";
qcom,set = <3>;
status = "disabled";
};
};
rpm-regulator-ldob4 {
compatible = "qcom,rpm-smd-regulator-resource";
qcom,resource-name = "ldob";
qcom,resource-id = <4>;
qcom,regulator-type = <0>;
status = "disabled";
regulator-l4 {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660l_l4";
qcom,set = <3>;
status = "disabled";
};
};
rpm-regulator-ldob5 {
compatible = "qcom,rpm-smd-regulator-resource";
qcom,resource-name = "ldob";
qcom,resource-id = <5>;
qcom,regulator-type = <0>;
status = "disabled";
regulator-l5 {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660l_l5";
qcom,set = <3>;
status = "disabled";
};
};
rpm-regulator-ldob6 {
compatible = "qcom,rpm-smd-regulator-resource";
qcom,resource-name = "ldob";
qcom,resource-id = <6>;
qcom,regulator-type = <0>;
status = "disabled";
regulator-l6 {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660l_l6";
qcom,set = <3>;
status = "disabled";
};
};
rpm-regulator-ldob7 {
compatible = "qcom,rpm-smd-regulator-resource";
qcom,resource-name = "ldob";
qcom,resource-id = <7>;
qcom,regulator-type = <0>;
status = "disabled";
regulator-l7 {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660l_l7";
qcom,set = <3>;
status = "disabled";
};
};
rpm-regulator-ldob8 {
compatible = "qcom,rpm-smd-regulator-resource";
qcom,resource-name = "ldob";
qcom,resource-id = <8>;
qcom,regulator-type = <0>;
status = "disabled";
regulator-l8 {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660l_l8";
qcom,set = <3>;
status = "disabled";
};
};
rpm-regulator-ldob9 {
compatible = "qcom,rpm-smd-regulator-resource";
qcom,resource-name = "rwlc";
qcom,resource-id = <0>;
qcom,regulator-type = <0>;
status = "disabled";
regulator-l9 {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660l_l9";
qcom,set = <3>;
status = "disabled";
};
};
rpm-regulator-ldob10 {
compatible = "qcom,rpm-smd-regulator-resource";
qcom,resource-name = "rwlm";
qcom,resource-id = <0>;
qcom,regulator-type = <0>;
status = "disabled";
regulator-l10 {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660l_l10";
qcom,set = <3>;
status = "disabled";
};
};
rpm-regulator-bobb {
compatible = "qcom,rpm-smd-regulator-resource";
qcom,resource-name = "bobb";
qcom,resource-id = <1>;
qcom,regulator-type = <4>;
status = "disabled";
regulator-bob {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660l_bob";
qcom,set = <3>;
status = "disabled";
};
};
};

View File

@ -0,0 +1,469 @@
/* Copyright (c) 2016-2017, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/spmi/spmi.h>
#include <dt-bindings/msm/power-on.h>
&spmi_bus {
qcom,pm660l@2 {
compatible = "qcom,spmi-pmic";
reg = <0x2 SPMI_USID>;
#address-cells = <2>;
#size-cells = <0>;
pm660l_revid: qcom,revid@100 {
compatible = "qcom,qpnp-revid";
reg = <0x100 0x100>;
};
pm660l_pbs: qcom,pbs@7300 {
compatible = "qcom,qpnp-pbs";
reg = <0x7300 0x100>;
};
qcom,power-on@800 {
compatible = "qcom,qpnp-power-on";
reg = <0x800 0x100>;
qcom,secondary-pon-reset;
qcom,hard-reset-poweroff-type =
<PON_POWER_OFF_SHUTDOWN>;
};
qcom,temp-alarm@2400 {
compatible = "qcom,qpnp-temp-alarm";
reg = <0x2400 0x100>;
interrupts = <0x2 0x24 0x0 IRQ_TYPE_EDGE_RISING>;
label = "pm660l_tz";
};
pm660l_gpios: gpios {
compatible = "qcom,qpnp-pin";
gpio-controller;
#gpio-cells = <2>;
#address-cells = <1>;
#size-cells = <1>;
label = "pm660l-gpio";
gpio@c000 {
reg = <0xc000 0x100>;
qcom,pin-num = <1>;
status = "disabled";
};
gpio@c100 {
reg = <0xc100 0x100>;
qcom,pin-num = <2>;
status = "disabled";
};
gpio@c200 {
reg = <0xc200 0x100>;
qcom,pin-num = <3>;
status = "disabled";
};
gpio@c300 {
reg = <0xc300 0x100>;
qcom,pin-num = <4>;
status = "disabled";
};
gpio@c400 {
reg = <0xc400 0x100>;
qcom,pin-num = <5>;
status = "disabled";
};
gpio@c500 {
reg = <0xc500 0x100>;
qcom,pin-num = <6>;
status = "disabled";
};
gpio@c600 {
reg = <0xc600 0x100>;
qcom,pin-num = <7>;
status = "disabled";
};
gpio@c700 {
reg = <0xc700 0x100>;
qcom,pin-num = <8>;
status = "disabled";
};
gpio@c800 {
reg = <0xc800 0x100>;
qcom,pin-num = <9>;
status = "disabled";
};
gpio@c900 {
reg = <0xc900 0x100>;
qcom,pin-num = <10>;
status = "disabled";
};
gpio@ca00 {
reg = <0xca00 0x100>;
qcom,pin-num = <11>;
status = "disabled";
};
gpio@cb00 {
reg = <0xcb00 0x100>;
qcom,pin-num = <12>;
status = "disabled";
};
};
};
pm660l_3: qcom,pm660l@3 {
compatible ="qcom,spmi-pmic";
reg = <0x3 SPMI_USID>;
#address-cells = <2>;
#size-cells = <0>;
pm660l_pwm_1: pwm@b100 {
compatible = "qcom,qpnp-pwm";
reg = <0xb100 0x100>,
<0xb042 0x7e>;
reg-names = "qpnp-lpg-channel-base",
"qpnp-lpg-lut-base";
qcom,channel-id = <1>;
qcom,lpg-lut-size = <0x7e>;
qcom,supported-sizes = <6>, <9>;
qcom,ramp-index = <0>;
#pwm-cells = <2>;
};
pm660l_pwm_2: pwm@b200 {
compatible = "qcom,qpnp-pwm";
reg = <0xb200 0x100>,
<0xb042 0x7e>;
reg-names = "qpnp-lpg-channel-base",
"qpnp-lpg-lut-base";
qcom,channel-id = <2>;
qcom,lpg-lut-size = <0x7e>;
qcom,supported-sizes = <6>, <9>;
qcom,ramp-index = <1>;
#pwm-cells = <2>;
};
pm660l_pwm_3: pwm@b300 {
compatible = "qcom,qpnp-pwm";
reg = <0xb300 0x100>,
<0xb042 0x7e>;
reg-names = "qpnp-lpg-channel-base",
"qpnp-lpg-lut-base";
qcom,channel-id = <3>;
qcom,lpg-lut-size = <0x7e>;
qcom,supported-sizes = <6>, <9>;
qcom,ramp-index = <2>;
#pwm-cells = <2>;
qcom,period = <6000000>;
qcom,lpg {
label = "lpg";
cell-index = <0>;
qcom,duty-percents =
<0x01 0x0a 0x14 0x1e 0x28 0x32 0x3c
0x46 0x50 0x5a 0x64
0x64 0x5a 0x50 0x46 0x3c 0x32 0x28 0x1e
0x14 0x0a 0x01>;
};
};
pm660l_pwm_4: pwm@b400 {
compatible = "qcom,qpnp-pwm";
reg = <0xb400 0x100>,
<0xb042 0x7e>;
reg-names = "qpnp-lpg-channel-base",
"qpnp-lpg-lut-base";
qcom,channel-id = <4>;
qcom,lpg-lut-size = <0x7e>;
qcom,supported-sizes = <6>, <9>;
qcom,ramp-index = <3>;
#pwm-cells = <2>;
status = "disabled";
};
qcom,leds@d000 {
compatible = "qcom,leds-qpnp";
reg = <0xd000 0x100>;
label = "rgb";
red_led: qcom,rgb_0 {
label = "rgb";
qcom,id = <3>;
qcom,mode = "pwm";
pwms = <&pm660l_pwm_3 0 0>;
qcom,pwm-us = <1000>;
qcom,max-current = <12>;
qcom,default-state = "off";
linux,name = "red";
qcom,start-idx = <0>;
qcom,idx-len = <22>;
qcom,duty-pcts =
[01 0a 14 1e 28 32 3c 46 50 5a 64
64 5a 50 46 3c 32 28 1e 14 0a 01];
qcom,use-blink;
};
green_led: qcom,rgb_1 {
label = "rgb";
qcom,id = <4>;
qcom,mode = "pwm";
pwms = <&pm660l_pwm_2 0 0>;
qcom,pwm-us = <1000>;
qcom,max-current = <12>;
qcom,default-state = "off";
linux,name = "green";
};
blue_led: qcom,rgb_2 {
label = "rgb";
qcom,id = <5>;
qcom,mode = "pwm";
pwms = <&pm660l_pwm_1 0 0>;
qcom,pwm-us = <1000>;
qcom,max-current = <12>;
qcom,default-state = "off";
linux,name = "blue";
};
};
pm660l_wled: qcom,leds@d800 {
compatible = "qcom,qpnp-wled";
reg = <0xd800 0x100>,
<0xd900 0x100>;
reg-names = "qpnp-wled-ctrl-base",
"qpnp-wled-sink-base";
interrupts = <0x3 0xd8 0x1 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "ovp-irq";
linux,name = "wled";
linux,default-trigger = "bkl-trigger";
qcom,fdbk-output = "auto";
qcom,vref-uv = <127500>;
qcom,switch-freq-khz = <800>;
qcom,ovp-mv = <29600>;
qcom,ilim-ma = <970>;
qcom,boost-duty-ns = <26>;
qcom,mod-freq-khz = <9600>;
qcom,dim-mode = "hybrid";
qcom,hyb-thres = <625>;
qcom,sync-dly-us = <800>;
qcom,fs-curr-ua = <25000>;
qcom,cons-sync-write-delay-us = <1000>;
qcom,led-strings-list = [00 01 02];
qcom,loop-auto-gm-en;
qcom,pmic-revid = <&pm660l_revid>;
qcom,auto-calibration-enable;
status = "ok";
};
flash_led: qcom,leds@d300 {
compatible = "qcom,qpnp-flash-led-v2";
reg = <0xd300 0x100>;
label = "flash";
interrupts = <0x3 0xd3 0x0 IRQ_TYPE_EDGE_RISING>,
<0x3 0xd3 0x3 IRQ_TYPE_EDGE_RISING>,
<0x3 0xd3 0x4 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "led-fault-irq",
"all-ramp-down-done-irq",
"all-ramp-up-done-irq";
qcom,hdrm-auto-mode;
qcom,short-circuit-det;
qcom,open-circuit-det;
qcom,vph-droop-det;
qcom,thermal-derate-en;
qcom,thermal-derate-current = <200 500 1000>;
qcom,isc-delay = <192>;
qcom,pmic-revid = <&pm660l_revid>;
pm660l_flash0: qcom,flash_0 {
label = "flash";
qcom,led-name = "led:flash_0";
qcom,max-current = <1500>;
qcom,default-led-trigger = "flash0_trigger";
qcom,id = <0>;
qcom,current-ma = <1000>;
qcom,duration-ms = <1280>;
qcom,ires-ua = <12500>;
qcom,hdrm-voltage-mv = <325>;
qcom,hdrm-vol-hi-lo-win-mv = <100>;
};
pm660l_flash1: qcom,flash_1 {
label = "flash";
qcom,led-name = "led:flash_1";
qcom,max-current = <1500>;
qcom,default-led-trigger = "flash1_trigger";
qcom,id = <1>;
qcom,current-ma = <1000>;
qcom,duration-ms = <1280>;
qcom,ires-ua = <12500>;
qcom,hdrm-voltage-mv = <325>;
qcom,hdrm-vol-hi-lo-win-mv = <100>;
};
pm660l_flash2: qcom,flash_2 {
label = "flash";
qcom,led-name = "led:flash_2";
qcom,max-current = <750>;
qcom,default-led-trigger = "flash2_trigger";
qcom,id = <2>;
qcom,current-ma = <500>;
qcom,duration-ms = <1280>;
qcom,ires-ua = <12500>;
qcom,hdrm-voltage-mv = <325>;
qcom,hdrm-vol-hi-lo-win-mv = <100>;
};
pm660l_torch0: qcom,torch_0 {
label = "torch";
qcom,led-name = "led:torch_0";
qcom,max-current = <500>;
qcom,default-led-trigger = "torch0_trigger";
qcom,id = <0>;
qcom,current-ma = <300>;
qcom,ires-ua = <12500>;
qcom,hdrm-voltage-mv = <325>;
qcom,hdrm-vol-hi-lo-win-mv = <100>;
};
pm660l_torch1: qcom,torch_1 {
label = "torch";
qcom,led-name = "led:torch_1";
qcom,max-current = <500>;
qcom,default-led-trigger = "torch1_trigger";
qcom,id = <1>;
qcom,current-ma = <300>;
qcom,ires-ua = <12500>;
qcom,hdrm-voltage-mv = <325>;
qcom,hdrm-vol-hi-lo-win-mv = <100>;
};
pm660l_torch2: qcom,torch_2 {
label = "torch";
qcom,led-name = "led:torch_2";
qcom,max-current = <500>;
qcom,default-led-trigger = "torch2_trigger";
qcom,id = <2>;
qcom,current-ma = <300>;
qcom,ires-ua = <12500>;
qcom,hdrm-voltage-mv = <325>;
qcom,hdrm-vol-hi-lo-win-mv = <100>;
};
pm660l_switch0: qcom,led_switch_0 {
label = "switch";
qcom,led-name = "led:switch_0";
qcom,led-mask = <3>;
qcom,default-led-trigger = "switch0_trigger";
};
pm660l_switch1: qcom,led_switch_1 {
label = "switch";
qcom,led-name = "led:switch_1";
qcom,led-mask = <4>;
qcom,default-led-trigger = "switch1_trigger";
};
};
pm660l_lcdb: qpnp-lcdb@ec00 {
compatible = "qcom,qpnp-lcdb-regulator";
#address-cells = <1>;
#size-cells = <1>;
reg = <0xec00 0x100>;
interrupts = <0x3 0xec 0x1 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "sc-irq";
qcom,pmic-revid = <&pm660l_revid>;
lcdb_ldo_vreg: ldo {
label = "ldo";
regulator-name = "lcdb_ldo";
regulator-min-microvolt = <4000000>;
regulator-max-microvolt = <6000000>;
};
lcdb_ncp_vreg: ncp {
label = "ncp";
regulator-name = "lcdb_ncp";
regulator-min-microvolt = <4000000>;
regulator-max-microvolt = <6000000>;
};
};
pm660a_oledb: qpnp-oledb@e000 {
compatible = "qcom,qpnp-oledb-regulator";
#address-cells = <1>;
#size-cells = <1>;
qcom,pmic-revid = <&pm660l_revid>;
reg = <0xe000 0x100>;
qcom,pbs-client = <&pm660l_pbs>;
label = "oledb";
regulator-name = "regulator-oledb";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <8100000>;
qcom,swire-control;
qcom,ext-pin-control;
status = "disabled";
};
pm660a_labibb: qpnp-labibb-regulator {
compatible = "qcom,qpnp-labibb-regulator";
#address-cells = <1>;
#size-cells = <1>;
qcom,pmic-revid = <&pm660l_revid>;
qcom,swire-control;
status = "disabled";
ibb_regulator: qcom,ibb@dc00 {
reg = <0xdc00 0x100>;
reg-names = "ibb_reg";
regulator-name = "ibb_reg";
regulator-min-microvolt = <4000000>;
regulator-max-microvolt = <6300000>;
qcom,qpnp-ibb-min-voltage = <1400000>;
qcom,qpnp-ibb-step-size = <100000>;
qcom,qpnp-ibb-slew-rate = <2000000>;
qcom,qpnp-ibb-init-voltage = <4000000>;
qcom,qpnp-ibb-init-amoled-voltage = <4000000>;
};
lab_regulator: qcom,lab@de00 {
reg = <0xde00 0x100>;
reg-names = "lab";
regulator-name = "lab_reg";
regulator-min-microvolt = <4600000>;
regulator-max-microvolt = <6100000>;
qcom,qpnp-lab-min-voltage = <4600000>;
qcom,qpnp-lab-step-size = <100000>;
qcom,qpnp-lab-slew-rate = <5000>;
qcom,qpnp-lab-init-voltage = <4600000>;
qcom,qpnp-lab-init-amoled-voltage = <4600000>;
qcom,notify-lab-vreg-ok-sts;
};
};
};
};

View File

@ -0,0 +1,280 @@
/*
* Copyright (c) 2015-2017, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include "sdm660-wsa881x.dtsi"
#include "sdm660-lpi.dtsi"
&slim_aud {
status = "okay";
dai_slim: msm_dai_slim {
compatible = "qcom,msm-dai-slim";
elemental-addr = [ff ff ff fe 17 02];
};
wcd9335: tasha_codec {
compatible = "qcom,tasha-slim-pgd";
elemental-addr = [00 01 a0 01 17 02];
interrupt-parent = <&wcd9xxx_intc>;
interrupts = <0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
17 18 19 20 21 22 23 24 25 26 27 28 29
30>;
qcom,wcd-rst-gpio-node = <&wcd_rst_gpio>;
clock-names = "wcd_clk", "wcd_native_clk";
clocks = <&clock_audio AUDIO_PMI_CLK>,
<&clock_audio AUDIO_LPASS_MCLK_2>;
cdc-vdd-mic-bias-supply = <&pm660l_bob>;
qcom,cdc-vdd-mic-bias-voltage = <3300000 3300000>;
qcom,cdc-vdd-mic-bias-current = <30400>;
qcom,cdc-static-supplies = "cdc-vdd-mic-bias";
qcom,cdc-micbias1-mv = <1800>;
qcom,cdc-micbias2-mv = <1800>;
qcom,cdc-micbias3-mv = <1800>;
qcom,cdc-micbias4-mv = <1800>;
qcom,cdc-mclk-clk-rate = <9600000>;
qcom,cdc-slim-ifd = "tasha-slim-ifd";
qcom,cdc-slim-ifd-elemental-addr = [00 00 a0 01 17 02];
qcom,cdc-dmic-sample-rate = <4800000>;
qcom,cdc-mad-dmic-rate = <600000>;
};
wcd934x_cdc: tavil_codec {
compatible = "qcom,tavil-slim-pgd";
elemental-addr = [00 01 50 02 17 02];
interrupt-parent = <&wcd9xxx_intc>;
interrupts = <0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
17 18 19 20 21 22 23 24 25 26 27 28 29
30 31>;
qcom,wcd-rst-gpio-node = <&wcd_rst_gpio>;
clock-names = "wcd_clk";
clocks = <&clock_audio_lnbb AUDIO_PMIC_LNBB_CLK>;
cdc-vdd-mic-bias-supply = <&pm660l_bob>;
qcom,cdc-vdd-mic-bias-voltage = <3300000 3300000>;
qcom,cdc-vdd-mic-bias-current = <30400>;
qcom,cdc-static-supplies = "cdc-vdd-mic-bias";
qcom,cdc-micbias1-mv = <1800>;
qcom,cdc-micbias2-mv = <1800>;
qcom,cdc-micbias3-mv = <1800>;
qcom,cdc-micbias4-mv = <1800>;
qcom,cdc-mclk-clk-rate = <9600000>;
qcom,cdc-slim-ifd = "tavil-slim-ifd";
qcom,cdc-slim-ifd-elemental-addr = [00 00 50 02 17 02];
qcom,cdc-dmic-sample-rate = <4800000>;
qcom,cdc-mad-dmic-rate = <600000>;
qcom,wdsp-cmpnt-dev-name = "tavil_codec";
wcd_spi_0: wcd_spi {
compatible = "qcom,wcd-spi-v2";
qcom,master-bus-num = <7>;
qcom,chip-select = <0>;
qcom,max-frequency = <24000000>;
qcom,mem-base-addr = <0x100000>;
};
wcd_usbc_analog_en1_gpio: msm_cdc_pinctrl_usbc_audio_en1 {
compatible = "qcom,msm-cdc-pinctrl";
pinctrl-names = "aud_active", "aud_sleep";
pinctrl-0 = <&wcd_usbc_analog_en1_active>;
pinctrl-1 = <&wcd_usbc_analog_en1_idle>;
};
wcd_usbc_analog_en2n_gpio: msm_cdc_pinctrl_usbc_audio_en2 {
compatible = "qcom,msm-cdc-pinctrl";
pinctrl-names = "aud_active", "aud_sleep";
pinctrl-0 = <&wcd_usbc_analog_en2n_active>;
pinctrl-1 = <&wcd_usbc_analog_en2n_idle>;
};
};
};
&pm660l_3 {
pmic_analog_codec: analog-codec@f000 {
status = "disabled";
compatible = "qcom,pmic-analog-codec";
reg = <0xf000 0x200>;
#address-cells = <2>;
#size-cells = <0>;
interrupt-parent = <&spmi_bus>;
interrupts = <0x3 0xf0 0x0 IRQ_TYPE_NONE>,
<0x3 0xf0 0x1 IRQ_TYPE_NONE>,
<0x3 0xf0 0x2 IRQ_TYPE_NONE>,
<0x3 0xf0 0x3 IRQ_TYPE_NONE>,
<0x3 0xf0 0x4 IRQ_TYPE_NONE>,
<0x3 0xf0 0x5 IRQ_TYPE_NONE>,
<0x3 0xf0 0x6 IRQ_TYPE_NONE>,
<0x3 0xf0 0x7 IRQ_TYPE_NONE>,
<0x3 0xf1 0x0 IRQ_TYPE_NONE>,
<0x3 0xf1 0x1 IRQ_TYPE_NONE>,
<0x3 0xf1 0x2 IRQ_TYPE_NONE>,
<0x3 0xf1 0x3 IRQ_TYPE_NONE>,
<0x3 0xf1 0x4 IRQ_TYPE_NONE>,
<0x3 0xf1 0x5 IRQ_TYPE_NONE>;
interrupt-names = "spk_cnp_int",
"spk_clip_int",
"spk_ocp_int",
"ins_rem_det1",
"but_rel_det",
"but_press_det",
"ins_rem_det",
"mbhc_int",
"ear_ocp_int",
"hphr_ocp_int",
"hphl_ocp_det",
"ear_cnp_int",
"hphr_cnp_int",
"hphl_cnp_int";
cdc-vdda-cp-supply = <&pm660_s4>;
qcom,cdc-vdda-cp-voltage = <1900000 2050000>;
qcom,cdc-vdda-cp-current = <50000>;
cdc-vdd-pa-supply = <&pm660_s4>;
qcom,cdc-vdd-pa-voltage = <2040000 2040000>;
qcom,cdc-vdd-pa-current = <260000>;
cdc-vdd-mic-bias-supply = <&pm660l_l7>;
qcom,cdc-vdd-mic-bias-voltage = <3088000 3088000>;
qcom,cdc-vdd-mic-bias-current = <5000>;
qcom,cdc-mclk-clk-rate = <9600000>;
qcom,cdc-static-supplies = "cdc-vdda-cp",
"cdc-vdd-pa";
qcom,cdc-on-demand-supplies = "cdc-vdd-mic-bias";
/*
* Not marking address @ as driver searches this child
* with name msm-dig-codec
*/
msm_digital_codec: msm-dig-codec {
compatible = "qcom,msm-digital-codec";
reg = <0x152c0000 0x0>;
};
};
};
&soc {
cdc_pdm_gpios: cdc_pdm_pinctrl {
compatible = "qcom,msm-cdc-pinctrl";
pinctrl-names = "aud_active", "aud_sleep";
pinctrl-0 = <&cdc_pdm_gpios_active &cdc_pdm_2_gpios_active>;
pinctrl-1 = <&cdc_pdm_gpios_sleep &cdc_pdm_2_gpios_sleep>;
qcom,lpi-gpios;
};
cdc_comp_gpios: cdc_comp_pinctrl {
compatible = "qcom,msm-cdc-pinctrl";
pinctrl-names = "aud_active", "aud_sleep";
pinctrl-0 = <&cdc_comp_gpios_active>;
pinctrl-1 = <&cdc_comp_gpios_sleep>;
qcom,lpi-gpios;
};
cdc_dmic_gpios: cdc_dmic_pinctrl {
compatible = "qcom,msm-cdc-pinctrl";
pinctrl-names = "aud_active", "aud_sleep";
pinctrl-0 = <&cdc_dmic12_gpios_active
&cdc_dmic34_gpios_active>;
pinctrl-1 = <&cdc_dmic12_gpios_sleep
&cdc_dmic34_gpios_sleep>;
qcom,lpi-gpios;
};
cdc_sdw_gpios: sdw_clk_data_pinctrl {
compatible = "qcom,msm-cdc-pinctrl";
pinctrl-names = "aud_active", "aud_sleep";
pinctrl-0 = <&sdw_clk_active &sdw_data_active>;
pinctrl-1 = <&sdw_clk_sleep &sdw_data_sleep>;
};
wsa_spkr_en1: wsa_spkr_en1_pinctrl {
compatible = "qcom,msm-cdc-pinctrl";
pinctrl-names = "aud_active", "aud_sleep";
pinctrl-0 = <&spkr_1_sd_n_active>;
pinctrl-1 = <&spkr_1_sd_n_sleep>;
};
wsa_spkr_en2: wsa_spkr_en2_pinctrl {
compatible = "qcom,msm-cdc-pinctrl";
pinctrl-names = "aud_active", "aud_sleep";
pinctrl-0 = <&spkr_2_sd_n_active>;
pinctrl-1 = <&spkr_2_sd_n_sleep>;
};
msm_sdw_codec: msm-sdw-codec@152c1000 {
status = "disabled";
compatible = "qcom,msm-sdw-codec";
reg = <0x152c1000 0x0>;
interrupts = <0 161 0>;
interrupt-names = "swr_master_irq";
qcom,cdc-sdw-gpios = <&cdc_sdw_gpios>;
swr_master {
compatible = "qcom,swr-wcd";
#address-cells = <2>;
#size-cells = <0>;
wsa881x_211_en: wsa881x_en@20170211 {
compatible = "qcom,wsa881x";
reg = <0x0 0x20170211>;
qcom,spkr-sd-n-node = <&wsa_spkr_en1>;
};
wsa881x_212_en: wsa881x_en@20170212 {
compatible = "qcom,wsa881x";
reg = <0x0 0x20170212>;
qcom,spkr-sd-n-node = <&wsa_spkr_en2>;
};
wsa881x_213_en: wsa881x_en@21170213 {
compatible = "qcom,wsa881x";
reg = <0x0 0x21170213>;
qcom,spkr-sd-n-node = <&wsa_spkr_en1>;
};
wsa881x_214_en: wsa881x_en@21170214 {
compatible = "qcom,wsa881x";
reg = <0x0 0x21170214>;
qcom,spkr-sd-n-node = <&wsa_spkr_en2>;
};
};
};
};
&pm660_gpios {
gpio@c200 {
status = "ok";
qcom,mode = <1>;
qcom,pull = <4>;
qcom,vin-sel = <0>;
qcom,src-sel = <2>;
qcom,master-en = <1>;
qcom,out-strength = <2>;
};
};

View File

@ -0,0 +1,594 @@
/*
* Copyright (c) 2016-2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include "sdm660-pinctrl.dtsi"
/ {
aliases {
spi1 = &spi_1;
spi2 = &spi_2;
spi3 = &spi_3;
spi4 = &spi_4;
spi5 = &spi_5;
spi6 = &spi_6;
spi7 = &spi_7;
spi8 = &spi_8;
i2c1 = &i2c_1;
i2c2 = &i2c_2;
i2c3 = &i2c_3;
i2c4 = &i2c_4;
i2c5 = &i2c_5;
i2c6 = &i2c_6;
i2c7 = &i2c_7;
i2c8 = &i2c_8;
};
};
&soc {
i2c_1: i2c@c175000 { /* BLSP1 QUP1 */
compatible = "qcom,i2c-msm-v2";
#address-cells = <1>;
#size-cells = <0>;
reg = <0xc175000 0x600>;
reg-names = "qup_phys_addr";
interrupt-names = "qup_irq";
interrupts = <0 95 0>;
dmas = <&dma_blsp1 4 64 0x20000020 0x20>,
<&dma_blsp1 5 32 0x20000020 0x20>;
dma-names = "tx", "rx";
qcom,master-id = <86>;
qcom,clk-freq-out = <400000>;
qcom,clk-freq-in = <19200000>;
clock-names = "iface_clk", "core_clk";
clocks = <&clock_gcc GCC_BLSP1_AHB_CLK>,
<&clock_gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>;
qcom,i2c-dat = <&tlmm 2 0x00>;
qcom,i2c-clk = <&tlmm 3 0x00>;
pinctrl-names = "i2c_active", "i2c_sleep", "i2c_bitbang";
pinctrl-0 = <&i2c_1_active>;
pinctrl-1 = <&i2c_1_sleep>;
pinctrl-2 = <&i2c_1_bitbang>;
status = "disabled";
};
i2c_2: i2c@c176000 { /* BLSP1 QUP2 */
compatible = "qcom,i2c-msm-v2";
#address-cells = <1>;
#size-cells = <0>;
reg = <0xc176000 0x600>;
reg-names = "qup_phys_addr";
interrupt-names = "qup_irq";
interrupts = <0 96 0>;
dmas = <&dma_blsp1 6 64 0x20000020 0x20>,
<&dma_blsp1 7 32 0x20000020 0x20>;
dma-names = "tx", "rx";
qcom,master-id = <86>;
qcom,clk-freq-out = <400000>;
qcom,clk-freq-in = <19200000>;
clock-names = "iface_clk", "core_clk";
clocks = <&clock_gcc GCC_BLSP1_AHB_CLK>,
<&clock_gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>;
qcom,i2c-dat = <&tlmm 6 0x00>;
qcom,i2c-clk = <&tlmm 7 0x00>;
pinctrl-names = "i2c_active", "i2c_sleep", "i2c_bitbang";
pinctrl-0 = <&i2c_2_active>;
pinctrl-1 = <&i2c_2_sleep>;
pinctrl-2 = <&i2c_2_bitbang>;
status = "disabled";
};
i2c_3: i2c@c177000 { /* BLSP1 QUP3 */
compatible = "qcom,i2c-msm-v2";
#address-cells = <1>;
#size-cells = <0>;
reg = <0xc177000 0x600>;
reg-names = "qup_phys_addr";
interrupt-names = "qup_irq";
interrupts = <0 97 0>;
dmas = <&dma_blsp1 8 64 0x20000020 0x20>,
<&dma_blsp1 9 32 0x20000020 0x20>;
dma-names = "tx", "rx";
qcom,master-id = <86>;
qcom,clk-freq-out = <400000>;
qcom,clk-freq-in = <19200000>;
clock-names = "iface_clk", "core_clk";
clocks = <&clock_gcc GCC_BLSP1_AHB_CLK>,
<&clock_gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>;
qcom,i2c-dat = <&tlmm 10 0x00>;
qcom,i2c-clk = <&tlmm 11 0x00>;
pinctrl-names = "i2c_active", "i2c_sleep", "i2c_bitbang";
pinctrl-0 = <&i2c_3_active>;
pinctrl-1 = <&i2c_3_sleep>;
pinctrl-2 = <&i2c_3_bitbang>;
status = "disabled";
};
i2c_4: i2c@c178000 { /* BLSP1 QUP4 */
compatible = "qcom,i2c-msm-v2";
#address-cells = <1>;
#size-cells = <0>;
reg = <0xc178000 0x600>;
reg-names = "qup_phys_addr";
interrupt-names = "qup_irq";
interrupts = <0 98 0>;
dmas = <&dma_blsp1 10 64 0x20000020 0x20>,
<&dma_blsp1 11 32 0x20000020 0x20>;
dma-names = "tx", "rx";
qcom,master-id = <86>;
qcom,clk-freq-out = <400000>;
qcom,clk-freq-in = <19200000>;
clock-names = "iface_clk", "core_clk";
clocks = <&clock_gcc GCC_BLSP1_AHB_CLK>,
<&clock_gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>;
qcom,i2c-dat = <&tlmm 14 0x00>;
qcom,i2c-clk = <&tlmm 15 0x00>;
pinctrl-names = "i2c_active", "i2c_sleep", "i2c_bitbang";
pinctrl-0 = <&i2c_4_active>;
pinctrl-1 = <&i2c_4_sleep>;
pinctrl-2 = <&i2c_4_bitbang>;
status = "disabled";
};
i2c_5: i2c@c1b5000 { /* BLSP2 QUP1 */
compatible = "qcom,i2c-msm-v2";
#address-cells = <1>;
#size-cells = <0>;
reg = <0xc1b5000 0x600>;
reg-names = "qup_phys_addr";
interrupt-names = "qup_irq";
interrupts = <0 101 0>;
dmas = <&dma_blsp2 4 64 0x20000020 0x20>,
<&dma_blsp2 5 32 0x20000020 0x20>;
dma-names = "tx", "rx";
qcom,master-id = <84>;
qcom,clk-freq-out = <400000>;
qcom,clk-freq-in = <19200000>;
clock-names = "iface_clk", "core_clk";
clocks = <&clock_gcc GCC_BLSP2_AHB_CLK>,
<&clock_gcc GCC_BLSP2_QUP1_I2C_APPS_CLK>;
qcom,i2c-dat = <&tlmm 18 0x00>;
qcom,i2c-clk = <&tlmm 19 0x00>;
pinctrl-names = "i2c_active", "i2c_sleep", "i2c_bitbang";
pinctrl-0 = <&i2c_5_active>;
pinctrl-1 = <&i2c_5_sleep>;
pinctrl-2 = <&i2c_5_bitbang>;
status = "disabled";
};
i2c_6: i2c@c1b6000 { /* BLSP2 QUP2 */
compatible = "qcom,i2c-msm-v2";
#address-cells = <1>;
#size-cells = <0>;
reg = <0xc1b6000 0x600>;
reg-names = "qup_phys_addr";
interrupt-names = "qup_irq";
interrupts = <0 102 0>;
dmas = <&dma_blsp2 6 64 0x20000020 0x20>,
<&dma_blsp2 7 32 0x20000020 0x20>;
dma-names = "tx", "rx";
qcom,master-id = <84>;
qcom,clk-freq-out = <400000>;
qcom,clk-freq-in = <19200000>;
clock-names = "iface_clk", "core_clk";
clocks = <&clock_gcc GCC_BLSP2_AHB_CLK>,
<&clock_gcc GCC_BLSP2_QUP2_I2C_APPS_CLK>;
qcom,i2c-dat = <&tlmm 22 0x00>;
qcom,i2c-clk = <&tlmm 23 0x00>;
pinctrl-names = "i2c_active", "i2c_sleep", "i2c_bitbang";
pinctrl-0 = <&i2c_6_active>;
pinctrl-1 = <&i2c_6_sleep>;
pinctrl-2 = <&i2c_6_bitbang>;
status = "disabled";
};
i2c_7: i2c@c1b7000 { /* BLSP2 QUP3 */
compatible = "qcom,i2c-msm-v2";
#address-cells = <1>;
#size-cells = <0>;
reg = <0xc1b7000 0x600>;
reg-names = "qup_phys_addr";
interrupt-names = "qup_irq";
interrupts = <0 103 0>;
dmas = <&dma_blsp2 8 64 0x20000020 0x20>,
<&dma_blsp2 9 32 0x20000020 0x20>;
dma-names = "tx", "rx";
qcom,master-id = <84>;
qcom,clk-freq-out = <400000>;
qcom,clk-freq-in = <19200000>;
clock-names = "iface_clk", "core_clk";
clocks = <&clock_gcc GCC_BLSP2_AHB_CLK>,
<&clock_gcc GCC_BLSP2_QUP3_I2C_APPS_CLK>;
qcom,i2c-dat = <&tlmm 26 0x00>;
qcom,i2c-clk = <&tlmm 27 0x00>;
pinctrl-names = "i2c_active", "i2c_sleep", "i2c_bitbang";
pinctrl-0 = <&i2c_7_active>;
pinctrl-1 = <&i2c_7_sleep>;
pinctrl-2 = <&i2c_7_bitbang>;
status = "disabled";
};
i2c_8: i2c@c1b8000 { /* BLSP2 QUP4 */
compatible = "qcom,i2c-msm-v2";
#address-cells = <1>;
#size-cells = <0>;
reg = <0xc1b8000 0x600>;
reg-names = "qup_phys_addr";
interrupt-names = "qup_irq";
interrupts = <0 104 0>;
dmas = <&dma_blsp2 10 64 0x20000020 0x20>,
<&dma_blsp2 11 32 0x20000020 0x20>;
dma-names = "tx", "rx";
qcom,master-id = <84>;
qcom,clk-freq-out = <400000>;
qcom,clk-freq-in = <19200000>;
clock-names = "iface_clk", "core_clk";
clocks = <&clock_gcc GCC_BLSP2_AHB_CLK>,
<&clock_gcc GCC_BLSP2_QUP4_I2C_APPS_CLK>;
qcom,i2c-dat = <&tlmm 30 0x00>;
qcom,i2c-clk = <&tlmm 31 0x00>;
pinctrl-names = "i2c_active", "i2c_sleep", "i2c_bitbang";
pinctrl-0 = <&i2c_8_active>;
pinctrl-1 = <&i2c_8_sleep>;
pinctrl-2 = <&i2c_8_bitbang>;
status = "disabled";
};
spi_1: spi@c175000 { /* BLSP1 QUP1 */
compatible = "qcom,spi-qup-v2";
#address-cells = <1>;
#size-cells = <0>;
reg-names = "spi_physical", "spi_bam_physical";
reg = <0xc175000 0x600>,
<0xc144000 0x1f000>;
interrupt-names = "spi_irq", "spi_bam_irq";
interrupts = <0 95 0>, <0 238 0>;
spi-max-frequency = <50000000>;
qcom,use-bam;
qcom,ver-reg-exists;
qcom,bam-consumer-pipe-index = <4>;
qcom,bam-producer-pipe-index = <5>;
qcom,master-id = <86>;
qcom,use-pinctrl;
pinctrl-names = "spi_default", "spi_sleep";
pinctrl-0 = <&spi_1_active>;
pinctrl-1 = <&spi_1_sleep>;
clock-names = "iface_clk", "core_clk";
clocks = <&clock_gcc GCC_BLSP1_AHB_CLK>,
<&clock_gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>;
status = "disabled";
};
spi_2: spi@c176000 { /* BLSP1 QUP2 */
compatible = "qcom,spi-qup-v2";
#address-cells = <1>;
#size-cells = <0>;
reg-names = "spi_physical", "spi_bam_physical";
reg = <0xc176000 0x600>,
<0xc144000 0x1f000>;
interrupt-names = "spi_irq", "spi_bam_irq";
interrupts = <0 96 0>, <0 238 0>;
spi-max-frequency = <50000000>;
qcom,use-bam;
qcom,ver-reg-exists;
qcom,bam-consumer-pipe-index = <6>;
qcom,bam-producer-pipe-index = <7>;
qcom,master-id = <86>;
qcom,use-pinctrl;
pinctrl-names = "spi_default", "spi_sleep";
pinctrl-0 = <&spi_2_active>;
pinctrl-1 = <&spi_2_sleep>;
clock-names = "iface_clk", "core_clk";
clocks = <&clock_gcc GCC_BLSP1_AHB_CLK>,
<&clock_gcc GCC_BLSP1_QUP2_SPI_APPS_CLK>;
status = "disabled";
};
spi_3: spi@c177000 { /* BLSP1 QUP3 */
compatible = "qcom,spi-qup-v2";
#address-cells = <1>;
#size-cells = <0>;
reg-names = "spi_physical", "spi_bam_physical";
reg = <0xc177000 0x600>,
<0xc144000 0x1f000>;
interrupt-names = "spi_irq", "spi_bam_irq";
interrupts = <0 97 0>, <0 238 0>;
spi-max-frequency = <50000000>;
qcom,use-bam;
qcom,ver-reg-exists;
qcom,bam-consumer-pipe-index = <8>;
qcom,bam-producer-pipe-index = <9>;
qcom,master-id = <86>;
qcom,use-pinctrl;
pinctrl-names = "spi_default", "spi_sleep";
pinctrl-0 = <&spi_3_active>;
pinctrl-1 = <&spi_3_sleep>;
clock-names = "iface_clk", "core_clk";
clocks = <&clock_gcc GCC_BLSP1_AHB_CLK>,
<&clock_gcc GCC_BLSP1_QUP3_SPI_APPS_CLK>;
status = "disabled";
};
spi_4: spi@c178000 { /* BLSP1 QUP4 */
compatible = "qcom,spi-qup-v2";
#address-cells = <1>;
#size-cells = <0>;
reg-names = "spi_physical", "spi_bam_physical";
reg = <0xc178000 0x600>,
<0xc144000 0x1f000>;
interrupt-names = "spi_irq", "spi_bam_irq";
interrupts = <0 98 0>, <0 238 0>;
spi-max-frequency = <50000000>;
qcom,use-bam;
qcom,ver-reg-exists;
qcom,bam-consumer-pipe-index = <10>;
qcom,bam-producer-pipe-index = <11>;
qcom,master-id = <86>;
qcom,use-pinctrl;
pinctrl-names = "spi_default", "spi_sleep";
pinctrl-0 = <&spi_4_active>;
pinctrl-1 = <&spi_4_sleep>;
clock-names = "iface_clk", "core_clk";
clocks = <&clock_gcc GCC_BLSP1_AHB_CLK>,
<&clock_gcc GCC_BLSP1_QUP4_SPI_APPS_CLK>;
status = "disabled";
};
spi_5: spi@c1b5000 { /* BLSP2 QUP1 */
compatible = "qcom,spi-qup-v2";
#address-cells = <1>;
#size-cells = <0>;
reg-names = "spi_physical", "spi_bam_physical";
reg = <0xc1b5000 0x600>,
<0xc184000 0x1f000>;
interrupt-names = "spi_irq", "spi_bam_irq";
interrupts = <0 101 0>, <0 239 0>;
spi-max-frequency = <50000000>;
qcom,use-bam;
qcom,ver-reg-exists;
qcom,bam-consumer-pipe-index = <4>;
qcom,bam-producer-pipe-index = <5>;
qcom,master-id = <84>;
qcom,use-pinctrl;
pinctrl-names = "spi_default", "spi_sleep";
pinctrl-0 = <&spi_5_active>;
pinctrl-1 = <&spi_5_sleep>;
clock-names = "iface_clk", "core_clk";
clocks = <&clock_gcc GCC_BLSP2_AHB_CLK>,
<&clock_gcc GCC_BLSP2_QUP1_SPI_APPS_CLK>;
status = "disabled";
};
spi_6: spi@c1b6000 { /* BLSP2 QUP2 */
compatible = "qcom,spi-qup-v2";
#address-cells = <1>;
#size-cells = <0>;
reg-names = "spi_physical", "spi_bam_physical";
reg = <0xc1b6000 0x600>,
<0xc184000 0x1f000>;
interrupt-names = "spi_irq", "spi_bam_irq";
interrupts = <0 102 0>, <0 239 0>;
spi-max-frequency = <50000000>;
qcom,use-bam;
qcom,ver-reg-exists;
qcom,bam-consumer-pipe-index = <6>;
qcom,bam-producer-pipe-index = <7>;
qcom,master-id = <84>;
qcom,use-pinctrl;
pinctrl-names = "spi_default", "spi_sleep";
pinctrl-0 = <&spi_6_active>;
pinctrl-1 = <&spi_6_sleep>;
clock-names = "iface_clk", "core_clk";
clocks = <&clock_gcc GCC_BLSP2_AHB_CLK>,
<&clock_gcc GCC_BLSP2_QUP2_SPI_APPS_CLK>;
status = "disabled";
};
spi_7: spi@c1b7000 { /* BLSP2 QUP3 */
compatible = "qcom,spi-qup-v2";
#address-cells = <1>;
#size-cells = <0>;
reg-names = "spi_physical", "spi_bam_physical";
reg = <0xc1b7000 0x600>,
<0xc184000 0x1f000>;
interrupt-names = "spi_irq", "spi_bam_irq";
interrupts = <0 103 0>, <0 239 0>;
spi-max-frequency = <50000000>;
qcom,use-bam;
qcom,ver-reg-exists;
qcom,bam-consumer-pipe-index = <8>;
qcom,bam-producer-pipe-index = <9>;
qcom,master-id = <84>;
qcom,use-pinctrl;
pinctrl-names = "spi_default", "spi_sleep";
pinctrl-0 = <&spi_7_active>;
pinctrl-1 = <&spi_7_sleep>;
clock-names = "iface_clk", "core_clk";
clocks = <&clock_gcc GCC_BLSP2_AHB_CLK>,
<&clock_gcc GCC_BLSP2_QUP3_SPI_APPS_CLK>;
status = "disabled";
};
spi_8: spi@c1b8000 { /* BLSP2 QUP4 */
compatible = "qcom,spi-qup-v2";
#address-cells = <1>;
#size-cells = <0>;
reg-names = "spi_physical", "spi_bam_physical";
reg = <0xc1b8000 0x600>,
<0xc184000 0x1f000>;
interrupt-names = "spi_irq", "spi_bam_irq";
interrupts = <0 104 0>, <0 239 0>;
spi-max-frequency = <50000000>;
qcom,use-bam;
qcom,ver-reg-exists;
qcom,bam-consumer-pipe-index = <10>;
qcom,bam-producer-pipe-index = <11>;
qcom,master-id = <84>;
qcom,use-pinctrl;
pinctrl-names = "spi_default", "spi_sleep";
pinctrl-0 = <&spi_8_active>;
pinctrl-1 = <&spi_8_sleep>;
clock-names = "iface_clk", "core_clk";
clocks = <&clock_gcc GCC_BLSP2_AHB_CLK>,
<&clock_gcc GCC_BLSP2_QUP4_SPI_APPS_CLK>;
status = "disabled";
};
blsp1_uart1_hs: uart@c16f000 { /* BLSP1 UART1 */
compatible = "qcom,msm-hsuart-v14";
reg = <0xc16f000 0x200>,
<0xc144000 0x1f000>;
reg-names = "core_mem", "bam_mem";
interrupt-names = "core_irq", "bam_irq", "wakeup_irq";
#address-cells = <0>;
interrupt-parent = <&blsp1_uart1_hs>;
interrupts = <0 1 2>;
#interrupt-cells = <1>;
interrupt-map-mask = <0xffffffff>;
interrupt-map = <0 &intc 0 0 107 0
1 &intc 0 0 238 0
2 &tlmm 1 0>;
qcom,inject-rx-on-wakeup;
qcom,rx-char-to-inject = <0xfd>;
qcom,bam-tx-ep-pipe-index = <0>;
qcom,bam-rx-ep-pipe-index = <1>;
qcom,master-id = <86>;
clock-names = "core_clk", "iface_clk";
clocks = <&clock_gcc GCC_BLSP1_UART1_APPS_CLK>,
<&clock_gcc GCC_BLSP1_AHB_CLK>;
pinctrl-names = "sleep", "default";
pinctrl-0 = <&blsp1_uart1_sleep>;
pinctrl-1 = <&blsp1_uart1_active>;
qcom,msm-bus,name = "buart1";
qcom,msm-bus,num-cases = <2>;
qcom,msm-bus,num-paths = <1>;
qcom,msm-bus,vectors-KBps =
<86 512 0 0>,
<86 512 500 800>;
status = "disabled";
};
blsp1_uart2_hs: uart@c170000 { /* BLSP1 UART2 */
compatible = "qcom,msm-hsuart-v14";
reg = <0xc170000 0x200>,
<0xc144000 0x1f000>;
reg-names = "core_mem", "bam_mem";
interrupt-names = "core_irq", "bam_irq", "wakeup_irq";
#address-cells = <0>;
interrupt-parent = <&blsp1_uart2_hs>;
interrupts = <0 1 2>;
#interrupt-cells = <1>;
interrupt-map-mask = <0xffffffff>;
interrupt-map = <0 &intc 0 0 108 0
1 &intc 0 0 238 0
2 &tlmm 5 0>;
qcom,inject-rx-on-wakeup;
qcom,rx-char-to-inject = <0xfd>;
qcom,bam-tx-ep-pipe-index = <2>;
qcom,bam-rx-ep-pipe-index = <3>;
qcom,master-id = <86>;
clock-names = "core_clk", "iface_clk";
clocks = <&clock_gcc GCC_BLSP1_UART2_APPS_CLK>,
<&clock_gcc GCC_BLSP1_AHB_CLK>;
pinctrl-names = "sleep", "default";
pinctrl-0 = <&blsp1_uart2_sleep>;
pinctrl-1 = <&blsp1_uart2_active>;
qcom,msm-bus,name = "buart2";
qcom,msm-bus,num-cases = <2>;
qcom,msm-bus,num-paths = <1>;
qcom,msm-bus,vectors-KBps =
<86 512 0 0>,
<86 512 500 800>;
status = "disabled";
};
blsp2_uart1_hs: uart@c1af000 { /* BLSP2 UART1 */
compatible = "qcom,msm-hsuart-v14";
reg = <0xc1af000 0x200>,
<0xc184000 0x1f000>;
reg-names = "core_mem", "bam_mem";
interrupt-names = "core_irq", "bam_irq", "wakeup_irq";
#address-cells = <0>;
interrupt-parent = <&blsp2_uart1_hs>;
interrupts = <0 1 2>;
#interrupt-cells = <1>;
interrupt-map-mask = <0xffffffff>;
interrupt-map = <0 &intc 0 0 113 0
1 &intc 0 0 239 0
2 &tlmm 17 0>;
qcom,inject-rx-on-wakeup;
qcom,rx-char-to-inject = <0xfd>;
qcom,bam-tx-ep-pipe-index = <0>;
qcom,bam-rx-ep-pipe-index = <1>;
qcom,master-id = <84>;
clock-names = "core_clk", "iface_clk";
clocks = <&clock_gcc GCC_BLSP2_UART1_APPS_CLK>,
<&clock_gcc GCC_BLSP2_AHB_CLK>;
pinctrl-names = "sleep", "default";
pinctrl-0 = <&blsp2_uart1_tx_sleep>,
<&blsp2_uart1_rxcts_sleep>, <&blsp2_uart1_rfr_sleep>;
pinctrl-1 = <&blsp2_uart1_tx_active>,
<&blsp2_uart1_rxcts_active>, <&blsp2_uart1_rfr_active>;
qcom,msm-bus,name = "buart3";
qcom,msm-bus,num-cases = <2>;
qcom,msm-bus,num-paths = <1>;
qcom,msm-bus,vectors-KBps =
<84 512 0 0>,
<84 512 500 800>;
status = "disabled";
};
blsp2_uart2_hs: uart@c1b0000 { /* BLSP2 UART2 */
compatible = "qcom,msm-hsuart-v14";
reg = <0xc1b0000 0x200>,
<0xc184000 0x1f000>;
reg-names = "core_mem", "bam_mem";
interrupt-names = "core_irq", "bam_irq", "wakeup_irq";
#address-cells = <0>;
interrupt-parent = <&blsp2_uart2_hs>;
interrupts = <0 1 2>;
#interrupt-cells = <1>;
interrupt-map-mask = <0xffffffff>;
interrupt-map = <0 &intc 0 0 114 0
1 &intc 0 0 239 0
2 &tlmm 25 0>;
qcom,inject-rx-on-wakeup;
qcom,rx-char-to-inject = <0xfd>;
qcom,bam-tx-ep-pipe-index = <2>;
qcom,bam-rx-ep-pipe-index = <3>;
qcom,master-id = <84>;
clock-names = "core_clk", "iface_clk";
clocks = <&clock_gcc GCC_BLSP2_UART2_APPS_CLK>,
<&clock_gcc GCC_BLSP2_AHB_CLK>;
pinctrl-names = "sleep", "default";
pinctrl-0 = <&blsp2_uart2_sleep>;
pinctrl-1 = <&blsp2_uart2_active>;
qcom,msm-bus,name = "buart4";
qcom,msm-bus,num-cases = <2>;
qcom,msm-bus,num-paths = <1>;
qcom,msm-bus,vectors-KBps =
<84 512 0 0>,
<84 512 500 800>;
status = "disabled";
};
};

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,402 @@
/*
* Copyright (c) 2016-2017, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
&soc {
led_flash0: qcom,camera-flash@0 {
cell-index = <0>;
compatible = "qcom,camera-flash";
qcom,flash-source = <&pm660l_flash0 &pm660l_flash1>;
qcom,torch-source = <&pm660l_torch0 &pm660l_torch1>;
qcom,switch-source = <&pm660l_switch0>;
status = "ok";
};
led_flash1: qcom,camera-flash@1 {
cell-index = <1>;
compatible = "qcom,camera-flash";
qcom,flash-source = <&pm660l_flash2>;
qcom,torch-source = <&pm660l_torch2>;
qcom,switch-source = <&pm660l_switch1>;
status = "ok";
};
cam_actuator_regulator: cam_actuator_fixed_regulator {
compatible = "regulator-fixed";
regulator-name = "cam_actuator_regulator";
regulator-min-microvolt = <3600000>;
regulator-max-microvolt = <3600000>;
enable-active-high;
gpio = <&tlmm 50 0>;
vin-supply = <&pm660l_bob>;
};
};
&cci {
actuator0: qcom,actuator@0 {
cell-index = <0>;
reg = <0x0>;
compatible = "qcom,actuator";
qcom,cci-master = <0>;
cam_vaf-supply = <&cam_actuator_regulator>;
qcom,cam-vreg-name = "cam_vaf";
qcom,cam-vreg-min-voltage = <3600000>;
qcom,cam-vreg-max-voltage = <3600000>;
qcom,cam-vreg-op-mode = <0>;
};
actuator1: qcom,actuator@1 {
cell-index = <1>;
reg = <0x1>;
compatible = "qcom,actuator";
qcom,cci-master = <1>;
cam_vaf-supply = <&cam_actuator_regulator>;
qcom,cam-vreg-name = "cam_vaf";
qcom,cam-vreg-min-voltage = <3600000>;
qcom,cam-vreg-max-voltage = <3600000>;
qcom,cam-vreg-op-mode = <0>;
};
actuator2: qcom,actuator@2 {
cell-index = <2>;
reg = <0x2>;
compatible = "qcom,actuator";
qcom,cci-master = <1>;
cam_vaf-supply = <&cam_actuator_regulator>;
qcom,cam-vreg-name = "cam_vaf";
qcom,cam-vreg-min-voltage = <3600000>;
qcom,cam-vreg-max-voltage = <3600000>;
qcom,cam-vreg-op-mode = <0>;
};
ois0: qcom,ois@0 {
cell-index = <0>;
reg = <0x0>;
compatible = "qcom,ois";
qcom,cci-master = <0>;
cam_vaf-supply = <&cam_actuator_regulator>;
qcom,cam-vreg-name = "cam_vaf";
qcom,cam-vreg-min-voltage = <3600000>;
qcom,cam-vreg-max-voltage = <3600000>;
qcom,cam-vreg-op-mode = <0>;
status = "disabled";
};
tof0: qcom,tof@29{
cell-index = <0>;
reg = <0x29>;
compatible = "st,stmvl53l0";
qcom,cci-master = <0>;
cam_laser-supply = <&cam_actuator_regulator>;
qcom,cam-vreg-name = "cam_laser";
qcom,cam-vreg-min-voltage = <3600000>;
qcom,cam-vreg-max-voltage = <3600000>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_tof_active>;
pinctrl-1 = <&cam_tof_suspend>;
stm,irq-gpio = <&tlmm 45 0x2008>;
gpios = <&tlmm 42 0>;
qcom,gpio-req-tbl-num = <0>;
qcom,gpio-req-tbl-flags = <0>;
qcom,gpio-req-tbl-label = "RNG_EN";
};
eeprom0: qcom,eeprom@0 {
cell-index = <0>;
reg = <0>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm660_l11>;
cam_vana-supply = <&pm660l_bob>;
cam_vdig-supply = <&pm660_s5>;
qcom,cam-vreg-name = "cam_vio", "cam_vana", "cam_vdig";
qcom,cam-vreg-min-voltage = <1780000 3300000 1350000>;
qcom,cam-vreg-max-voltage = <1950000 3600000 1350000>;
qcom,cam-vreg-op-mode = <105000 80000 105000>;
qcom,gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_rear_active
&cam_actuator_vaf_active>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_rear_suspend
&cam_actuator_vaf_suspend>;
gpios = <&tlmm 32 0>,
<&tlmm 46 0>,
<&pm660l_gpios 4 0>,
<&tlmm 51 0>,
<&tlmm 50 0>;
qcom,gpio-reset = <1>;
qcom,gpio-vdig = <2>;
qcom,gpio-vana = <3>;
qcom,gpio-vaf = <4>;
qcom,gpio-req-tbl-num = <0 1 2 3 4>;
qcom,gpio-req-tbl-flags = <1 0 0 0 0>;
qcom,gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0",
"CAM_VDIG",
"CAM_VANA",
"CAM_VAF";
qcom,sensor-position = <0>;
qcom,sensor-mode = <0>;
qcom,cci-master = <0>;
status = "ok";
clocks = <&clock_mmss MCLK0_CLK_SRC>,
<&clock_mmss MMSS_CAMSS_MCLK0_CLK>;
clock-names = "cam_src_clk", "cam_clk";
qcom,clock-rates = <24000000 0>;
};
eeprom1: qcom,eeprom@1 {
cell-index = <1>;
reg = <0x1>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm660_l11>;
cam_vana-supply = <&pm660l_bob>;
cam_vdig-supply = <&pm660_s5>;
qcom,cam-vreg-name = "cam_vio", "cam_vana", "cam_vdig";
qcom,cam-vreg-min-voltage = <1780000 3300000 1350000>;
qcom,cam-vreg-max-voltage = <1950000 3600000 1350000>;
qcom,cam-vreg-op-mode = <105000 80000 105000>;
qcom,gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_rear2_active>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_rear2_suspend>;
gpios = <&tlmm 34 0>,
<&tlmm 48 0>,
<&pm660l_gpios 3 0>,
<&tlmm 51 0>;
qcom,gpio-reset = <1>;
qcom,gpio-vdig = <2>;
qcom,gpio-vana = <3>;
qcom,gpio-req-tbl-num = <0 1 2 3>;
qcom,gpio-req-tbl-flags = <1 0 0 0>;
qcom,gpio-req-tbl-label = "CAMIF_MCLK",
"CAM_RESET",
"CAM_VDIG",
"CAM_VANA";
qcom,sensor-position = <0>;
qcom,sensor-mode = <0>;
qcom,cci-master = <1>;
status = "ok";
clocks = <&clock_mmss MCLK2_CLK_SRC>,
<&clock_mmss MMSS_CAMSS_MCLK2_CLK>;
clock-names = "cam_src_clk", "cam_clk";
qcom,clock-rates = <24000000 0>;
};
eeprom2: qcom,eeprom@2 {
cell-index = <2>;
reg = <0x2>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm660_l11>;
cam_vana-supply = <&pm660l_bob>;
cam_vdig-supply = <&pm660_s5>;
qcom,cam-vreg-name = "cam_vio", "cam_vana", "cam_vdig";
qcom,cam-vreg-min-voltage = <1780000 3300000 1350000>;
qcom,cam-vreg-max-voltage = <1950000 3600000 1350000>;
qcom,cam-vreg-op-mode = <105000 80000 105000>;
qcom,gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_front_active
&cam_actuator_vaf_active>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_front_suspend
&cam_actuator_vaf_suspend>;
gpios = <&tlmm 33 0>,
<&tlmm 47 0>,
<&pm660_gpios 3 0>,
<&tlmm 44 0>,
<&tlmm 50 0>;
qcom,gpio-reset = <1>;
qcom,gpio-vdig = <2>;
qcom,gpio-vana = <3>;
qcom,gpio-vaf = <4>;
qcom,gpio-req-tbl-num = <0 1 2 3 4>;
qcom,gpio-req-tbl-flags = <1 0 0 0 0>;
qcom,gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2",
"CAM_VDIG",
"CAM_VANA",
"CAM_VAF";
qcom,sensor-position = <1>;
qcom,sensor-mode = <0>;
qcom,cci-master = <1>;
status = "ok";
clocks = <&clock_mmss MCLK1_CLK_SRC>,
<&clock_mmss MMSS_CAMSS_MCLK1_CLK>;
clock-names = "cam_src_clk", "cam_clk";
qcom,clock-rates = <24000000 0>;
};
qcom,camera@0 {
cell-index = <0>;
compatible = "qcom,camera";
reg = <0x0>;
qcom,csiphy-sd-index = <0>;
qcom,csid-sd-index = <0>;
qcom,mount-angle = <90>;
qcom,led-flash-src = <&led_flash0>;
qcom,actuator-src = <&actuator0>;
qcom,ois-src = <&ois0>;
qcom,eeprom-src = <&eeprom0>;
cam_vio-supply = <&pm660_l11>;
cam_vana-supply = <&pm660l_bob>;
cam_vdig-supply = <&pm660_s5>;
qcom,cam-vreg-name = "cam_vio", "cam_vana", "cam_vdig";
qcom,cam-vreg-min-voltage = <1780000 3300000 1350000>;
qcom,cam-vreg-max-voltage = <1950000 3600000 1350000>;
qcom,cam-vreg-op-mode = <105000 80000 105000>;
qcom,gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_rear_active>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_rear_suspend>;
gpios = <&tlmm 32 0>,
<&tlmm 46 0>,
<&pm660l_gpios 4 0>,
<&tlmm 51 0>;
qcom,gpio-reset = <1>;
qcom,gpio-vdig = <2>;
qcom,gpio-vana = <3>;
qcom,gpio-req-tbl-num = <0 1 2 3>;
qcom,gpio-req-tbl-flags = <1 0 0 0>;
qcom,gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0",
"CAM_VDIG",
"CAM_VANA";
qcom,sensor-position = <0>;
qcom,sensor-mode = <0>;
qcom,cci-master = <0>;
status = "ok";
clocks = <&clock_mmss MCLK0_CLK_SRC>,
<&clock_mmss MMSS_CAMSS_MCLK0_CLK>;
clock-names = "cam_src_clk", "cam_clk";
qcom,clock-rates = <24000000 0>;
};
qcom,camera@1 {
cell-index = <1>;
compatible = "qcom,camera";
reg = <0x1>;
qcom,csiphy-sd-index = <1>;
qcom,csid-sd-index = <2>;
qcom,mount-angle = <90>;
qcom,led-flash-src = <&led_flash0>;
qcom,actuator-src = <&actuator1>;
qcom,eeprom-src = <&eeprom1>;
cam_vio-supply = <&pm660_l11>;
cam_vana-supply = <&pm660l_bob>;
cam_vdig-supply = <&pm660_s5>;
qcom,cam-vreg-name = "cam_vio", "cam_vana", "cam_vdig";
qcom,cam-vreg-min-voltage = <1780000 3300000 1350000>;
qcom,cam-vreg-max-voltage = <1950000 3600000 1350000>;
qcom,cam-vreg-op-mode = <105000 80000 105000>;
qcom,gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_rear2_active>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_rear2_suspend>;
gpios = <&tlmm 34 0>,
<&tlmm 48 0>,
<&pm660l_gpios 3 0>,
<&tlmm 51 0>;
qcom,gpio-reset = <1>;
qcom,gpio-vdig = <2>;
qcom,gpio-vana = <3>;
qcom,gpio-req-tbl-num = <0 1 2 3>;
qcom,gpio-req-tbl-flags = <1 0 0 0>;
qcom,gpio-req-tbl-label = "CAMIF_MCLK",
"CAM_RESET",
"CAM_VDIG",
"CAM_VANA";
qcom,sensor-position = <0>;
qcom,sensor-mode = <0>;
qcom,cci-master = <1>;
status = "ok";
clocks = <&clock_mmss MCLK2_CLK_SRC>,
<&clock_mmss MMSS_CAMSS_MCLK2_CLK>;
clock-names = "cam_src_clk", "cam_clk";
qcom,clock-rates = <24000000 0>;
};
qcom,camera@2 {
cell-index = <2>;
compatible = "qcom,camera";
reg = <0x02>;
qcom,csiphy-sd-index = <2>;
qcom,csid-sd-index = <2>;
qcom,mount-angle = <90>;
qcom,actuator-src = <&actuator2>;
qcom,eeprom-src = <&eeprom2>;
cam_vio-supply = <&pm660_l11>;
cam_vana-supply = <&pm660l_bob>;
cam_vdig-supply = <&pm660_s5>;
qcom,cam-vreg-name = "cam_vio", "cam_vana", "cam_vdig";
qcom,cam-vreg-min-voltage = <1780000 3300000 1350000>;
qcom,cam-vreg-max-voltage = <1950000 3600000 1350000>;
qcom,cam-vreg-op-mode = <105000 80000 105000>;
qcom,gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_front_active>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_front_suspend>;
gpios = <&tlmm 33 0>,
<&tlmm 47 0>,
<&pm660l_gpios 3 0>,
<&tlmm 51 0>;
qcom,gpio-reset = <1>;
qcom,gpio-vdig = <2>;
qcom,gpio-vana = <3>;
qcom,gpio-req-tbl-num = <0 1 2 3>;
qcom,gpio-req-tbl-flags = <1 0 0 0>;
qcom,gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2",
"CAM_VDIG",
"CAM_VANA";
qcom,sensor-position = <1>;
qcom,sensor-mode = <0>;
qcom,cci-master = <1>;
status = "ok";
clocks = <&clock_mmss MCLK1_CLK_SRC>,
<&clock_mmss MMSS_CAMSS_MCLK1_CLK>;
clock-names = "cam_src_clk", "cam_clk";
qcom,clock-rates = <24000000 0>;
};
};
&pm660l_gpios {
gpio@c300 { /* GPIO4 -CAMERA SENSOR 0 VDIG*/
qcom,mode = <1>; /* Output */
qcom,pull = <5>; /* No Pull */
qcom,vin-sel = <0>; /* VIN1 GPIO_LV */
qcom,src-sel = <0>; /* GPIO */
qcom,invert = <0>; /* Invert */
qcom,master-en = <1>; /* Enable GPIO */
status = "ok";
};
gpio@c200 { /* GPIO3 -CAMERA SENSOR 2 VDIG*/
qcom,mode = <1>; /* Output */
qcom,pull = <5>; /* No Pull */
qcom,vin-sel = <0>; /* VIN1 GPIO_LV */
qcom,src-sel = <0>; /* GPIO */
qcom,invert = <0>; /* Invert */
qcom,master-en = <1>; /* Enable GPIO */
status = "ok";
};
};

View File

@ -0,0 +1,438 @@
/*
* Copyright (c) 2016-2017, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
&soc {
led_flash0: qcom,camera-flash@0 {
cell-index = <0>;
compatible = "qcom,camera-flash";
qcom,flash-source = <&pm660l_flash0 &pm660l_flash1>;
qcom,torch-source = <&pm660l_torch0 &pm660l_torch1>;
qcom,switch-source = <&pm660l_switch0>;
status = "ok";
};
led_flash1: qcom,camera-flash@1 {
cell-index = <1>;
compatible = "qcom,camera-flash";
qcom,flash-source = <&pm660l_flash2>;
qcom,torch-source = <&pm660l_torch2>;
qcom,switch-source = <&pm660l_switch1>;
status = "ok";
};
cam_avdd_gpio_regulator: cam_avdd_fixed_regulator {
compatible = "regulator-fixed";
regulator-name = "cam_avdd_gpio_regulator";
regulator-min-microvolt = <3600000>;
regulator-max-microvolt = <3600000>;
enable-active-high;
gpio = <&tlmm 51 0>;
vin-supply = <&pm660l_bob>;
};
cam_actuator_regulator: cam_actuator_fixed_regulator {
compatible = "regulator-fixed";
regulator-name = "cam_actuator_regulator";
regulator-min-microvolt = <3600000>;
regulator-max-microvolt = <3600000>;
enable-active-high;
gpio = <&tlmm 50 0>;
vin-supply = <&pm660l_bob>;
};
cam_dvdd_gpio_regulator: cam_dvdd_fixed_regulator {
compatible = "regulator-fixed";
regulator-name = "cam_dvdd_gpio_regulator";
regulator-min-microvolt = <1350000>;
regulator-max-microvolt = <1350000>;
enable-active-high;
gpio = <&pm660l_gpios 3 0>;
vin-supply = <&pm660_s5>;
};
cam_rear_dvdd_gpio_regulator: cam_rear_dvdd_fixed_regulator {
compatible = "regulator-fixed";
regulator-name = "cam_rear_dvdd_gpio_regulator";
regulator-min-microvolt = <1350000>;
regulator-max-microvolt = <1350000>;
enable-active-high;
gpio = <&pm660l_gpios 4 0>;
vin-supply = <&pm660_s5>;
};
};
&cci {
actuator0: qcom,actuator@0 {
cell-index = <0>;
reg = <0x0>;
compatible = "qcom,actuator";
qcom,cci-master = <0>;
cam_vaf-supply = <&cam_actuator_regulator>;
qcom,cam-vreg-name = "cam_vaf";
qcom,cam-vreg-min-voltage = <3600000>;
qcom,cam-vreg-max-voltage = <3600000>;
qcom,cam-vreg-op-mode = <0>;
};
actuator1: qcom,actuator@1 {
cell-index = <1>;
reg = <0x1>;
compatible = "qcom,actuator";
qcom,cci-master = <1>;
cam_vaf-supply = <&cam_actuator_regulator>;
qcom,cam-vreg-name = "cam_vaf";
qcom,cam-vreg-min-voltage = <3600000>;
qcom,cam-vreg-max-voltage = <3600000>;
qcom,cam-vreg-op-mode = <0>;
};
actuator2: qcom,actuator@2 {
cell-index = <2>;
reg = <0x2>;
compatible = "qcom,actuator";
qcom,cci-master = <1>;
cam_vaf-supply = <&cam_actuator_regulator>;
qcom,cam-vreg-name = "cam_vaf";
qcom,cam-vreg-min-voltage = <3600000>;
qcom,cam-vreg-max-voltage = <3600000>;
qcom,cam-vreg-op-mode = <0>;
};
ois0: qcom,ois@0 {
cell-index = <0>;
reg = <0x0>;
compatible = "qcom,ois";
qcom,cci-master = <0>;
cam_vaf-supply = <&cam_actuator_regulator>;
qcom,cam-vreg-name = "cam_vaf";
qcom,cam-vreg-min-voltage = <3600000>;
qcom,cam-vreg-max-voltage = <3600000>;
qcom,cam-vreg-op-mode = <0>;
status = "disabled";
};
tof0: qcom,tof@29{
cell-index = <0>;
reg = <0x29>;
compatible = "st,stmvl53l0";
qcom,cci-master = <0>;
cam_laser-supply = <&cam_actuator_regulator>;
qcom,cam-vreg-name = "cam_laser";
qcom,cam-vreg-min-voltage = <3600000>;
qcom,cam-vreg-max-voltage = <3600000>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_tof_active>;
pinctrl-1 = <&cam_tof_suspend>;
stm,irq-gpio = <&tlmm 45 0x2008>;
gpios = <&tlmm 42 0>;
qcom,gpio-req-tbl-num = <0>;
qcom,gpio-req-tbl-flags = <0>;
qcom,gpio-req-tbl-label = "RNG_EN";
};
eeprom0: qcom,eeprom@0 {
cell-index = <0>;
reg = <0>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm660_l11>;
cam_vana-supply = <&cam_avdd_gpio_regulator>;
cam_vdig-supply = <&cam_rear_dvdd_gpio_regulator>;
qcom,cam-vreg-name = "cam_vio", "cam_vana", "cam_vdig";
qcom,cam-vreg-min-voltage = <1780000 0 0>;
qcom,cam-vreg-max-voltage = <1950000 0 0>;
qcom,cam-vreg-op-mode = <105000 0 0>;
qcom,gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_rear_active
&cam_actuator_vaf_active>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_rear_suspend
&cam_actuator_vaf_suspend>;
gpios = <&tlmm 32 0>,
<&tlmm 46 0>,
<&tlmm 50 0>;
qcom,gpio-reset = <1>;
qcom,gpio-vaf = <2>;
qcom,gpio-req-tbl-num = <0 1 2>;
qcom,gpio-req-tbl-flags = <1 0 0>;
qcom,gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0",
"CAM_VAF";
qcom,sensor-position = <0>;
qcom,sensor-mode = <0>;
qcom,cci-master = <0>;
status = "ok";
clocks = <&clock_mmss MCLK0_CLK_SRC>,
<&clock_mmss MMSS_CAMSS_MCLK0_CLK>;
clock-names = "cam_src_clk", "cam_clk";
qcom,clock-rates = <24000000 0>;
};
eeprom1: qcom,eeprom@1 {
cell-index = <1>;
reg = <0x1>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm660_l11>;
cam_vana-supply = <&cam_avdd_gpio_regulator>;
cam_vdig-supply = <&cam_dvdd_gpio_regulator>;
qcom,cam-vreg-name = "cam_vio", "cam_vana", "cam_vdig";
qcom,cam-vreg-min-voltage = <1780000 0 0>;
qcom,cam-vreg-max-voltage = <1950000 0 0>;
qcom,cam-vreg-op-mode = <105000 0 0>;
qcom,gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_rear2_active>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_rear2_suspend>;
gpios = <&tlmm 34 0>,
<&tlmm 48 0>;
qcom,gpio-reset = <1>;
qcom,gpio-req-tbl-num = <0 1>;
qcom,gpio-req-tbl-flags = <1 0>;
qcom,gpio-req-tbl-label = "CAMIF_MCLK",
"CAM_RESET";
qcom,sensor-position = <0>;
qcom,sensor-mode = <0>;
qcom,cci-master = <1>;
status = "ok";
clocks = <&clock_mmss MCLK2_CLK_SRC>,
<&clock_mmss MMSS_CAMSS_MCLK2_CLK>;
clock-names = "cam_src_clk", "cam_clk";
qcom,clock-rates = <24000000 0>;
};
eeprom2: qcom,eeprom@2 {
cell-index = <2>;
reg = <0x2>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm660_l11>;
cam_vana-supply = <&pm660l_bob>;
cam_vdig-supply = <&cam_dvdd_gpio_regulator>;
qcom,cam-vreg-name = "cam_vio", "cam_vana", "cam_vdig";
qcom,cam-vreg-min-voltage = <1780000 3300000 0>;
qcom,cam-vreg-max-voltage = <1950000 3600000 0>;
qcom,cam-vreg-op-mode = <105000 80000 0>;
qcom,gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_front_active
&cam_actuator_vaf_active>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_front_suspend
&cam_actuator_vaf_suspend>;
gpios = <&tlmm 33 0>,
<&tlmm 47 0>,
<&tlmm 44 0>,
<&tlmm 50 0>;
qcom,gpio-reset = <1>;
qcom,gpio-vana = <2>;
qcom,gpio-vaf = <3>;
qcom,gpio-req-tbl-num = <0 1 2 3>;
qcom,gpio-req-tbl-flags = <1 0 0 0>;
qcom,gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2",
"CAM_VANA",
"CAM_VAF";
qcom,sensor-position = <1>;
qcom,sensor-mode = <0>;
qcom,cci-master = <1>;
status = "ok";
clocks = <&clock_mmss MCLK1_CLK_SRC>,
<&clock_mmss MMSS_CAMSS_MCLK1_CLK>;
clock-names = "cam_src_clk", "cam_clk";
qcom,clock-rates = <24000000 0>;
};
qcom,camera@0 {
cell-index = <0>;
compatible = "qcom,camera";
reg = <0x0>;
qcom,csiphy-sd-index = <0>;
qcom,csid-sd-index = <0>;
qcom,mount-angle = <90>;
qcom,led-flash-src = <&led_flash0>;
qcom,actuator-src = <&actuator0>;
qcom,ois-src = <&ois0>;
qcom,eeprom-src = <&eeprom0>;
cam_vio-supply = <&pm660_l11>;
cam_vana-supply = <&cam_avdd_gpio_regulator>;
cam_vdig-supply = <&cam_rear_dvdd_gpio_regulator>;
qcom,cam-vreg-name = "cam_vio", "cam_vana", "cam_vdig";
qcom,cam-vreg-min-voltage = <1780000 0 0>;
qcom,cam-vreg-max-voltage = <1950000 0 0>;
qcom,cam-vreg-op-mode = <105000 0 0>;
qcom,gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_rear_active>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_rear_suspend>;
gpios = <&tlmm 32 0>,
<&tlmm 46 0>;
qcom,gpio-reset = <1>;
qcom,gpio-req-tbl-num = <0 1>;
qcom,gpio-req-tbl-flags = <1 0>;
qcom,gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
qcom,sensor-position = <0>;
qcom,sensor-mode = <0>;
qcom,cci-master = <0>;
status = "ok";
clocks = <&clock_mmss MCLK0_CLK_SRC>,
<&clock_mmss MMSS_CAMSS_MCLK0_CLK>;
clock-names = "cam_src_clk", "cam_clk";
qcom,clock-rates = <24000000 0>;
};
qcom,camera@1 {
cell-index = <1>;
compatible = "qcom,camera";
reg = <0x1>;
qcom,csiphy-sd-index = <1>;
qcom,csid-sd-index = <2>;
qcom,mount-angle = <90>;
qcom,led-flash-src = <&led_flash0>;
qcom,actuator-src = <&actuator1>;
qcom,eeprom-src = <&eeprom1>;
cam_vio-supply = <&pm660_l11>;
cam_vana-supply = <&cam_avdd_gpio_regulator>;
cam_vdig-supply = <&cam_dvdd_gpio_regulator>;
qcom,cam-vreg-name = "cam_vio", "cam_vana", "cam_vdig";
qcom,cam-vreg-min-voltage = <1780000 0 0>;
qcom,cam-vreg-max-voltage = <1950000 0 0>;
qcom,cam-vreg-op-mode = <105000 0 0>;
qcom,gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_rear2_active>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_rear2_suspend>;
gpios = <&tlmm 34 0>,
<&tlmm 48 0>;
qcom,gpio-reset = <1>;
qcom,gpio-req-tbl-num = <0 1>;
qcom,gpio-req-tbl-flags = <1 0>;
qcom,gpio-req-tbl-label = "CAMIF_MCLK",
"CAM_RESET";
qcom,sensor-position = <0>;
qcom,sensor-mode = <0>;
qcom,cci-master = <1>;
status = "ok";
clocks = <&clock_mmss MCLK2_CLK_SRC>,
<&clock_mmss MMSS_CAMSS_MCLK2_CLK>;
clock-names = "cam_src_clk", "cam_clk";
qcom,clock-rates = <24000000 0>;
};
qcom,camera@2 {
cell-index = <2>;
compatible = "qcom,camera";
reg = <0x02>;
qcom,csiphy-sd-index = <2>;
qcom,csid-sd-index = <2>;
qcom,mount-angle = <90>;
qcom,actuator-src = <&actuator2>;
qcom,eeprom-src = <&eeprom2>;
cam_vio-supply = <&pm660_l11>;
cam_vana-supply = <&cam_avdd_gpio_regulator>;
cam_vdig-supply = <&cam_dvdd_gpio_regulator>;
qcom,cam-vreg-name = "cam_vio", "cam_vana", "cam_vdig";
qcom,cam-vreg-min-voltage = <1780000 0 0>;
qcom,cam-vreg-max-voltage = <1950000 0 0>;
qcom,cam-vreg-op-mode = <105000 0 0>;
qcom,gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_front_active>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_front_suspend>;
gpios = <&tlmm 33 0>,
<&tlmm 47 0>;
qcom,gpio-reset = <1>;
qcom,gpio-req-tbl-num = <0 1>;
qcom,gpio-req-tbl-flags = <1 0>;
qcom,gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
qcom,sensor-position = <1>;
qcom,sensor-mode = <0>;
qcom,cci-master = <1>;
status = "ok";
clocks = <&clock_mmss MCLK1_CLK_SRC>,
<&clock_mmss MMSS_CAMSS_MCLK1_CLK>;
clock-names = "cam_src_clk", "cam_clk";
qcom,clock-rates = <24000000 0>;
};
qcom,camera@3 {
cell-index = <3>;
compatible = "qcom,camera";
reg = <0x03>;
qcom,csiphy-sd-index = <1>;
qcom,csid-sd-index = <1>;
qcom,mount-angle = <90>;
qcom,led-flash-src = <&led_flash1>;
qcom,actuator-src = <&actuator2>;
qcom,eeprom-src = <&eeprom2>;
cam_vio-supply = <&pm660_l11>;
cam_vana-supply = <&cam_avdd_gpio_regulator>;
cam_vdig-supply = <&cam_dvdd_gpio_regulator>;
qcom,cam-vreg-name = "cam_vio", "cam_vana", "cam_vdig";
qcom,cam-vreg-min-voltage = <1780000 0 0>;
qcom,cam-vreg-max-voltage = <1950000 0 0>;
qcom,cam-vreg-op-mode = <105000 0 0>;
qcom,gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_front_iris_active>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_front_iris_suspend>;
gpios = <&tlmm 35 0>,
<&tlmm 52 0>;
qcom,gpio-reset = <1>;
qcom,gpio-req-tbl-num = <0 1>;
qcom,gpio-req-tbl-flags = <1 0>;
qcom,gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3";
qcom,sensor-position = <1>;
qcom,sensor-mode = <0>;
qcom,cci-master = <1>;
clocks = <&clock_mmss MCLK3_CLK_SRC>,
<&clock_mmss MMSS_CAMSS_MCLK3_CLK>;
clock-names = "cam_src_clk", "cam_clk";
qcom,clock-rates = <24000000 0>;
};
};
&pm660l_gpios {
gpio@c300 { /* GPIO4 -CAMERA SENSOR 0 VDIG*/
qcom,mode = <1>; /* Output */
qcom,pull = <5>; /* No Pull */
qcom,vin-sel = <0>; /* VIN1 GPIO_LV */
qcom,src-sel = <0>; /* GPIO */
qcom,invert = <0>; /* Invert */
qcom,master-en = <1>; /* Enable GPIO */
status = "ok";
};
gpio@c200 { /* GPIO3 -CAMERA SENSOR 2 VDIG*/
qcom,mode = <1>; /* Output */
qcom,pull = <5>; /* No Pull */
qcom,vin-sel = <0>; /* VIN1 GPIO_LV */
qcom,src-sel = <0>; /* GPIO */
qcom,invert = <0>; /* Invert */
qcom,master-en = <1>; /* Enable GPIO */
status = "ok";
};
};

View File

@ -0,0 +1,427 @@
/*
* Copyright (c) 2017, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
&soc {
led_flash0: qcom,camera-flash@0 {
cell-index = <0>;
compatible = "qcom,camera-flash";
qcom,flash-source = <&pm660l_flash0 &pm660l_flash1>;
qcom,torch-source = <&pm660l_torch0 &pm660l_torch1>;
qcom,switch-source = <&pm660l_switch0>;
status = "ok";
};
cam_avdd_gpio_regulator:cam_avdd_fixed_regulator {
compatible = "regulator-fixed";
regulator-name = "cam_vadd_gpio_regulator";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
enable-active-high;
gpio = <&tlmm 51 0>;
vin-supply = <&pm660l_bob>;
};
cam_vaf_gpio_regulator:cam_vaf_fixed_regulator {
compatible = "regulator-fixed";
regulator-name = "cam_vaf_gpio_regulator";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
enable-active-high;
gpio = <&tlmm 50 0>;
vin-supply = <&pm660l_bob>;
};
cam_rear_dvdd_gpio_regulator: cam_rear_dvdd_fixed_regulator {
compatible = "regulator-fixed";
regulator-name = "cam_rear_dvdd_gpio_regulator";
regulator-min-microvolt = <1350000>;
regulator-max-microvolt = <1350000>;
enable-active-high;
gpio = <&pm660l_gpios 4 0>;
vin-supply = <&pm660_s5>;
};
};
&tlmm {
cam_sensor_rear_active: cam_sensor_rear_active {
/* RESET */
mux {
pins = "gpio46";
function = "gpio";
};
config {
pins = "gpio46";
bias-disable; /* No PULL */
drive-strength = <2>; /* 2 MA */
};
};
cam_sensor_rear_suspend: cam_sensor_rear_suspend {
/* RESET */
mux {
pins = "gpio46";
function = "gpio";
};
config {
pins = "gpio46";
bias-disable; /* No PULL */
drive-strength = <2>; /* 2 MA */
};
};
cam_sensor_rear2_active: cam_sensor_rear2_active {
/* RESET */
mux {
pins = "gpio48";
function = "gpio";
};
config {
pins = "gpio48";
bias-disable; /* No PULL */
drive-strength = <2>; /* 2 MA */
};
};
cam_sensor_rear2_suspend: cam_sensor_rear2_suspend {
/* RESET */
mux {
pins = "gpio48";
function = "gpio";
};
config {
pins = "gpio48";
bias-disable; /* No PULL */
drive-strength = <2>; /* 2 MA */
};
};
cam_sensor_front_active: cam_sensor_front_active {
/* RESET */
mux {
pins = "gpio47";
function = "gpio";
};
config {
pins = "gpio47";
bias-disable; /* No PULL */
drive-strength = <2>; /* 2 MA */
};
};
cam_sensor_front_suspend: cam_sensor_front_suspend {
/* RESET */
mux {
pins = "gpio47";
function = "gpio";
};
config {
pins = "gpio47";
bias-disable; /* No PULL */
drive-strength = <2>; /* 2 MA */
};
};
};
&cci {
actuator0: qcom,actuator@0 {
cell-index = <0>;
reg = <0x0>;
compatible = "qcom,actuator";
qcom,cci-master = <0>;
cam_vaf-supply = <&cam_vaf_gpio_regulator>;
qcom,cam-vreg-name = "cam_vaf";
qcom,cam-vreg-min-voltage = <2800000>;
qcom,cam-vreg-max-voltage = <2800000>;
qcom,cam-vreg-op-mode = <0>;
};
actuator1: qcom,actuator@1 {
cell-index = <1>;
reg = <0x1>;
compatible = "qcom,actuator";
qcom,cci-master = <1>;
cam_vaf-supply = <&cam_vaf_gpio_regulator>;
qcom,cam-vreg-name = "cam_vaf";
qcom,cam-vreg-min-voltage = <2800000>;
qcom,cam-vreg-max-voltage = <2800000>;
qcom,cam-vreg-op-mode = <0>;
};
ois0: qcom,ois@0 {
cell-index = <0>;
reg = <0x0>;
compatible = "qcom,ois";
qcom,cci-master = <0>;
cam_vaf-supply = <&cam_vaf_gpio_regulator>;
qcom,cam-vreg-name = "cam_vaf";
qcom,cam-vreg-min-voltage = <2800000>;
qcom,cam-vreg-max-voltage = <2800000>;
qcom,cam-vreg-op-mode = <0>;
status = "disabled";
};
eeprom0: qcom,eeprom@0 {
cell-index = <0>;
reg = <0>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm660_l11>;
cam_vana-supply = <&cam_avdd_gpio_regulator>;
cam_vdig-supply = <&cam_rear_dvdd_gpio_regulator>;
qcom,cam-vreg-name = "cam_vio", "cam_vana", "cam_vdig";
qcom,cam-vreg-min-voltage = <1780000 0 0>;
qcom,cam-vreg-max-voltage = <1950000 0 0>;
qcom,cam-vreg-op-mode = <105000 0 105000>;
qcom,gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_rear_active>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_rear_suspend>;
gpios = <&tlmm 32 0>,
<&tlmm 46 0>;
qcom,gpio-reset = <1>;
qcom,gpio-req-tbl-num = <0 1>;
qcom,gpio-req-tbl-flags = <1 0>;
qcom,gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET0";
qcom,sensor-position = <0>;
qcom,sensor-mode = <0>;
qcom,cci-master = <0>;
status = "ok";
clocks = <&clock_mmss MCLK0_CLK_SRC>,
<&clock_mmss MMSS_CAMSS_MCLK0_CLK>;
clock-names = "cam_src_clk", "cam_clk";
qcom,clock-rates = <24000000 0>;
};
eeprom1: qcom,eeprom@1 {
cell-index = <1>;
reg = <0x1>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm660_l11>;
cam_vana-supply = <&cam_avdd_gpio_regulator>;
cam_vdig-supply = <&cam_rear_dvdd_gpio_regulator>;
qcom,cam-vreg-name = "cam_vio", "cam_vana", "cam_vdig";
qcom,cam-vreg-min-voltage = <1780000 0 0>;
qcom,cam-vreg-max-voltage = <1950000 0 0>;
qcom,cam-vreg-op-mode = <105000 0 0>;
qcom,gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_rear2_active>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_rear2_suspend>;
gpios = <&tlmm 34 0>,
<&tlmm 48 0>;
qcom,gpio-reset = <1>;
qcom,gpio-req-tbl-num = <0 1>;
qcom,gpio-req-tbl-flags = <1 0>;
qcom,gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
qcom,sensor-position = <0>;
qcom,sensor-mode = <0>;
qcom,cci-master = <1>;
status = "ok";
clocks = <&clock_mmss MCLK2_CLK_SRC>,
<&clock_mmss MMSS_CAMSS_MCLK2_CLK>;
clock-names = "cam_src_clk", "cam_clk";
qcom,clock-rates = <24000000 0>;
};
eeprom2: qcom,eeprom@2 {
cell-index = <2>;
reg = <0x2>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm660_l11>;
cam_vana-supply = <&cam_avdd_gpio_regulator>;
cam_vdig-supply = <&pm660_s5>;
qcom,cam-vreg-name = "cam_vio", "cam_vana", "cam_vdig";
qcom,cam-vreg-min-voltage = <1780000 0 1352000>;
qcom,cam-vreg-max-voltage = <1950000 0 1352000>;
qcom,cam-vreg-op-mode = <105000 0 105000>;
qcom,gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_front_active>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_front_suspend>;
gpios = <&tlmm 33 0>,
<&tlmm 47 0>,
<&pm660l_gpios 3 0>;
qcom,gpio-reset = <1>;
qcom,gpio-vdig = <2>;
qcom,gpio-req-tbl-num = <0 1 2>;
qcom,gpio-req-tbl-flags = <1 0 0>;
qcom,gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2",
"CAM_VDIG";
qcom,sensor-position = <1>;
qcom,sensor-mode = <0>;
qcom,cci-master = <1>;
status = "ok";
clocks = <&clock_mmss MCLK1_CLK_SRC>,
<&clock_mmss MMSS_CAMSS_MCLK1_CLK>;
clock-names = "cam_src_clk", "cam_clk";
qcom,clock-rates = <24000000 0>;
};
qcom,camera@0 {
cell-index = <0>;
compatible = "qcom,camera";
reg = <0x0>;
qcom,csiphy-sd-index = <0>;
qcom,csid-sd-index = <0>;
qcom,mount-angle = <270>;
qcom,led-flash-src = <&led_flash0>;
qcom,actuator-src = <&actuator0>;
qcom,ois-src = <&ois0>;
qcom,eeprom-src = <&eeprom0>;
cam_vio-supply = <&pm660_l11>;
cam_vana-supply = <&cam_avdd_gpio_regulator>;
cam_vdig-supply = <&cam_rear_dvdd_gpio_regulator>;
qcom,cam-vreg-name = "cam_vio", "cam_vana", "cam_vdig";
qcom,cam-vreg-min-voltage = <1780000 0 0>;
qcom,cam-vreg-max-voltage = <1950000 0 0>;
qcom,cam-vreg-op-mode = <105000 0 0>;
qcom,gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_rear_active>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_rear_suspend>;
gpios = <&tlmm 32 0>,
<&tlmm 46 0>;
qcom,gpio-reset = <1>;
qcom,gpio-req-tbl-num = <0 1>;
qcom,gpio-req-tbl-flags = <1 0>;
qcom,gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET0";
qcom,sensor-position = <0>;
qcom,sensor-mode = <0>;
qcom,cci-master = <0>;
status = "ok";
clocks = <&clock_mmss MCLK0_CLK_SRC>,
<&clock_mmss MMSS_CAMSS_MCLK0_CLK>;
clock-names = "cam_src_clk", "cam_clk";
qcom,clock-rates = <24000000 0>;
};
qcom,camera@1 {
cell-index = <1>;
compatible = "qcom,camera";
reg = <0x1>;
qcom,csiphy-sd-index = <1>;
qcom,csid-sd-index = <1>;
qcom,mount-angle = <270>;
qcom,led-flash-src = <&led_flash0>;
qcom,actuator-src = <&actuator1>;
qcom,eeprom-src = <&eeprom1>;
cam_vio-supply = <&pm660_l11>;
cam_vana-supply = <&cam_avdd_gpio_regulator>;
cam_vdig-supply = <&cam_rear_dvdd_gpio_regulator>;
qcom,cam-vreg-name = "cam_vio", "cam_vana", "cam_vdig";
qcom,cam-vreg-min-voltage = <1780000 0 0>;
qcom,cam-vreg-max-voltage = <1950000 0 0>;
qcom,cam-vreg-op-mode = <105000 0 0>;
qcom,gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_rear2_active>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_rear2_suspend>;
gpios = <&tlmm 34 0>,
<&tlmm 48 0>;
qcom,gpio-reset = <1>;
qcom,gpio-req-tbl-num = <0 1>;
qcom,gpio-req-tbl-flags = <1 0>;
qcom,gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
qcom,sensor-position = <0>;
qcom,sensor-mode = <0>;
qcom,cci-master = <1>;
status = "ok";
clocks = <&clock_mmss MCLK2_CLK_SRC>,
<&clock_mmss MMSS_CAMSS_MCLK2_CLK>;
clock-names = "cam_src_clk", "cam_clk";
qcom,clock-rates = <24000000 0>;
};
qcom,camera@2 {
cell-index = <2>;
compatible = "qcom,camera";
reg = <0x02>;
qcom,csiphy-sd-index = <2>;
qcom,csid-sd-index = <2>;
qcom,mount-angle = <270>;
qcom,eeprom-src = <&eeprom2>;
cam_vio-supply = <&pm660_l11>;
cam_vana-supply = <&cam_avdd_gpio_regulator>;
cam_vdig-supply = <&pm660_s5>;
qcom,cam-vreg-name = "cam_vio", "cam_vana", "cam_vdig";
qcom,cam-vreg-min-voltage = <1780000 0 1350000>;
qcom,cam-vreg-max-voltage = <1950000 0 1350000>;
qcom,cam-vreg-op-mode = <105000 0 105000>;
qcom,gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_front_active>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_front_suspend>;
gpios = <&tlmm 33 0>,
<&tlmm 47 0>,
<&pm660l_gpios 3 0>;
qcom,gpio-reset = <1>;
qcom,gpio-vdig = <2>;
qcom,gpio-req-tbl-num = <0 1 2>;
qcom,gpio-req-tbl-flags = <1 0 0>;
qcom,gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2",
"CAM_VDIG";
qcom,sensor-position = <1>;
qcom,sensor-mode = <0>;
qcom,cci-master = <1>;
status = "ok";
clocks = <&clock_mmss MCLK1_CLK_SRC>,
<&clock_mmss MMSS_CAMSS_MCLK1_CLK>;
clock-names = "cam_src_clk", "cam_clk";
qcom,clock-rates = <24000000 0>;
};
};
&pm660l_gpios {
gpio@c300 { /* GPIO4 -CAMERA SENSOR 0 VDIG*/
qcom,mode = <1>; /* Output */
qcom,pull = <5>; /* No Pull */
qcom,vin-sel = <0>; /* VIN1 GPIO_LV */
qcom,src-sel = <0>; /* GPIO */
qcom,invert = <0>; /* Invert */
qcom,master-en = <1>; /* Enable GPIO */
status = "ok";
};
gpio@c200 { /* GPIO3 -CAMERA SENSOR 2 VDIG*/
qcom,mode = <1>; /* Output */
qcom,pull = <5>; /* No Pull */
qcom,vin-sel = <0>; /* VIN1 GPIO_LV */
qcom,src-sel = <0>; /* GPIO */
qcom,invert = <0>; /* Invert */
qcom,master-en = <1>; /* Enable GPIO */
status = "ok";
};
};

View File

@ -0,0 +1,876 @@
/*
* Copyright (c) 2016-2017, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
&soc {
qcom,msm-cam@ca00000 {
compatible = "qcom,msm-cam";
reg = <0xca00000 0x4000>;
reg-names = "msm-cam";
status = "ok";
bus-vectors = "suspend", "svs", "nominal", "turbo";
qcom,bus-votes = <0 150000000 320000000 320000000>;
qcom,gpu-limit = <700000000>;
};
qcom,csiphy@c824000 {
cell-index = <0>;
compatible = "qcom,csiphy-v3.5", "qcom,csiphy";
reg = <0xc824000 0x1000>,
<0xca00120 0x4>;
reg-names = "csiphy", "csiphy_clk_mux";
interrupts = <0 78 0>;
interrupt-names = "csiphy";
gdscr-supply = <&gdsc_camss_top>;
bimc_smmu-supply = <&gdsc_bimc_smmu>;
qcom,cam-vreg-name = "gdscr", "bimc_smmu";
clocks = <&clock_rpmcc RPM_SMD_MMSSNOC_AXI_CLK>,
<&clock_mmss MMSS_MNOC_AHB_CLK>,
<&clock_mmss MMSS_BIMC_SMMU_AHB_CLK>,
<&clock_mmss MMSS_BIMC_SMMU_AXI_CLK>,
<&clock_mmss MMSS_CAMSS_AHB_CLK>,
<&clock_mmss MMSS_CAMSS_TOP_AHB_CLK>,
<&clock_mmss CSI0_CLK_SRC>,
<&clock_mmss MMSS_CAMSS_CSI0_CLK>,
<&clock_mmss MMSS_CAMSS_CPHY_CSID0_CLK>,
<&clock_mmss CSI0PHYTIMER_CLK_SRC>,
<&clock_mmss MMSS_CAMSS_CSI0PHYTIMER_CLK>,
<&clock_mmss MMSS_CAMSS_ISPIF_AHB_CLK>,
<&clock_mmss CSIPHY_CLK_SRC>,
<&clock_mmss MMSS_CAMSS_CSIPHY0_CLK>,
<&clock_mmss MMSS_CSIPHY_AHB2CRIF_CLK>;
clock-names = "mmssnoc_axi", "mnoc_ahb",
"bmic_smmu_ahb", "bmic_smmu_axi",
"camss_ahb_clk", "camss_top_ahb_clk",
"csi_src_clk", "csi_clk", "cphy_csid_clk",
"csiphy_timer_src_clk", "csiphy_timer_clk",
"camss_ispif_ahb_clk", "csiphy_clk_src", "csiphy_clk",
"csiphy_ahb2crif";
qcom,clock-rates = <0 0 0 0 0 0 310000000 0 0 269333333 0
0 200000000 0 0>;
status = "ok";
};
qcom,csiphy@c825000 {
cell-index = <1>;
compatible = "qcom,csiphy-v3.5", "qcom,csiphy";
reg = <0xc825000 0x1000>,
<0xca00124 0x4>;
reg-names = "csiphy", "csiphy_clk_mux";
interrupts = <0 79 0>;
interrupt-names = "csiphy";
gdscr-supply = <&gdsc_camss_top>;
bimc_smmu-supply = <&gdsc_bimc_smmu>;
qcom,cam-vreg-name = "gdscr", "bimc_smmu";
clocks = <&clock_rpmcc RPM_SMD_MMSSNOC_AXI_CLK>,
<&clock_mmss MMSS_MNOC_AHB_CLK>,
<&clock_mmss MMSS_BIMC_SMMU_AHB_CLK>,
<&clock_mmss MMSS_BIMC_SMMU_AXI_CLK>,
<&clock_mmss MMSS_CAMSS_AHB_CLK>,
<&clock_mmss MMSS_CAMSS_TOP_AHB_CLK>,
<&clock_mmss CSI1_CLK_SRC>,
<&clock_mmss MMSS_CAMSS_CSI1_CLK>,
<&clock_mmss MMSS_CAMSS_CPHY_CSID1_CLK>,
<&clock_mmss CSI1PHYTIMER_CLK_SRC>,
<&clock_mmss MMSS_CAMSS_CSI1PHYTIMER_CLK>,
<&clock_mmss MMSS_CAMSS_ISPIF_AHB_CLK>,
<&clock_mmss CSIPHY_CLK_SRC>,
<&clock_mmss MMSS_CAMSS_CSIPHY1_CLK>,
<&clock_mmss MMSS_CSIPHY_AHB2CRIF_CLK>;
clock-names = "mmssnoc_axi", "mnoc_ahb",
"bmic_smmu_ahb", "bmic_smmu_axi",
"camss_ahb_clk", "camss_top_ahb_clk",
"csi_src_clk", "csi_clk", "cphy_csid_clk",
"csiphy_timer_src_clk", "csiphy_timer_clk",
"camss_ispif_ahb_clk", "csiphy_clk_src", "csiphy_clk",
"csiphy_ahb2crif";
qcom,clock-rates = <0 0 0 0 0 0 310000000 0 0 269333333 0
0 200000000 0 0>;
status = "ok";
};
qcom,csiphy@c826000 {
cell-index = <2>;
compatible = "qcom,csiphy-v3.5", "qcom,csiphy";
reg = <0xc826000 0x1000>,
<0xca00128 0x4>;
reg-names = "csiphy", "csiphy_clk_mux";
interrupts = <0 80 0>;
interrupt-names = "csiphy";
gdscr-supply = <&gdsc_camss_top>;
bimc_smmu-supply = <&gdsc_bimc_smmu>;
qcom,cam-vreg-name = "gdscr", "bimc_smmu";
clocks = <&clock_rpmcc RPM_SMD_MMSSNOC_AXI_CLK>,
<&clock_mmss MMSS_MNOC_AHB_CLK>,
<&clock_mmss MMSS_BIMC_SMMU_AHB_CLK>,
<&clock_mmss MMSS_BIMC_SMMU_AXI_CLK>,
<&clock_mmss MMSS_CAMSS_AHB_CLK>,
<&clock_mmss MMSS_CAMSS_TOP_AHB_CLK>,
<&clock_mmss CSI2_CLK_SRC>,
<&clock_mmss MMSS_CAMSS_CSI2_CLK>,
<&clock_mmss MMSS_CAMSS_CPHY_CSID2_CLK>,
<&clock_mmss CSI2PHYTIMER_CLK_SRC>,
<&clock_mmss MMSS_CAMSS_CSI2PHYTIMER_CLK>,
<&clock_mmss MMSS_CAMSS_ISPIF_AHB_CLK>,
<&clock_mmss CSIPHY_CLK_SRC>,
<&clock_mmss MMSS_CAMSS_CSIPHY2_CLK>,
<&clock_mmss MMSS_CSIPHY_AHB2CRIF_CLK>;
clock-names = "mmssnoc_axi", "mnoc_ahb",
"bmic_smmu_ahb", "bmic_smmu_axi",
"camss_ahb_clk", "camss_top_ahb_clk",
"csi_src_clk", "csi_clk", "cphy_csid_clk",
"csiphy_timer_src_clk", "csiphy_timer_clk",
"camss_ispif_ahb_clk", "csiphy_clk_src", "csiphy_clk",
"csiphy_ahb2crif";
qcom,clock-rates = <0 0 0 0 0 0 310000000 0 0 269333333 0
0 200000000 0 0>;
status = "ok";
};
qcom,csid@ca30000 {
cell-index = <0>;
compatible = "qcom,csid-v5.0", "qcom,csid";
reg = <0xca30000 0x400>;
reg-names = "csid";
interrupts = <0 296 0>;
interrupt-names = "csid";
qcom,csi-vdd-voltage = <1200000>;
qcom,mipi-csi-vdd-supply = <&pm660_l1>;
gdscr-supply = <&gdsc_camss_top>;
vdd_sec-supply = <&pm660l_l1>;
bimc_smmu-supply = <&gdsc_bimc_smmu>;
qcom,cam-vreg-name = "vdd_sec", "gdscr", "bimc_smmu";
qcom,cam-vreg-min-voltage = <925000 0 0>;
qcom,cam-vreg-max-voltage = <925000 0 0>;
qcom,cam-vreg-op-mode = <0 0 0>;
clocks = <&clock_rpmcc RPM_SMD_MMSSNOC_AXI_CLK>,
<&clock_mmss MMSS_MNOC_AHB_CLK>,
<&clock_mmss MMSS_BIMC_SMMU_AHB_CLK>,
<&clock_mmss MMSS_BIMC_SMMU_AXI_CLK>,
<&clock_mmss MMSS_CAMSS_AHB_CLK>,
<&clock_mmss MMSS_CAMSS_TOP_AHB_CLK>,
<&clock_mmss MMSS_CAMSS_ISPIF_AHB_CLK>,
<&clock_mmss CSI0_CLK_SRC>,
<&clock_mmss CSIPHY_CLK_SRC>,
<&clock_mmss MMSS_CAMSS_CSI0_CLK>,
<&clock_mmss MMSS_CAMSS_CSI0_AHB_CLK>,
<&clock_mmss MMSS_CAMSS_CSI0RDI_CLK>,
<&clock_mmss MMSS_CAMSS_CSI0PIX_CLK>,
<&clock_mmss MMSS_CAMSS_CPHY_CSID0_CLK>;
clock-names = "mmssnoc_axi", "mnoc_ahb",
"bmic_smmu_ahb", "bmic_smmu_axi",
"camss_ahb_clk", "camss_top_ahb_clk",
"ispif_ahb_clk", "csi_src_clk", "csiphy_clk_src",
"csi_clk", "csi_ahb_clk", "csi_rdi_clk",
"csi_pix_clk", "cphy_csid_clk";
qcom,clock-rates = <0 0 0 0 0 0 0 310000000 200000000
0 0 0 0 0>;
status = "ok";
};
qcom,csid@ca30400 {
cell-index = <1>;
compatible = "qcom,csid-v5.0", "qcom,csid";
reg = <0xca30400 0x400>;
reg-names = "csid";
interrupts = <0 297 0>;
interrupt-names = "csid";
qcom,csi-vdd-voltage = <1200000>;
qcom,mipi-csi-vdd-supply = <&pm660_l1>;
gdscr-supply = <&gdsc_camss_top>;
vdd_sec-supply = <&pm660l_l1>;
bimc_smmu-supply = <&gdsc_bimc_smmu>;
qcom,cam-vreg-name = "vdd_sec", "gdscr", "bimc_smmu";
qcom,cam-vreg-min-voltage = <925000 0 0>;
qcom,cam-vreg-max-voltage = <925000 0 0>;
qcom,cam-vreg-op-mode = <0 0 0>;
clocks = <&clock_rpmcc RPM_SMD_MMSSNOC_AXI_CLK>,
<&clock_mmss MMSS_MNOC_AHB_CLK>,
<&clock_mmss MMSS_BIMC_SMMU_AHB_CLK>,
<&clock_mmss MMSS_BIMC_SMMU_AXI_CLK>,
<&clock_mmss MMSS_CAMSS_AHB_CLK>,
<&clock_mmss MMSS_CAMSS_TOP_AHB_CLK>,
<&clock_mmss MMSS_CAMSS_ISPIF_AHB_CLK>,
<&clock_mmss CSI1_CLK_SRC>,
<&clock_mmss CSIPHY_CLK_SRC>,
<&clock_mmss MMSS_CAMSS_CSI1_CLK>,
<&clock_mmss MMSS_CAMSS_CSI1_AHB_CLK>,
<&clock_mmss MMSS_CAMSS_CSI1RDI_CLK>,
<&clock_mmss MMSS_CAMSS_CSI1PIX_CLK>,
<&clock_mmss MMSS_CAMSS_CPHY_CSID1_CLK>;
clock-names = "mmssnoc_axi", "mnoc_ahb",
"bmic_smmu_ahb", "bmic_smmu_axi",
"camss_ahb_clk", "camss_top_ahb_clk",
"ispif_ahb_clk", "csi_src_clk", "csiphy_clk_src",
"csi_clk", "csi_ahb_clk", "csi_rdi_clk",
"csi_pix_clk", "cphy_csid_clk";
qcom,clock-rates = <0 0 0 0 0 0 0 310000000 200000000
0 0 0 0 0>;
status = "ok";
};
qcom,csid@ca30800 {
cell-index = <2>;
compatible = "qcom,csid-v5.0", "qcom,csid";
reg = <0xca30800 0x400>;
reg-names = "csid";
interrupts = <0 298 0>;
interrupt-names = "csid";
qcom,csi-vdd-voltage = <1200000>;
qcom,mipi-csi-vdd-supply = <&pm660_l1>;
gdscr-supply = <&gdsc_camss_top>;
vdd_sec-supply = <&pm660l_l1>;
bimc_smmu-supply = <&gdsc_bimc_smmu>;
qcom,cam-vreg-name = "vdd_sec", "gdscr", "bimc_smmu";
qcom,cam-vreg-min-voltage = <925000 0 0>;
qcom,cam-vreg-max-voltage = <925000 0 0>;
qcom,cam-vreg-op-mode = <0 0 0>;
clocks = <&clock_rpmcc RPM_SMD_MMSSNOC_AXI_CLK>,
<&clock_mmss MMSS_MNOC_AHB_CLK>,
<&clock_mmss MMSS_BIMC_SMMU_AHB_CLK>,
<&clock_mmss MMSS_BIMC_SMMU_AXI_CLK>,
<&clock_mmss MMSS_CAMSS_AHB_CLK>,
<&clock_mmss MMSS_CAMSS_TOP_AHB_CLK>,
<&clock_mmss MMSS_CAMSS_ISPIF_AHB_CLK>,
<&clock_mmss CSI2_CLK_SRC>,
<&clock_mmss CSIPHY_CLK_SRC>,
<&clock_mmss MMSS_CAMSS_CSI2_CLK>,
<&clock_mmss MMSS_CAMSS_CSI2_AHB_CLK>,
<&clock_mmss MMSS_CAMSS_CSI2RDI_CLK>,
<&clock_mmss MMSS_CAMSS_CSI2PIX_CLK>,
<&clock_mmss MMSS_CAMSS_CPHY_CSID2_CLK>;
clock-names = "mmssnoc_axi", "mnoc_ahb",
"bmic_smmu_ahb", "bmic_smmu_axi",
"camss_ahb_clk", "camss_top_ahb_clk",
"ispif_ahb_clk", "csi_src_clk", "csiphy_clk_src",
"csi_clk", "csi_ahb_clk", "csi_rdi_clk",
"csi_pix_clk", "cphy_csid_clk";
qcom,clock-rates = <0 0 0 0 0 0 0 310000000 200000000
0 0 0 0 0>;
status = "ok";
};
qcom,csid@ca30c00 {
cell-index = <3>;
compatible = "qcom,csid-v5.0", "qcom,csid";
reg = <0xca30c00 0x400>;
reg-names = "csid";
interrupts = <0 299 0>;
interrupt-names = "csid";
qcom,csi-vdd-voltage = <1200000>;
qcom,mipi-csi-vdd-supply = <&pm660_l1>;
gdscr-supply = <&gdsc_camss_top>;
vdd_sec-supply = <&pm660l_l1>;
bimc_smmu-supply = <&gdsc_bimc_smmu>;
qcom,cam-vreg-name = "vdd_sec", "gdscr", "bimc_smmu";
qcom,cam-vreg-min-voltage = <925000 0 0>;
qcom,cam-vreg-max-voltage = <925000 0 0>;
qcom,cam-vreg-op-mode = <0 0 0>;
clocks = <&clock_rpmcc RPM_SMD_MMSSNOC_AXI_CLK>,
<&clock_mmss MMSS_MNOC_AHB_CLK>,
<&clock_mmss MMSS_BIMC_SMMU_AHB_CLK>,
<&clock_mmss MMSS_BIMC_SMMU_AXI_CLK>,
<&clock_mmss MMSS_CAMSS_AHB_CLK>,
<&clock_mmss MMSS_CAMSS_TOP_AHB_CLK>,
<&clock_mmss MMSS_CAMSS_ISPIF_AHB_CLK>,
<&clock_mmss CSI3_CLK_SRC>,
<&clock_mmss CSIPHY_CLK_SRC>,
<&clock_mmss MMSS_CAMSS_CSI3_CLK>,
<&clock_mmss MMSS_CAMSS_CSI3_AHB_CLK>,
<&clock_mmss MMSS_CAMSS_CSI3RDI_CLK>,
<&clock_mmss MMSS_CAMSS_CSI3PIX_CLK>,
<&clock_mmss MMSS_CAMSS_CPHY_CSID3_CLK>;
clock-names = "mmssnoc_axi", "mnoc_ahb",
"bmic_smmu_ahb", "bmic_smmu_axi",
"camss_ahb_clk", "camss_top_ahb_clk",
"ispif_ahb_clk", "csi_src_clk", "csiphy_clk_src",
"csi_clk", "csi_ahb_clk", "csi_rdi_clk",
"csi_pix_clk", "cphy_csid_clk";
qcom,clock-rates = <0 0 0 0 0 0 0 310000000 200000000
0 0 0 0 0>;
status = "ok";
};
qcom,cam_smmu {
compatible = "qcom,msm-cam-smmu";
status = "ok";
msm_cam_smmu_cb1 {
compatible = "qcom,msm-cam-smmu-cb";
iommus = <&mmss_bimc_smmu 0xc00>,
<&mmss_bimc_smmu 0xc01>,
<&mmss_bimc_smmu 0xc02>,
<&mmss_bimc_smmu 0xc03>;
label = "vfe";
qcom,scratch-buf-support;
};
msm_cam_smmu_cb2 {
compatible = "qcom,msm-cam-smmu-cb";
iommus = <&mmss_bimc_smmu 0xa00>;
label = "cpp";
};
msm_cam_smmu_cb4 {
compatible = "qcom,msm-cam-smmu-cb";
iommus = <&mmss_bimc_smmu 0x800>;
label = "jpeg_enc0";
};
msm_cam_smmu_cb5 {
compatible = "qcom,msm-cam-smmu-cb";
iommus = <&mmss_bimc_smmu 0x801>;
label = "jpeg_dma";
};
};
qcom,cpp@ca04000 {
cell-index = <0>;
compatible = "qcom,cpp";
reg = <0xca04000 0x100>,
<0xca80000 0x3000>,
<0xca18000 0x3000>,
<0xc8c36D4 0x4>;
reg-names = "cpp", "cpp_vbif", "cpp_hw", "camss_cpp";
interrupts = <0 294 0>;
interrupt-names = "cpp";
smmu-vdd-supply = <&gdsc_bimc_smmu>;
camss-vdd-supply = <&gdsc_camss_top>;
vdd-supply = <&gdsc_cpp>;
qcom,vdd-names = "smmu-vdd", "camss-vdd", "vdd";
clocks = <&clock_rpmcc RPM_SMD_MMSSNOC_AXI_CLK>,
<&clock_mmss MMSS_MNOC_AHB_CLK>,
<&clock_mmss MMSS_CAMSS_AHB_CLK>,
<&clock_mmss MMSS_CAMSS_TOP_AHB_CLK>,
<&clock_mmss CPP_CLK_SRC>,
<&clock_mmss MMSS_CAMSS_CPP_CLK>,
<&clock_mmss MMSS_CAMSS_CPP_AHB_CLK>,
<&clock_mmss MMSS_CAMSS_CPP_AXI_CLK>,
<&clock_mmss MMSS_CAMSS_MICRO_AHB_CLK>,
<&clock_mmss MMSS_BIMC_SMMU_AXI_CLK>,
<&clock_mmss MMSS_CAMSS_CPP_VBIF_AHB_CLK>;
clock-names = "mmssnoc_axi_clk",
"mnoc_ahb_clk",
"camss_ahb_clk", "camss_top_ahb_clk",
"cpp_src_clk",
"cpp_core_clk", "camss_cpp_ahb_clk",
"camss_cpp_axi_clk", "micro_iface_clk",
"mmss_smmu_axi_clk", "cpp_vbif_ahb_clk";
qcom,clock-rates = <0 0 0 0 200000000 200000000 0 0 0 0 0>;
qcom,min-clock-rate = <200000000>;
qcom,bus-master = <1>;
qcom,vbif-qos-setting = <0x550 0x55555555>,
<0x554 0x55555555>,
<0x558 0x55555555>,
<0x55c 0x55555555>,
<0x560 0x55555555>,
<0x564 0x55555555>,
<0x568 0x55555555>,
<0x56c 0x55555555>,
<0x570 0x55555555>,
<0x574 0x55555555>,
<0x578 0x55555555>,
<0x57c 0x55555555>,
<0x580 0x55555555>,
<0x584 0x55555555>,
<0x588 0x55555555>,
<0x58c 0x55555555>;
status = "ok";
qcom,msm-bus,name = "msm_camera_cpp";
qcom,msm-bus,num-cases = <2>;
qcom,msm-bus,num-paths = <1>;
qcom,msm-bus,vectors-KBps =
<106 512 0 0>,
<106 512 0 0>;
qcom,msm-bus-vector-dyn-vote;
qcom,cpp-cx-ipeak = <&cx_ipeak_lm 2>;
resets = <&clock_mmss CAMSS_MICRO_BCR>;
reset-names = "micro_iface_reset";
qcom,src-clock-rates = <120000000 256000000 384000000
480000000 540000000 576000000>;
qcom,micro-reset;
qcom,cpp-fw-payload-info {
qcom,stripe-base = <790>;
qcom,plane-base = <715>;
qcom,stripe-size = <63>;
qcom,plane-size = <25>;
qcom,fe-ptr-off = <11>;
qcom,we-ptr-off = <23>;
qcom,ref-fe-ptr-off = <17>;
qcom,ref-we-ptr-off = <36>;
qcom,we-meta-ptr-off = <42>;
qcom,fe-mmu-pf-ptr-off = <7>;
qcom,ref-fe-mmu-pf-ptr-off = <10>;
qcom,we-mmu-pf-ptr-off = <13>;
qcom,dup-we-mmu-pf-ptr-off = <18>;
qcom,ref-we-mmu-pf-ptr-off = <23>;
qcom,set-group-buffer-len = <135>;
qcom,dup-frame-indicator-off = <70>;
};
};
qcom,ispif@ca31000 {
cell-index = <0>;
compatible = "qcom,ispif-v3.0", "qcom,ispif";
reg = <0xca31000 0xc00>,
<0xca00020 0x4>;
reg-names = "ispif", "csi_clk_mux";
interrupts = <0 309 0>;
interrupt-names = "ispif";
qcom,num-isps = <0x2>;
camss-vdd-supply = <&gdsc_camss_top>;
vfe0-vdd-supply = <&gdsc_vfe0>;
vfe1-vdd-supply = <&gdsc_vfe1>;
qcom,vdd-names = "camss-vdd", "vfe0-vdd",
"vfe1-vdd";
qcom,clock-cntl-support;
clocks = <&clock_rpmcc RPM_SMD_MMSSNOC_AXI_CLK>,
<&clock_mmss MMSS_MNOC_AHB_CLK>,
<&clock_mmss MMSS_CAMSS_AHB_CLK>,
<&clock_mmss MMSS_CAMSS_TOP_AHB_CLK>,
<&clock_mmss MMSS_CAMSS_ISPIF_AHB_CLK>,
<&clock_mmss CSI0_CLK_SRC>,
<&clock_mmss CSI1_CLK_SRC>,
<&clock_mmss CSI2_CLK_SRC>,
<&clock_mmss CSI3_CLK_SRC>,
<&clock_mmss MMSS_CAMSS_CSI0RDI_CLK>,
<&clock_mmss MMSS_CAMSS_CSI1RDI_CLK>,
<&clock_mmss MMSS_CAMSS_CSI2RDI_CLK>,
<&clock_mmss MMSS_CAMSS_CSI3RDI_CLK>,
<&clock_mmss MMSS_CAMSS_CSI0PIX_CLK>,
<&clock_mmss MMSS_CAMSS_CSI1PIX_CLK>,
<&clock_mmss MMSS_CAMSS_CSI2PIX_CLK>,
<&clock_mmss MMSS_CAMSS_CSI3PIX_CLK>,
<&clock_mmss MMSS_CAMSS_CSI0_CLK>,
<&clock_mmss MMSS_CAMSS_CSI1_CLK>,
<&clock_mmss MMSS_CAMSS_CSI2_CLK>,
<&clock_mmss MMSS_CAMSS_CSI3_CLK>,
<&clock_mmss VFE0_CLK_SRC>,
<&clock_mmss MMSS_CAMSS_VFE0_CLK>,
<&clock_mmss MMSS_CAMSS_CSI_VFE0_CLK>,
<&clock_mmss VFE1_CLK_SRC>,
<&clock_mmss MMSS_CAMSS_VFE1_CLK>,
<&clock_mmss MMSS_CAMSS_CSI_VFE1_CLK>;
clock-names = "mmssnoc_axi", "mnoc_ahb_clk",
"camss_ahb_clk",
"camss_top_ahb_clk", "ispif_ahb_clk",
"csi0_src_clk", "csi1_src_clk",
"csi2_src_clk", "csi3_src_clk",
"csi0_rdi_clk", "csi1_rdi_clk",
"csi2_rdi_clk", "csi3_rdi_clk",
"csi0_pix_clk", "csi1_pix_clk",
"csi2_pix_clk", "csi3_pix_clk",
"camss_csi0_clk", "camss_csi1_clk",
"camss_csi2_clk", "camss_csi3_clk",
"vfe0_clk_src",
"camss_vfe_vfe0_clk",
"camss_csi_vfe0_clk",
"vfe1_clk_src",
"camss_vfe_vfe1_clk",
"camss_csi_vfe1_clk";
qcom,clock-rates = <0 0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0
0 0 0>;
qcom,clock-control = "INIT_RATE", "NO_SET_RATE",
"NO_SET_RATE", "NO_SET_RATE",
"NO_SET_RATE",
"INIT_RATE", "INIT_RATE",
"INIT_RATE", "INIT_RATE",
"NO_SET_RATE", "NO_SET_RATE",
"NO_SET_RATE", "NO_SET_RATE",
"NO_SET_RATE", "NO_SET_RATE",
"NO_SET_RATE", "NO_SET_RATE",
"NO_SET_RATE", "NO_SET_RATE",
"NO_SET_RATE", "NO_SET_RATE",
"INIT_RATE",
"NO_SET_RATE", "NO_SET_RATE",
"INIT_RATE",
"NO_SET_RATE", "NO_SET_RATE";
status = "ok";
};
vfe0: qcom,vfe0@ca10000 {
cell-index = <0>;
compatible = "qcom,vfe48";
reg = <0xca10000 0x4000>,
<0xca40000 0x3000>;
reg-names = "vfe", "vfe_vbif";
interrupts = <0 314 0>;
interrupt-names = "vfe";
vdd-supply = <&gdsc_vfe0>;
camss-vdd-supply = <&gdsc_camss_top>;
smmu-vdd-supply = <&gdsc_bimc_smmu>;
qcom,vdd-names = "vdd", "camss-vdd", "smmu-vdd";
clocks = <&clock_mmss MMSS_THROTTLE_CAMSS_AXI_CLK>,
<&clock_rpmcc RPM_SMD_MMSSNOC_AXI_CLK>,
<&clock_mmss MMSS_MNOC_AHB_CLK>,
<&clock_mmss MMSS_BIMC_SMMU_AHB_CLK>,
<&clock_mmss MMSS_BIMC_SMMU_AXI_CLK>,
<&clock_mmss MMSS_CAMSS_AHB_CLK>,
<&clock_mmss MMSS_CAMSS_TOP_AHB_CLK>,
<&clock_mmss VFE0_CLK_SRC>,
<&clock_mmss MMSS_CAMSS_VFE0_CLK>,
<&clock_mmss MMSS_CAMSS_VFE0_STREAM_CLK>,
<&clock_mmss MMSS_CAMSS_VFE0_AHB_CLK>,
<&clock_mmss MMSS_CAMSS_VFE_VBIF_AHB_CLK>,
<&clock_mmss MMSS_CAMSS_VFE_VBIF_AXI_CLK>,
<&clock_mmss MMSS_CAMSS_CSI_VFE0_CLK>;
clock-names = "mmss_throttle_camss_axi_clk", "mmssnoc_axi",
"mnoc_ahb_clk", "bimc_smmu_ahb_clk",
"bimc_smmu_axi_clk", "camss_ahb_clk",
"camss_top_ahb_clk", "vfe_clk_src",
"camss_vfe_clk", "camss_vfe_stream_clk",
"camss_vfe_ahb_clk", "camss_vfe_vbif_ahb_clk",
"camss_vfe_vbif_axi_clk",
"camss_csi_vfe_clk";
qcom,clock-rates = <0 0 0 0 0 0 0 404000000 0 0 0 0 0 0
0 0 0 0 0 0 0 480000000 0 0 0 0 0 0
0 0 0 0 0 0 0 576000000 0 0 0 0 0 0>;
status = "ok";
qos-entries = <8>;
qos-regs = <0x404 0x408 0x40c 0x410 0x414 0x418
0x41c 0x420>;
qos-settings = <0xaaa5aaa5
0xaaa5aaa5
0xaaa5aaa5
0xaa55aaa5
0xaa55aa55
0xaa55aa55
0xaa55aa55
0x0005aa55>;
vbif-entries = <3>;
vbif-regs = <0x124 0xac 0xd0>;
vbif-settings = <0x3 0x40 0x1010>;
ds-entries = <17>;
ds-regs = <0x424 0x428 0x42c 0x430 0x434
0x438 0x43c 0x440 0x444 0x448 0x44c
0x450 0x454 0x458 0x45c 0x460 0x464>;
ds-settings = <0xcccc1111
0xcccc1111
0xcccc1111
0xcccc1111
0xcccc1111
0xcccc1111
0xcccc1111
0xcccc1111
0xcccc1111
0xcccc1111
0xcccc1111
0xcccc1111
0xcccc1111
0xcccc1111
0xcccc1111
0xcccc1111
0x110>;
qcom,msm-bus,name = "msm_camera_vfe";
qcom,msm-bus,num-cases = <2>;
qcom,msm-bus,num-paths = <1>;
qcom,msm-bus,vectors-KBps =
<29 512 0 0>,
<29 512 100000000 100000000>;
qcom,msm-bus-vector-dyn-vote;
qcom,vfe-cx-ipeak = <&cx_ipeak_lm 2>;
};
vfe1: qcom,vfe1@ca14000 {
cell-index = <1>;
compatible = "qcom,vfe48";
reg = <0xca14000 0x4000>,
<0xca40000 0x3000>;
reg-names = "vfe", "vfe_vbif";
interrupts = <0 315 0>;
interrupt-names = "vfe";
vdd-supply = <&gdsc_vfe1>;
camss-vdd-supply = <&gdsc_camss_top>;
smmu-vdd-supply = <&gdsc_bimc_smmu>;
qcom,vdd-names = "vdd", "camss-vdd", "smmu-vdd";
clocks = <&clock_mmss MMSS_THROTTLE_CAMSS_AXI_CLK>,
<&clock_rpmcc RPM_SMD_MMSSNOC_AXI_CLK>,
<&clock_mmss MMSS_MNOC_AHB_CLK>,
<&clock_mmss MMSS_BIMC_SMMU_AHB_CLK>,
<&clock_mmss MMSS_BIMC_SMMU_AXI_CLK>,
<&clock_mmss MMSS_CAMSS_AHB_CLK>,
<&clock_mmss MMSS_CAMSS_TOP_AHB_CLK>,
<&clock_mmss VFE1_CLK_SRC>,
<&clock_mmss MMSS_CAMSS_VFE1_CLK>,
<&clock_mmss MMSS_CAMSS_VFE1_STREAM_CLK>,
<&clock_mmss MMSS_CAMSS_VFE1_AHB_CLK>,
<&clock_mmss MMSS_CAMSS_VFE_VBIF_AHB_CLK>,
<&clock_mmss MMSS_CAMSS_VFE_VBIF_AXI_CLK>,
<&clock_mmss MMSS_CAMSS_CSI_VFE1_CLK>;
clock-names = "mmss_throttle_camss_axi_clk", "mmssnoc_axi",
"mnoc_ahb_clk", "bimc_smmu_ahb_clk",
"bimc_smmu_axi_clk", "camss_ahb_clk",
"camss_top_ahb_clk", "vfe_clk_src",
"camss_vfe_clk", "camss_vfe_stream_clk",
"camss_vfe_ahb_clk", "camss_vfe_vbif_ahb_clk",
"camss_vfe_vbif_axi_clk",
"camss_csi_vfe_clk";
qcom,clock-rates = <0 0 0 0 0 0 0 404000000 0 0 0 0 0 0
0 0 0 0 0 0 0 480000000 0 0 0 0 0 0
0 0 0 0 0 0 0 576000000 0 0 0 0 0 0>;
status = "ok";
qos-entries = <8>;
qos-regs = <0x404 0x408 0x40c 0x410 0x414 0x418
0x41c 0x420>;
qos-settings = <0xaaa5aaa5
0xaaa5aaa5
0xaaa5aaa5
0xaa55aaa5
0xaa55aa55
0xaa55aa55
0xaa55aa55
0x0005aa55>;
vbif-entries = <3>;
vbif-regs = <0x124 0xac 0xd0>;
vbif-settings = <0x3 0x40 0x1010>;
ds-entries = <17>;
ds-regs = <0x424 0x428 0x42c 0x430 0x434
0x438 0x43c 0x440 0x444 0x448 0x44c
0x450 0x454 0x458 0x45c 0x460 0x464>;
ds-settings = <0xcccc1111
0xcccc1111
0xcccc1111
0xcccc1111
0xcccc1111
0xcccc1111
0xcccc1111
0xcccc1111
0xcccc1111
0xcccc1111
0xcccc1111
0xcccc1111
0xcccc1111
0xcccc1111
0xcccc1111
0xcccc1111
0x110>;
qcom,msm-bus,name = "msm_camera_vfe";
qcom,msm-bus,num-cases = <2>;
qcom,msm-bus,num-paths = <1>;
qcom,msm-bus,vectors-KBps =
<29 512 0 0>,
<29 512 100000000 100000000>;
qcom,msm-bus-vector-dyn-vote;
qcom,vfe-cx-ipeak = <&cx_ipeak_lm 2>;
};
qcom,vfe {
compatible = "qcom,vfe";
num_child = <2>;
};
cci: qcom,cci@ca0c000 {
cell-index = <0>;
compatible = "qcom,cci";
reg = <0xca0c000 0x4000>;
#address-cells = <1>;
#size-cells = <0>;
reg-names = "cci";
interrupts = <0 295 0>;
interrupt-names = "cci";
status = "ok";
mmagic-supply = <&gdsc_bimc_smmu>;
gdscr-supply = <&gdsc_camss_top>;
qcom,cam-vreg-name = "mmagic", "gdscr";
clocks = <&clock_rpmcc RPM_SMD_MMSSNOC_AXI_CLK>,
<&clock_mmss MMSS_MNOC_AHB_CLK>,
<&clock_mmss MMSS_BIMC_SMMU_AHB_CLK>,
<&clock_mmss MMSS_BIMC_SMMU_AXI_CLK>,
<&clock_mmss MMSS_CAMSS_AHB_CLK>,
<&clock_mmss MMSS_CAMSS_TOP_AHB_CLK>,
<&clock_mmss CCI_CLK_SRC>,
<&clock_mmss MMSS_CAMSS_CCI_AHB_CLK>,
<&clock_mmss MMSS_CAMSS_CCI_CLK>;
clock-names = "mmssnoc_axi", "mnoc_ahb", "smmu_ahb", "smmu_axi",
"camss_ahb_clk", "camss_top_ahb_clk",
"cci_src_clk", "cci_ahb_clk", "camss_cci_clk";
qcom,clock-rates = <0 0 0 0 0 0 19200000 0 0>,
<0 0 0 0 0 0 37500000 0 0>;
pinctrl-names = "cci_default", "cci_suspend";
pinctrl-0 = <&cci0_active &cci1_active>;
pinctrl-1 = <&cci0_suspend &cci1_suspend>;
gpios = <&tlmm 36 0>,
<&tlmm 37 0>,
<&tlmm 38 0>,
<&tlmm 39 0>;
qcom,gpio-tbl-num = <0 1 2 3>;
qcom,gpio-tbl-flags = <1 1 1 1>;
qcom,gpio-tbl-label = "CCI_I2C_DATA0",
"CCI_I2C_CLK0",
"CCI_I2C_DATA1",
"CCI_I2C_CLK1";
i2c_freq_100Khz: qcom,i2c_standard_mode {
status = "disabled";
};
i2c_freq_400Khz: qcom,i2c_fast_mode {
status = "disabled";
};
i2c_freq_custom: qcom,i2c_custom_mode {
status = "disabled";
};
i2c_freq_1Mhz: qcom,i2c_fast_plus_mode {
status = "disabled";
};
};
qcom,jpeg@ca1c000 {
cell-index = <0>;
compatible = "qcom,jpeg";
reg = <0xca1c000 0x4000>,
<0xca60000 0x3000>;
reg-names = "jpeg_hw", "jpeg_vbif";
interrupts = <0 316 0>;
interrupt-names = "jpeg";
smmu-vdd-supply = <&gdsc_bimc_smmu>;
camss-vdd-supply = <&gdsc_camss_top>;
qcom,vdd-names = "smmu-vdd", "camss-vdd";
clock-names = "mmssnoc_axi",
"mmss_mnoc_ahb_clk",
"mmss_bimc_smmu_ahb_clk",
"mmss_bimc_smmu_axi_clk",
"mmss_camss_ahb_clk",
"mmss_camss_top_ahb_clk",
"core_clk",
"mmss_camss_jpeg_ahb_clk",
"mmss_camss_jpeg_axi_clk";
clocks = <&clock_rpmcc RPM_SMD_MMSSNOC_AXI_CLK>,
<&clock_mmss MMSS_MNOC_AHB_CLK>,
<&clock_mmss MMSS_BIMC_SMMU_AHB_CLK>,
<&clock_mmss MMSS_BIMC_SMMU_AXI_CLK>,
<&clock_mmss MMSS_CAMSS_AHB_CLK>,
<&clock_mmss MMSS_CAMSS_TOP_AHB_CLK>,
<&clock_mmss MMSS_CAMSS_JPEG0_VOTE_CLK>,
<&clock_mmss MMSS_CAMSS_JPEG_AHB_CLK>,
<&clock_mmss MMSS_CAMSS_JPEG_AXI_CLK >;
qcom,clock-rates = <0 0 0 0 0 0 480000000 0 0>;
qcom,vbif-reg-settings = <0x4 0x1>;
qcom,prefetch-reg-settings = <0x30c 0x1111>,
<0x318 0x31>,
<0x324 0x31>,
<0x330 0x31>,
<0x33c 0x0>;
qcom,msm-bus,name = "msm_camera_jpeg0";
qcom,msm-bus,num-cases = <2>;
qcom,msm-bus,num-paths = <1>;
qcom,msm-bus,vectors-KBps = <62 512 0 0>,
<62 512 1200000 1200000>;
status = "ok";
};
qcom,jpeg@caa0000 {
cell-index = <3>;
compatible = "qcom,jpegdma";
reg = <0xcaa0000 0x4000>,
<0xca60000 0x3000>;
reg-names = "jpeg_hw", "jpeg_vbif";
interrupts = <0 304 0>;
interrupt-names = "jpeg";
smmu-vdd-supply = <&gdsc_bimc_smmu>;
camss-vdd-supply = <&gdsc_camss_top>;
qcom,vdd-names = "smmu-vdd", "camss-vdd";
clock-names = "mmssnoc_axi",
"mmss_mnoc_ahb_clk",
"mmss_bimc_smmu_ahb_clk",
"mmss_bimc_smmu_axi_clk",
"mmss_camss_ahb_clk",
"mmss_camss_top_ahb_clk",
"core_clk",
"mmss_camss_jpeg_ahb_clk",
"mmss_camss_jpeg_axi_clk";
clocks = <&clock_rpmcc RPM_SMD_MMSSNOC_AXI_CLK>,
<&clock_mmss MMSS_MNOC_AHB_CLK>,
<&clock_mmss MMSS_BIMC_SMMU_AHB_CLK>,
<&clock_mmss MMSS_BIMC_SMMU_AXI_CLK>,
<&clock_mmss MMSS_CAMSS_AHB_CLK>,
<&clock_mmss MMSS_CAMSS_TOP_AHB_CLK>,
<&clock_mmss MMSS_CAMSS_JPEG0_DMA_VOTE_CLK>,
<&clock_mmss MMSS_CAMSS_JPEG_AHB_CLK>,
<&clock_mmss MMSS_CAMSS_JPEG_AXI_CLK>;
qcom,clock-rates = <0 0 0 0 0 0 480000000 0 0>;
qcom,vbif-reg-settings = <0x4 0x1>;
qcom,prefetch-reg-settings = <0x18c 0x11>,
<0x1a0 0x31>,
<0x1b0 0x31>;
qcom,msm-bus,name = "msm_camera_jpeg_dma";
qcom,msm-bus,num-cases = <2>;
qcom,msm-bus,num-paths = <1>;
qcom,msm-bus,vectors-KBps = <62 512 0 0>,
<62 512 1200000 1200000>;
qcom,max-ds-factor = <128>;
status = "ok";
};
};
&i2c_freq_100Khz {
qcom,hw-thigh = <201>;
qcom,hw-tlow = <174>;
qcom,hw-tsu-sto = <204>;
qcom,hw-tsu-sta = <231>;
qcom,hw-thd-dat = <22>;
qcom,hw-thd-sta = <162>;
qcom,hw-tbuf = <227>;
qcom,hw-scl-stretch-en = <0>;
qcom,hw-trdhld = <6>;
qcom,hw-tsp = <3>;
qcom,cci-clk-src = <37500000>;
status = "ok";
};
&i2c_freq_400Khz {
qcom,hw-thigh = <38>;
qcom,hw-tlow = <56>;
qcom,hw-tsu-sto = <40>;
qcom,hw-tsu-sta = <40>;
qcom,hw-thd-dat = <22>;
qcom,hw-thd-sta = <35>;
qcom,hw-tbuf = <62>;
qcom,hw-scl-stretch-en = <0>;
qcom,hw-trdhld = <6>;
qcom,hw-tsp = <3>;
qcom,cci-clk-src = <37500000>;
status = "ok";
};
&i2c_freq_custom {
qcom,hw-thigh = <38>;
qcom,hw-tlow = <56>;
qcom,hw-tsu-sto = <40>;
qcom,hw-tsu-sta = <40>;
qcom,hw-thd-dat = <22>;
qcom,hw-thd-sta = <35>;
qcom,hw-tbuf = <62>;
qcom,hw-scl-stretch-en = <1>;
qcom,hw-trdhld = <6>;
qcom,hw-tsp = <3>;
qcom,cci-clk-src = <37500000>;
status = "ok";
};
&i2c_freq_1Mhz {
qcom,hw-thigh = <16>;
qcom,hw-tlow = <22>;
qcom,hw-tsu-sto = <17>;
qcom,hw-tsu-sta = <18>;
qcom,hw-thd-dat = <16>;
qcom,hw-thd-sta = <15>;
qcom,hw-tbuf = <24>;
qcom,hw-scl-stretch-en = <0>;
qcom,hw-trdhld = <3>;
qcom,hw-tsp = <3>;
qcom,cci-clk-src = <37500000>;
status = "ok";
};

View File

@ -0,0 +1,37 @@
/* Copyright (c) 2016-2017, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
/dts-v1/;
#include "sdm660.dtsi"
#include "sdm660-cdp.dtsi"
#include "sdm660-external-codec.dtsi"
/ {
model = "Qualcomm Technologies, Inc. SDM 660 PM660 + PM660L CDP";
compatible = "qcom,sdm660-cdp", "qcom,sdm660", "qcom,cdp";
qcom,board-id = <1 0>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
<0x0001001b 0x0201011a 0x0 0x0>,
<0x0001001b 0x0102001a 0x0 0x0>;
};
&tavil_snd {
qcom,msm-mbhc-hphl-swh = <0>;
qcom,msm-mbhc-gnd-swh = <0>;
};
&tasha_snd {
qcom,msm-mbhc-hphl-swh = <0>;
qcom,msm-mbhc-gnd-swh = <0>;
};

View File

@ -0,0 +1,277 @@
/* Copyright (c) 2016-2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include "sdm660-pinctrl.dtsi"
#include "sdm660-camera-sensor-cdp.dtsi"
/ {
};
&uartblsp1dm1 {
status = "ok";
pinctrl-names = "default";
pinctrl-0 = <&uart_console_active>;
};
&ufsphy1 {
vdda-phy-supply = <&pm660l_l1>;
vdda-pll-supply = <&pm660_l10>;
vdda-phy-max-microamp = <51400>;
vdda-pll-max-microamp = <14200>;
status = "ok";
};
&ufs1 {
vdd-hba-supply = <&gdsc_ufs>;
vdd-hba-fixed-regulator;
vcc-supply = <&pm660l_l4>;
vccq2-supply = <&pm660_l8>;
vcc-max-microamp = <500000>;
vccq2-max-microamp = <600000>;
qcom,vddp-ref-clk-supply = <&pm660_l1>;
qcom,vddp-ref-clk-max-microamp = <100>;
status = "ok";
};
&pm660_gpios {
/* GPIO 4 (NFC_CLK_REQ) */
gpio@c300 {
qcom,mode = <0>;
qcom,vin-sel = <1>;
qcom,src-sel = <0>;
qcom,master-en = <1>;
status = "okay";
};
};
&i2c_6 { /* BLSP1 QUP6 (NFC) */
status = "okay";
nq@28 {
compatible = "qcom,nq-nci";
reg = <0x28>;
qcom,nq-irq = <&tlmm 28 0x00>;
qcom,nq-ven = <&tlmm 29 0x00>;
qcom,nq-firm = <&tlmm 30 0x00>;
qcom,nq-clkreq = <&pm660_gpios 4 0x00>;
qcom,nq-esepwr = <&tlmm 31 0x00>;
interrupt-parent = <&tlmm>;
qcom,clk-src = "BBCLK3";
interrupts = <28 0>;
interrupt-names = "nfc_irq";
pinctrl-names = "nfc_active", "nfc_suspend";
pinctrl-0 = <&nfc_int_active &nfc_enable_active>;
pinctrl-1 = <&nfc_int_suspend &nfc_enable_suspend>;
clocks = <&clock_rpmcc RPM_SMD_LN_BB_CLK3_PIN>;
clock-names = "ref_clk";
};
};
&mdss_mdp {
qcom,mdss-pref-prim-intf = "dsi";
};
&mdss_dsi {
hw-config = "split_dsi";
};
&mdss_dsi0 {
qcom,dsi-pref-prim-pan = <&dsi_dual_nt35597_truly_video>;
pinctrl-names = "mdss_default", "mdss_sleep";
pinctrl-0 = <&mdss_dsi_active &mdss_te_active>;
pinctrl-1 = <&mdss_dsi_suspend &mdss_te_suspend>;
qcom,platform-reset-gpio = <&tlmm 53 0>;
qcom,platform-te-gpio = <&tlmm 59 0>;
};
&mdss_dsi1 {
qcom,dsi-pref-prim-pan = <&dsi_dual_nt35597_truly_video>;
pinctrl-names = "mdss_default", "mdss_sleep";
pinctrl-0 = <&mdss_dsi_active &mdss_te_active>;
pinctrl-1 = <&mdss_dsi_suspend &mdss_te_suspend>;
qcom,platform-reset-gpio = <&tlmm 53 0>;
qcom,platform-te-gpio = <&tlmm 59 0>;
};
&pm660l_wled {
qcom,led-strings-list = [01 02];
};
&dsi_dual_nt35597_truly_video {
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <4095>;
qcom,mdss-dsi-mode-sel-gpio-state = "dual_port";
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
};
&dsi_dual_nt35597_truly_cmd {
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <4095>;
qcom,mdss-dsi-mode-sel-gpio-state = "dual_port";
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
};
&dsi_dual_sharp_video {
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <4095>;
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
};
&dsi_nt35597_truly_dsc_video {
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <4095>;
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
};
&dsi_nt35597_truly_dsc_cmd {
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <4095>;
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
};
&dsi_dual_nt35597_video {
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_dcs";
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
};
&dsi_dual_nt35597_cmd {
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_dcs";
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
qcom,partial-update-enabled = "single_roi";
qcom,panel-roi-alignment = <720 128 720 128 1440 128>;
};
&dsi_nt35695b_truly_fhd_video {
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <4095>;
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
};
&dsi_nt35695b_truly_fhd_cmd {
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <4095>;
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
};
&dsi_truly_1080_vid {
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_dcs";
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
};
&dsi_truly_1080_cmd {
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_dcs";
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
qcom,partial-update-enabled = "single_roi";
qcom,panel-roi-alignment = <2 2 4 2 1080 2>;
};
&dsi_rm67195_amoled_fhd_cmd {
qcom,panel-supply-entries = <&dsi_panel_pwr_supply_labibb_amoled>;
};
&dsi_lgd_incell_sw49106_fhd_video {
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <4095>;
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
};
&dsi_hx8399c_truly_vid {
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <4095>;
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
};
&mdss_dp_ctrl {
pinctrl-names = "mdss_dp_active", "mdss_dp_sleep";
pinctrl-0 = <&mdss_dp_aux_active &mdss_dp_usbplug_cc_active>;
pinctrl-1 = <&mdss_dp_aux_suspend &mdss_dp_usbplug_cc_suspend>;
qcom,aux-en-gpio = <&tlmm 55 0>;
qcom,aux-sel-gpio = <&tlmm 56 0>;
qcom,usbplug-cc-gpio = <&tlmm 58 0>;
};
&sdhc_1 {
/* device core power supply */
vdd-supply = <&pm660l_l4>;
qcom,vdd-voltage-level = <2950000 2950000>;
qcom,vdd-current-level = <200 570000>;
/* device communication power supply */
vdd-io-supply = <&pm660_l8>;
qcom,vdd-io-always-on;
qcom,vdd-io-lpm-sup;
qcom,vdd-io-voltage-level = <1800000 1800000>;
qcom,vdd-io-current-level = <200 325000>;
pinctrl-names = "active", "sleep";
pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on &sdc1_rclk_on>;
pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off &sdc1_rclk_off>;
qcom,clk-rates = <400000 20000000 25000000 50000000 100000000 192000000
384000000>;
qcom,nonremovable;
qcom,bus-speed-mode = "HS400_1p8v", "HS200_1p8v", "DDR_1p8v";
status = "ok";
};
&sdhc_2 {
/* device core power supply */
vdd-supply = <&pm660l_l5>;
qcom,vdd-voltage-level = <2950000 2950000>;
qcom,vdd-current-level = <15000 800000>;
/* device communication power supply */
vdd-io-supply = <&pm660l_l2>;
qcom,vdd-io-voltage-level = <1800000 2950000>;
qcom,vdd-io-current-level = <200 22000>;
pinctrl-names = "active", "sleep";
pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>;
pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;
#address-cells = <0>;
interrupt-parent = <&sdhc_2>;
interrupts = <0 1 2>;
#interrupt-cells = <1>;
interrupt-map-mask = <0xffffffff>;
interrupt-map = <0 &intc 0 0 125 0
1 &intc 0 0 221 0
2 &tlmm 54 0>;
interrupt-names = "hc_irq", "pwr_irq", "status_irq";
cd-gpios = <&tlmm 54 0x1>;
qcom,clk-rates = <400000 20000000 25000000 50000000 100000000
200000000>;
qcom,bus-speed-mode = "SDR12", "SDR25", "SDR50", "DDR50", "SDR104";
status = "ok";
};
&soc {
qcom,msm-ssc-sensors {
compatible = "qcom,msm-ssc-sensors";
};
};
&pm660_charger {
qcom,batteryless-platform;
};

View File

@ -0,0 +1,679 @@
/* Copyright (c) 2016-2017, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
&soc {
ufsphy1: ufsphy@1da7000 {
compatible = "qcom,ufs-phy-qmp-v3-660";
reg = <0x1da7000 0xdb8>;
reg-names = "phy_mem";
#phy-cells = <0>;
clock-names = "ref_clk_src",
"ref_clk",
"ref_aux_clk";
clocks = <&clock_rpmcc RPM_SMD_LN_BB_CLK1>,
<&clock_gcc GCC_UFS_CLKREF_CLK>,
<&clock_gcc GCC_UFS_PHY_AUX_CLK>;
status = "disabled";
};
ufs_ice: ufsice@1db0000 {
compatible = "qcom,ice";
reg = <0x1db0000 0x8000>;
qcom,enable-ice-clk;
clock-names = "ufs_core_clk", "bus_clk",
"iface_clk", "ice_core_clk";
clocks = <&clock_gcc GCC_UFS_AXI_CLK>,
<&clock_gcc GCC_UFS_CLKREF_CLK>,
<&clock_gcc GCC_UFS_AHB_CLK>,
<&clock_gcc GCC_UFS_ICE_CORE_CLK>;
qcom,op-freq-hz = <0>, <0>, <0>, <300000000>;
vdd-hba-supply = <&gdsc_ufs>;
qcom,msm-bus,name = "ufs_ice_noc";
qcom,msm-bus,num-cases = <2>;
qcom,msm-bus,num-paths = <1>;
qcom,msm-bus,vectors-KBps =
<1 650 0 0>, /* No vote */
<1 650 1000 0>; /* Max. bandwidth */
qcom,bus-vector-names = "MIN",
"MAX";
qcom,instance-type = "ufs";
};
sdcc1_ice: sdcc1ice@c0c8000 {
compatible = "qcom,ice";
reg = <0xc0c8000 0x8000>;
qcom,enable-ice-clk;
clock-names = "ice_core_clk_src", "ice_core_clk",
"bus_clk", "iface_clk";
clocks = <&clock_gcc SDCC1_ICE_CORE_CLK_SRC>,
<&clock_gcc GCC_SDCC1_ICE_CORE_CLK>,
<&clock_gcc GCC_SDCC1_APPS_CLK>,
<&clock_gcc GCC_SDCC1_AHB_CLK>;
qcom,op-freq-hz = <300000000>, <0>, <0>, <0>;
qcom,msm-bus,name = "sdcc_ice_noc";
qcom,msm-bus,num-cases = <2>;
qcom,msm-bus,num-paths = <1>;
qcom,msm-bus,vectors-KBps =
<78 512 0 0>, /* No vote */
<78 512 1000 0>; /* Max. bandwidth */
qcom,bus-vector-names = "MIN",
"MAX";
qcom,instance-type = "sdcc";
};
ufs1: ufshc@1da4000 {
compatible = "qcom,ufshc";
reg = <0x1da4000 0x3000>;
interrupts = <0 265 0>;
phys = <&ufsphy1>;
phy-names = "ufsphy";
ufs-qcom-crypto = <&ufs_ice>;
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";
clocks =
<&clock_gcc GCC_UFS_AXI_CLK>,
<&clock_gcc GCC_AGGRE2_UFS_AXI_CLK>,
<&clock_gcc GCC_UFS_AHB_CLK>,
<&clock_gcc GCC_UFS_UNIPRO_CORE_CLK>,
<&clock_gcc GCC_UFS_ICE_CORE_CLK>,
<&clock_rpmcc RPM_SMD_LN_BB_CLK1>,
<&clock_gcc GCC_UFS_TX_SYMBOL_0_CLK>,
<&clock_gcc GCC_UFS_RX_SYMBOL_0_CLK>;
freq-table-hz =
<50000000 200000000>,
<0 0>,
<0 0>,
<37500000 150000000>,
<75000000 300000000>,
<0 0>,
<0 0>,
<0 0>;
lanes-per-direction = <1>;
non-removable;
qcom,msm-bus,name = "ufs1";
qcom,msm-bus,num-cases = <12>;
qcom,msm-bus,num-paths = <2>;
qcom,msm-bus,vectors-KBps =
<95 512 0 0>, <1 650 0 0>, /* No vote */
<95 512 922 0>, <1 650 1000 0>, /* PWM G1 */
<95 512 1844 0>, <1 650 1000 0>, /* PWM G2 */
<95 512 3688 0>, <1 650 1000 0>, /* PWM G3 */
<95 512 7376 0>, <1 650 1000 0>, /* PWM G4 */
<95 512 127796 0>, <1 650 1000 0>, /* HS G1 RA */
<95 512 255591 0>, <1 650 1000 0>, /* HS G2 RA */
<95 512 2097152 0>, <1 650 102400 0>, /* HS G3 RA */
<95 512 149422 0>, <1 650 1000 0>, /* HS G1 RB */
<95 512 298189 0>, <1 650 1000 0>, /* HS G2 RB */
<95 512 2097152 0>, <1 650 102400 0>, /* HS G3 RB */
<95 512 7643136 0>, <1 650 307200 0>; /* Max. bandwidth */
qcom,bus-vector-names = "MIN",
"PWM_G1_L1", "PWM_G2_L1", "PWM_G3_L1", "PWM_G4_L1",
"HS_RA_G1_L1", "HS_RA_G2_L1", "HS_RA_G3_L1",
"HS_RB_G1_L1", "HS_RB_G2_L1", "HS_RB_G3_L1",
"MAX";
qcom,pm-qos-cpu-groups = <0x0F 0xF0>;
qcom,pm-qos-cpu-group-latency-us = <26 26>;
qcom,pm-qos-default-cpu = <0>;
resets = <&clock_gcc GCC_UFS_BCR>;
reset-names = "core_reset";
status = "disabled";
};
usb3: ssusb@a800000 {
compatible = "qcom,dwc-usb3-msm";
reg = <0x0a800000 0xfc100>,
<0x0c016000 0x400>;
reg-names = "core_base",
"ahb2phy_base";
#address-cells = <1>;
#size-cells = <1>;
ranges;
interrupts = <0 347 0>, <0 243 0>, <0 180 0>;
interrupt-names = "hs_phy_irq", "ss_phy_irq", "pwr_event_irq";
USB3_GDSC-supply = <&gdsc_usb30>;
dpdm-supply = <&qusb_phy0>;
qcom,msm-bus,name = "usb3";
qcom,msm-bus,num-cases = <2>;
qcom,msm-bus,num-paths = <1>;
qcom,msm-bus,vectors-KBps =
<61 512 0 0>,
<61 512 240000 800000>;
qcom,dwc-usb3-msm-tx-fifo-size = <21288>;
extcon = <&pm660_pdphy>;
qcom,pm-qos-latency = <41>; /* CPU-CLUSTER-WFI-LVL latency +1 */
clocks = <&clock_gcc GCC_USB30_MASTER_CLK>,
<&clock_gcc GCC_CFG_NOC_USB3_AXI_CLK>,
<&clock_gcc GCC_AGGRE2_USB3_AXI_CLK>,
<&clock_rpmcc AGGR2_NOC_USB_CLK>,
<&clock_gcc GCC_USB30_MOCK_UTMI_CLK>,
<&clock_gcc GCC_USB30_SLEEP_CLK>,
<&clock_gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>,
<&clock_rpmcc CXO_DWC3_CLK>;
clock-names = "core_clk", "iface_clk", "bus_aggr_clk",
"noc_aggr_clk", "utmi_clk", "sleep_clk",
"cfg_ahb_clk", "xo";
qcom,core-clk-rate = <133330000>;
qcom,core-clk-rate-hs = <66666667>;
resets = <&clock_gcc GCC_USB_30_BCR>;
reset-names = "core_reset";
dwc3@a800000 {
compatible = "snps,dwc3";
reg = <0x0a800000 0xc8d0>;
interrupt-parent = <&intc>;
interrupts = <0 131 0>;
usb-phy = <&qusb_phy0>, <&ssphy>;
tx-fifo-resize;
snps,usb3-u1u2-disable;
snps,disable-clk-gating;
snps,has-lpm-erratum;
snps,is-utmi-l1-suspend;
snps,hird-threshold = /bits/ 8 <0x0>;
dr_mode = "otg";
linux,sysdev_is_parent;
snps,dis_u2_susphy_quirk;
snps,dis_enblslpm_quirk;
snps,usb3_lpm_capable;
usb-core-id = <0>;
maximum-speed = "super-speed";
};
qcom,usbbam@a904000 {
compatible = "qcom,usb-bam-msm";
reg = <0x0a904000 0x17000>;
interrupt-parent = <&intc>;
interrupts = <0 132 0>;
qcom,bam-type = <0>;
qcom,usb-bam-fifo-baseaddr = <0x146bb000>;
qcom,usb-bam-num-pipes = <8>;
qcom,ignore-core-reset-ack;
qcom,disable-clk-gating;
qcom,usb-bam-override-threshold = <0x4001>;
qcom,usb-bam-max-mbps-highspeed = <400>;
qcom,usb-bam-max-mbps-superspeed = <3600>;
qcom,reset-bam-on-connect;
qcom,pipe0 {
label = "ssusb-ipa-out-0";
qcom,usb-bam-mem-type = <1>;
qcom,dir = <0>;
qcom,pipe-num = <0>;
qcom,peer-bam = <1>;
qcom,src-bam-pipe-index = <1>;
qcom,data-fifo-size = <0x8000>;
qcom,descriptor-fifo-size = <0x2000>;
};
qcom,pipe1 {
label = "ssusb-ipa-in-0";
qcom,usb-bam-mem-type = <1>;
qcom,dir = <1>;
qcom,pipe-num = <0>;
qcom,peer-bam = <1>;
qcom,dst-bam-pipe-index = <0>;
qcom,data-fifo-size = <0x8000>;
qcom,descriptor-fifo-size = <0x2000>;
};
qcom,pipe2 {
label = "ssusb-qdss-in-0";
qcom,usb-bam-mem-type = <2>;
qcom,dir = <1>;
qcom,pipe-num = <0>;
qcom,peer-bam = <0>;
qcom,peer-bam-physical-address = <0x06064000>;
qcom,src-bam-pipe-index = <0>;
qcom,dst-bam-pipe-index = <3>;
qcom,data-fifo-offset = <0x0>;
qcom,data-fifo-size = <0x1800>;
qcom,descriptor-fifo-offset = <0x1800>;
qcom,descriptor-fifo-size = <0x800>;
};
qcom,pipe3 {
label = "ssusb-dpl-ipa-in-1";
qcom,usb-bam-mem-type = <1>;
qcom,dir = <1>;
qcom,pipe-num = <1>;
qcom,peer-bam = <1>;
qcom,dst-bam-pipe-index = <2>;
qcom,data-fifo-size = <0x8000>;
qcom,descriptor-fifo-size = <0x2000>;
};
};
};
qusb_phy0: qusb@c012000 {
compatible = "qcom,qusb2phy";
reg = <0x0c012000 0x180>,
<0x01fcb24c 0x4>,
<0x00780240 0x4>,
<0x00188018 0x4>;
reg-names = "qusb_phy_base",
"tcsr_clamp_dig_n_1p8",
"tune2_efuse_addr",
"ref_clk_addr";
vdd-supply = <&pm660l_l1>;
vdda18-supply = <&pm660_l10>;
vdda33-supply = <&pm660l_l7>;
qcom,vdd-voltage-level = <0 925000 925000>;
qcom,tune2-efuse-bit-pos = <25>;
qcom,tune2-efuse-num-bits = <4>;
qcom,qusb-phy-init-seq = <0xf8 0x80
0xb3 0x84
0x83 0x88
0xc0 0x8c
0x30 0x08
0x79 0x0c
0x21 0x10
0x14 0x9c
0x9f 0x1c
0x00 0x18>;
phy_type= "utmi";
qcom,phy-clk-scheme = "cml";
qcom,major-rev = <1>;
clocks = <&clock_rpmcc RPM_SMD_LN_BB_CLK1>,
<&clock_gcc GCC_RX0_USB2_CLKREF_CLK>,
<&clock_gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>;
clock-names = "ref_clk_src", "ref_clk", "cfg_ahb_clk";
resets = <&clock_gcc GCC_QUSB2PHY_PRIM_BCR>;
reset-names = "phy_reset";
};
ssphy: ssphy@c010000 {
compatible = "qcom,usb-ssphy-qmp-v2";
reg = <0xc010000 0xe18>,
<0x01fcb244 0x4>,
<0x01fcb248 0x4>;
reg-names = "qmp_phy_base",
"vls_clamp_reg",
"tcsr_usb3_dp_phymode";
vdd-supply = <&pm660l_l1>;
core-supply = <&pm660_l10>;
qcom,vdd-voltage-level = <0 925000 925000>;
qcom,core-voltage-level = <0 1800000 1800000>;
qcom,vbus-valid-override;
qcom,qmp-phy-init-seq =
/* <reg_offset, value, delay> */
<0xac 0x14 0x00
0x34 0x08 0x00
0x174 0x30 0x00
0x3c 0x06 0x00
0xb4 0x00 0x00
0xb8 0x08 0x00
0x70 0x0f 0x00
0x19c 0x01 0x00
0x178 0x00 0x00
0xd0 0x82 0x00
0xdc 0x55 0x00
0xe0 0x55 0x00
0xe4 0x03 0x00
0x78 0x0b 0x00
0x84 0x16 0x00
0x90 0x28 0x00
0x108 0x80 0x00
0x10c 0x00 0x00
0x184 0x0a 0x00
0x4c 0x15 0x00
0x50 0x34 0x00
0x54 0x00 0x00
0xc8 0x00 0x00
0x18c 0x00 0x00
0xcc 0x00 0x00
0x128 0x00 0x00
0x0c 0x0a 0x00
0x10 0x01 0x00
0x1c 0x31 0x00
0x20 0x01 0x00
0x14 0x00 0x00
0x18 0x00 0x00
0x24 0xde 0x00
0x28 0x07 0x00
0x48 0x0f 0x00
0x194 0x06 0x00
0x100 0x80 0x00
0xa8 0x01 0x00
0x430 0x0b 0x00
0x830 0x0b 0x00
0x444 0x00 0x00
0x844 0x00 0x00
0x43c 0x00 0x00
0x83c 0x00 0x00
0x440 0x00 0x00
0x840 0x00 0x00
0x408 0x0a 0x00
0x808 0x0a 0x00
0x414 0x06 0x00
0x814 0x06 0x00
0x434 0x75 0x00
0x834 0x75 0x00
0x4d4 0x02 0x00
0x8d4 0x02 0x00
0x4d8 0x4e 0x00
0x8d8 0x4e 0x00
0x4dc 0x18 0x00
0x8dc 0x18 0x00
0x4f8 0x77 0x00
0x8f8 0x77 0x00
0x4fc 0x80 0x00
0x8fc 0x80 0x00
0x4c0 0x0a 0x00
0x8c0 0x0a 0x00
0x504 0x03 0x00
0x904 0x03 0x00
0x50c 0x16 0x00
0x90c 0x16 0x00
0x500 0x00 0x00
0x900 0x00 0x00
0x564 0x00 0x00
0x964 0x00 0x00
0x260 0x10 0x00
0x660 0x10 0x00
0x2a4 0x12 0x00
0x6a4 0x12 0x00
0x28c 0xc6 0x00
0x68c 0xc6 0x00
0x244 0x00 0x00
0x644 0x00 0x00
0x248 0x00 0x00
0x648 0x00 0x00
0xc0c 0x9f 0x00
0xc24 0x17 0x00
0xc28 0x0f 0x00
0xcc8 0x83 0x00
0xcc4 0x02 0x00
0xccc 0x09 0x00
0xcd0 0xa2 0x00
0xcd4 0x85 0x00
0xc80 0xd1 0x00
0xc84 0x1f 0x00
0xc88 0x47 0x00
0xcb8 0x75 0x00
0xcbc 0x13 0x00
0xcb0 0x86 0x00
0xca0 0x04 0x00
0xc8c 0x44 0x00
0xc70 0xe7 0x00
0xc74 0x03 0x00
0xc78 0x40 0x00
0xc7c 0x00 0x00
0xdd8 0x88 0x00
0xffffffff 0xffffffff 0x00>;
qcom,qmp-phy-reg-offset =
<0xd74 /* USB3_PHY_PCS_STATUS */
0xcd8 /* USB3_PHY_AUTONOMOUS_MODE_CTRL */
0xcdc /* USB3_PHY_LFPS_RXTERM_IRQ_CLEAR */
0xc04 /* USB3_PHY_POWER_DOWN_CONTROL */
0xc00 /* USB3_PHY_SW_RESET */
0xc08 /* USB3_PHY_START */
0xa00>; /* USB3PHY_PCS_MISC_TYPEC_CTRL */
clocks = <&clock_gcc GCC_USB3_PHY_AUX_CLK>,
<&clock_gcc GCC_USB3_PHY_PIPE_CLK>,
<&clock_gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>,
<&clock_rpmcc RPM_SMD_LN_BB_CLK1>,
<&clock_gcc GCC_USB3_CLKREF_CLK>;
clock-names = "aux_clk", "pipe_clk", "cfg_ahb_clk",
"ref_clk_src", "ref_clk";
resets = <&clock_gcc GCC_USB3_PHY_BCR>,
<&clock_gcc GCC_USB3PHY_PHY_BCR>;
reset-names = "phy_reset", "phy_phy_reset";
};
usb_audio_qmi_dev {
compatible = "qcom,usb-audio-qmi-dev";
iommus = <&lpass_q6_smmu 6>;
qcom,usb-audio-stream-id = <6>;
qcom,usb-audio-intr-num = <2>;
};
usb2s: hsusb@c200000 {
compatible = "qcom,dwc-usb3-msm";
reg = <0x0c200000 0xfc000>,
<0x0c016000 0x400>;
reg-names = "core_base",
"ahb2phy_base";
#address-cells = <1>;
#size-cells = <1>;
ranges;
interrupts = <0 348 0>, <0 144 0>;
interrupt-names = "hs_phy_irq", "pwr_event_irq";
qcom,msm-bus,name = "usb-hs";
qcom,msm-bus,num-cases = <2>;
qcom,msm-bus,num-paths = <1>;
qcom,msm-bus,vectors-KBps =
<87 512 0 0>,
<87 512 60000 800000>;
qcom,pm-qos-latency = <52>; /* CPU-CLUSTER-WFI-LVL latency +1 */
clocks = <&clock_gcc GCC_USB20_MASTER_CLK>,
<&clock_gcc GCC_CFG_NOC_USB2_AXI_CLK>,
<&clock_gcc GCC_USB20_MOCK_UTMI_CLK>,
<&clock_gcc GCC_USB20_SLEEP_CLK>,
<&clock_rpmcc CXO_DWC3_CLK>,
<&clock_gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>;
clock-names = "core_clk", "iface_clk", "utmi_clk", "sleep_clk",
"xo", "cfg_ahb_clk";
qcom,core-clk-rate = <60000000>;
resets = <&clock_gcc GCC_USB_20_BCR>;
reset-names = "core_reset";
status = "disabled";
dwc3@c200000 {
compatible = "snps,dwc3";
reg = <0x0c200000 0xc8d0>;
interrupt-parent = <&intc>;
interrupts = <0 143 0>;
usb-phy = <&qusb_phy1>, <&usb_nop_phy>;
maximum-speed = "high-speed";
snps,is-utmi-l1-suspend;
snps,hird-threshold = /bits/ 8 <0x0>;
dr_mode = "host";
};
};
qusb_phy1: qusb@c014000 {
compatible = "qcom,qusb2phy";
reg = <0x0c014000 0x180>,
<0x00188014 0x4>;
reg-names = "qusb_phy_base",
"ref_clk_addr";
vdd-supply = <&pm660l_l1>;
vdda18-supply = <&pm660_l10>;
vdda33-supply = <&pm660l_l7>;
qcom,vdd-voltage-level = <0 925000 925000>;
qcom,qusb-phy-init-seq = <0xF8 0x80
0xB3 0x84
0x83 0x88
0xC0 0x8C
0x30 0x08
0x79 0x0C
0x21 0x10
0x14 0x9C
0x9F 0x1C
0x00 0x18>;
phy_type = "utmi";
qcom,phy-clk-scheme = "cml";
qcom,major-rev = <1>;
qcom,hold-reset;
clocks = <&clock_gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>,
<&clock_gcc GCC_RX1_USB2_CLKREF_CLK>,
<&clock_rpmcc RPM_SMD_LN_BB_CLK1>;
clock-names = "cfg_ahb_clk", "ref_clk", "ref_clk_src";
resets = <&clock_gcc GCC_QUSB2PHY_SEC_BCR>;
reset-names = "phy_reset";
};
usb_nop_phy: usb_nop_phy {
compatible = "usb-nop-xceiv";
};
sdhc_1: sdhci@c0c4000 {
compatible = "qcom,sdhci-msm-v5";
reg = <0xc0c4000 0x1000>, <0xc0c5000 0x1000>;
reg-names = "hc_mem", "cmdq_mem";
interrupts = <0 110 0>, <0 112 0>;
interrupt-names = "hc_irq", "pwr_irq";
qcom,bus-width = <8>;
qcom,large-address-bus;
sdhc-msm-crypto = <&sdcc1_ice>;
qcom,devfreq,freq-table = <50000000 200000000>;
qcom,pm-qos-irq-type = "affine_irq";
qcom,pm-qos-irq-latency = <43 518>;
qcom,pm-qos-cpu-groups = <0x0f 0xf0>;
qcom,pm-qos-cmdq-latency-us = <43 518>, <40 518>;
qcom,pm-qos-legacy-latency-us = <43 518>, <40 518>;
qcom,msm-bus,name = "sdhc1";
qcom,msm-bus,num-cases = <9>;
qcom,msm-bus,num-paths = <2>;
qcom,msm-bus,vectors-KBps =
/* No vote */
<78 512 0 0>, <1 606 0 0>,
/* 400 KB/s*/
<78 512 1046 1600>,
<1 606 1600 1600>,
/* 20 MB/s */
<78 512 52286 80000>,
<1 606 80000 80000>,
/* 25 MB/s */
<78 512 65360 100000>,
<1 606 100000 100000>,
/* 50 MB/s */
<78 512 130718 200000>,
<1 606 133320 133320>,
/* 100 MB/s */
<78 512 130718 200000>,
<1 606 150000 150000>,
/* 200 MB/s */
<78 512 261438 400000>,
<1 606 300000 300000>,
/* 400 MB/s */
<78 512 261438 400000>,
<1 606 300000 300000>,
/* Max. bandwidth */
<78 512 1338562 4096000>,
<1 606 1338562 4096000>;
qcom,bus-bw-vectors-bps = <0 400000 20000000 25000000 50000000
100000000 200000000 400000000 4294967295>;
clocks = <&clock_gcc GCC_SDCC1_AHB_CLK>,
<&clock_gcc GCC_SDCC1_APPS_CLK>,
<&clock_gcc GCC_SDCC1_ICE_CORE_CLK>;
clock-names = "iface_clk", "core_clk", "ice_core_clk";
qcom,clk-rates = <400000 20000000 25000000 50000000 100000000
192000000 384000000>;
qcom,nonremovable;
qcom,bus-speed-mode = "HS400_1p8v", "HS200_1p8v", "DDR_1p8v";
qcom,ice-clk-rates = <300000000 75000000>;
qcom,scaling-lower-bus-speed-mode = "DDR52";
status = "disabled";
};
sdhc_2: sdhci@c084000 {
compatible = "qcom,sdhci-msm-v5";
reg = <0xc084000 0x1000>;
reg-names = "hc_mem";
interrupts = <0 125 0>, <0 221 0>;
interrupt-names = "hc_irq", "pwr_irq";
qcom,bus-width = <4>;
qcom,large-address-bus;
qcom,msm-bus,name = "sdhc2";
qcom,msm-bus,num-cases = <8>;
qcom,msm-bus,num-paths = <2>;
qcom,msm-bus,vectors-KBps =
/* No vote */
<81 512 0 0>, <1 608 0 0>,
/* 400 KB/s*/
<81 512 1046 1600>,
<1 608 1600 1600>,
/* 20 MB/s */
<81 512 52286 80000>,
<1 608 80000 80000>,
/* 25 MB/s */
<81 512 65360 100000>,
<1 608 100000 100000>,
/* 50 MB/s */
<81 512 130718 200000>,
<1 608 133320 133320>,
/* 100 MB/s */
<81 512 261438 200000>,
<1 608 150000 150000>,
/* 200 MB/s */
<81 512 261438 400000>,
<1 608 300000 300000>,
/* Max. bandwidth */
<81 512 1338562 4096000>,
<1 608 1338562 4096000>;
qcom,bus-bw-vectors-bps = <0 400000 20000000 25000000 50000000
100000000 200000000 4294967295>;
qcom,devfreq,freq-table = <50000000 200000000>;
qcom,pm-qos-irq-type = "affine_irq";
qcom,pm-qos-irq-latency = <43 518>;
qcom,pm-qos-cpu-groups = <0x0f 0xf0>;
qcom,pm-qos-legacy-latency-us = <43 518>, <40 518>;
clocks = <&clock_gcc GCC_SDCC2_AHB_CLK>,
<&clock_gcc GCC_SDCC2_APPS_CLK>;
clock-names = "iface_clk", "core_clk";
qcom,clk-rates = <400000 20000000 25000000 50000000 100000000
200000000>;
qcom,bus-speed-mode = "SDR12", "SDR25", "SDR50", "DDR50",
"SDR104";
status = "disabled";
};
};

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,35 @@
/* Copyright (c) 2017, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
&cdc_pdm_gpios {
status = "disabled";
};
&cdc_comp_gpios {
status = "disabled";
};
&cdc_dmic_gpios {
status = "disabled";
};
&cdc_sdw_gpios {
status = "disabled";
};
&wsa_spkr_en1 {
status = "disabled";
};
&wsa_spkr_en2 {
status = "disabled";
};

View File

@ -0,0 +1,703 @@
/* Copyright (c) 2016-2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
&soc {
pil_gpu: qcom,kgsl-hyp {
compatible = "qcom,pil-tz-generic";
qcom,pas-id = <13>;
qcom,firmware-name = "a512_zap";
};
msm_bus: qcom,kgsl-busmon{
label = "kgsl-busmon";
compatible = "qcom,kgsl-busmon";
};
gpubw: qcom,gpubw {
compatible = "qcom,devbw";
governor = "bw_vbif";
qcom,src-dst-ports = <26 512>;
/*
* active-only flag is used while registering the bus
* governor. It helps release the bus vote when the CPU
* subsystem is inactive
*/
qcom,active-only;
/*
* IB votes in MBPS, derived using below formula
* IB = (DDR frequency * DDR bus width in Bytes * Dual rate)
* Note: IB vote is per DDR channel vote
*/
qcom,bw-tbl =
< 0 /* off */ >,
< 381 /* 100 MHz */ >,
< 572 /* 150 MHz */ >,
< 762 /* 200 MHz */ >,
< 1144 /* 300 MHz */ >,
< 1571 /* 412 MHz */ >,
< 2086 /* 547 MHz */ >,
< 2597 /* 681 MHz */ >,
< 2929 /* 768 MHz */ >,
< 3879 /* 1017 MHz */ >,
< 4943 /* 1296 MHz */ >,
< 5161 /* 1353 MHz */ >,
< 5931 /* 1555 MHz */ >,
< 6881 /* 1804 MHz */ >;
};
msm_gpu: qcom,kgsl-3d0@5000000 {
label = "kgsl-3d0";
compatible = "qcom,kgsl-3d0", "qcom,kgsl-3d";
status = "ok";
reg = <0x5000000 0x40000
0x780000 0x6220>;
reg-names = "kgsl_3d0_reg_memory", "qfprom_memory";
interrupts = <0 300 0>;
interrupt-names = "kgsl_3d0_irq";
qcom,id = <0>;
qcom,chipid = <0x05010200>;
qcom,initial-pwrlevel = <6>;
/* <HZ/12> */
qcom,idle-timeout = <80>;
qcom,highest-bank-bit = <14>;
/* size in bytes */
qcom,snapshot-size = <1048576>;
clocks = <&clock_gfx GPUCC_GFX3D_CLK>,
<&clock_gcc GCC_GPU_CFG_AHB_CLK>,
<&clock_gfx GPUCC_RBBMTIMER_CLK>,
<&clock_gcc GCC_GPU_BIMC_GFX_CLK>,
<&clock_gcc GCC_BIMC_GFX_CLK>,
<&clock_gpu GPUCC_RBCPR_CLK>;
clock-names = "core_clk", "iface_clk", "rbbmtimer_clk",
"mem_clk", "alt_mem_iface_clk", "rbcpr_clk";
/* Bus Scale Settings */
qcom,gpubw-dev = <&gpubw>;
qcom,bus-control;
/* GPU to BIMC bus width, VBIF data transfer in 1 cycle */
qcom,bus-width = <32>;
qcom,msm-bus,name = "grp3d";
qcom,msm-bus,num-cases = <14>;
qcom,msm-bus,num-paths = <1>;
qcom,msm-bus,vectors-KBps =
<26 512 0 0>,
<26 512 0 400000>, /* 1 bus=100 */
<26 512 0 600000>, /* 2 bus=150 */
<26 512 0 800000>, /* 3 bus=200 */
<26 512 0 1200000>, /* 4 bus=300 */
<26 512 0 1648000>, /* 5 bus=412 */
<26 512 0 2188000>, /* 6 bus=547 */
<26 512 0 2724000>, /* 7 bus=681 */
<26 512 0 3072000>, /* 8 bus=768 */
<26 512 0 4068000>, /* 9 bus=1017 */
<26 512 0 5184000>, /* 10 bus=1296 */
<26 512 0 5412000>, /* 11 bus=1353 */
<26 512 0 6220000>, /* 12 bus=1555 */
<26 512 0 7216000>; /* 13 bus=1804 */
/* GDSC regulator names */
regulator-names = "vddcx", "vdd";
/* GDSC oxili regulators */
vddcx-supply = <&gdsc_gpu_cx>;
vdd-supply = <&gdsc_gpu_gx>;
/* Cx ipeak limit supprt */
qcom,gpu-cx-ipeak = <&cx_ipeak_lm 1>;
qcom,gpu-cx-ipeak-clk = <700000000>;
/* CPU latency parameter */
qcom,pm-qos-active-latency = <518>;
qcom,pm-qos-wakeup-latency = <518>;
/* Quirks */
qcom,gpu-quirk-dp2clockgating-disable;
qcom,gpu-quirk-lmloadkill-disable;
/* Enable context aware freq. scaling */
qcom,enable-ca-jump;
/* Context aware jump busy penalty in us */
qcom,ca-busy-penalty = <12000>;
/* Context aware jump target power level */
qcom,ca-target-pwrlevel = <4>;
qcom,gpu-speed-bin = <0x41a0 0x1fe00000 21>;
/* GPU Mempools */
qcom,gpu-mempools {
#address-cells= <1>;
#size-cells = <0>;
compatible = "qcom,gpu-mempools";
qcom,mempool-max-pages = <32768>;
/* 4K Page Pool configuration */
qcom,gpu-mempool@0 {
reg = <0>;
qcom,mempool-page-size = <4096>;
};
/* 64K Page Pool configuration */
qcom,gpu-mempool@1 {
reg = <1>;
qcom,mempool-page-size = <65536>;
qcom,mempool-allocate;
};
};
/*
* Speed-bin zero is default speed bin.
* For rest of the speed bins, speed-bin value
* is calulated as FMAX/4.8 MHz round up to zero
* decimal places.
*/
qcom,gpu-pwrlevel-bins {
#address-cells = <1>;
#size-cells = <0>;
compatible="qcom,gpu-pwrlevel-bins";
qcom,gpu-pwrlevels-0 {
#address-cells = <1>;
#size-cells = <0>;
qcom,speed-bin = <0>;
qcom,initial-pwrlevel = <6>;
/* TURBO */
qcom,gpu-pwrlevel@0 {
reg = <0>;
qcom,gpu-freq = <750000000>;
qcom,bus-freq = <13>;
qcom,bus-min = <12>;
qcom,bus-max = <13>;
};
/* TURBO */
qcom,gpu-pwrlevel@1 {
reg = <1>;
qcom,gpu-freq = <700000000>;
qcom,bus-freq = <11>;
qcom,bus-min = <11>;
qcom,bus-max = <13>;
};
/* NOM_L1 */
qcom,gpu-pwrlevel@2 {
reg = <2>;
qcom,gpu-freq = <647000000>;
qcom,bus-freq = <11>;
qcom,bus-min = <10>;
qcom,bus-max = <12>;
};
/* NOM */
qcom,gpu-pwrlevel@3 {
reg = <3>;
qcom,gpu-freq = <588000000>;
qcom,bus-freq = <10>;
qcom,bus-min = <9>;
qcom,bus-max = <12>;
};
/* SVS_L1 */
qcom,gpu-pwrlevel@4 {
reg = <4>;
qcom,gpu-freq = <465000000>;
qcom,bus-freq = <9>;
qcom,bus-min = <8>;
qcom,bus-max = <11>;
};
/* SVS */
qcom,gpu-pwrlevel@5 {
reg = <5>;
qcom,gpu-freq = <370000000>;
qcom,bus-freq = <8>;
qcom,bus-min = <6>;
qcom,bus-max = <9>;
};
/* Low SVS */
qcom,gpu-pwrlevel@6 {
reg = <6>;
qcom,gpu-freq = <266000000>;
qcom,bus-freq = <3>;
qcom,bus-min = <3>;
qcom,bus-max = <6>;
};
/* Min SVS */
qcom,gpu-pwrlevel@7 {
reg = <7>;
qcom,gpu-freq = <160000000>;
qcom,bus-freq = <3>;
qcom,bus-min = <3>;
qcom,bus-max = <5>;
};
/* XO */
qcom,gpu-pwrlevel@8 {
reg = <8>;
qcom,gpu-freq = <19200000>;
qcom,bus-freq = <0>;
qcom,bus-min = <0>;
qcom,bus-max = <0>;
};
};
qcom,gpu-pwrlevels-1 {
#address-cells = <1>;
#size-cells = <0>;
qcom,speed-bin = <157>;
qcom,initial-pwrlevel = <6>;
/* TURBO */
qcom,gpu-pwrlevel@0 {
reg = <0>;
qcom,gpu-freq = <750000000>;
qcom,bus-freq = <13>;
qcom,bus-min = <12>;
qcom,bus-max = <13>;
};
/* TURBO */
qcom,gpu-pwrlevel@1 {
reg = <1>;
qcom,gpu-freq = <700000000>;
qcom,bus-freq = <11>;
qcom,bus-min = <11>;
qcom,bus-max = <13>;
};
/* NOM_L1 */
qcom,gpu-pwrlevel@2 {
reg = <2>;
qcom,gpu-freq = <647000000>;
qcom,bus-freq = <11>;
qcom,bus-min = <10>;
qcom,bus-max = <12>;
};
/* NOM */
qcom,gpu-pwrlevel@3 {
reg = <3>;
qcom,gpu-freq = <588000000>;
qcom,bus-freq = <10>;
qcom,bus-min = <9>;
qcom,bus-max = <12>;
};
/* SVS_L1 */
qcom,gpu-pwrlevel@4 {
reg = <4>;
qcom,gpu-freq = <465000000>;
qcom,bus-freq = <9>;
qcom,bus-min = <8>;
qcom,bus-max = <11>;
};
/* SVS */
qcom,gpu-pwrlevel@5 {
reg = <5>;
qcom,gpu-freq = <370000000>;
qcom,bus-freq = <8>;
qcom,bus-min = <6>;
qcom,bus-max = <9>;
};
/* Low SVS */
qcom,gpu-pwrlevel@6 {
reg = <6>;
qcom,gpu-freq = <266000000>;
qcom,bus-freq = <3>;
qcom,bus-min = <3>;
qcom,bus-max = <6>;
};
/* Min SVS */
qcom,gpu-pwrlevel@7 {
reg = <7>;
qcom,gpu-freq = <160000000>;
qcom,bus-freq = <3>;
qcom,bus-min = <3>;
qcom,bus-max = <5>;
};
/* XO */
qcom,gpu-pwrlevel@8 {
reg = <8>;
qcom,gpu-freq = <19200000>;
qcom,bus-freq = <0>;
qcom,bus-min = <0>;
qcom,bus-max = <0>;
};
};
qcom,gpu-pwrlevels-2 {
#address-cells = <1>;
#size-cells = <0>;
qcom,speed-bin = <146>;
qcom,initial-pwrlevel = <5>;
/* TURBO */
qcom,gpu-pwrlevel@0 {
reg = <0>;
qcom,gpu-freq = <700000000>;
qcom,bus-freq = <13>;
qcom,bus-min = <12>;
qcom,bus-max = <13>;
};
/* NOM_L1 */
qcom,gpu-pwrlevel@1 {
reg = <1>;
qcom,gpu-freq = <647000000>;
qcom,bus-freq = <11>;
qcom,bus-min = <10>;
qcom,bus-max = <12>;
};
/* NOM */
qcom,gpu-pwrlevel@2 {
reg = <2>;
qcom,gpu-freq = <588000000>;
qcom,bus-freq = <10>;
qcom,bus-min = <9>;
qcom,bus-max = <12>;
};
/* SVS_L1 */
qcom,gpu-pwrlevel@3 {
reg = <3>;
qcom,gpu-freq = <465000000>;
qcom,bus-freq = <9>;
qcom,bus-min = <8>;
qcom,bus-max = <11>;
};
/* SVS */
qcom,gpu-pwrlevel@4 {
reg = <4>;
qcom,gpu-freq = <370000000>;
qcom,bus-freq = <8>;
qcom,bus-min = <6>;
qcom,bus-max = <9>;
};
/* Low SVS */
qcom,gpu-pwrlevel@5 {
reg = <5>;
qcom,gpu-freq = <266000000>;
qcom,bus-freq = <3>;
qcom,bus-min = <3>;
qcom,bus-max = <6>;
};
/* Min SVS */
qcom,gpu-pwrlevel@6 {
reg = <6>;
qcom,gpu-freq = <160000000>;
qcom,bus-freq = <3>;
qcom,bus-min = <3>;
qcom,bus-max = <5>;
};
/* XO */
qcom,gpu-pwrlevel@7 {
reg = <7>;
qcom,gpu-freq = <19200000>;
qcom,bus-freq = <0>;
qcom,bus-min = <0>;
qcom,bus-max = <0>;
};
};
qcom,gpu-pwrlevels-3 {
#address-cells = <1>;
#size-cells = <0>;
qcom,speed-bin = <135>;
qcom,initial-pwrlevel = <4>;
/* NOM_L1 */
qcom,gpu-pwrlevel@0 {
reg = <0>;
qcom,gpu-freq = <647000000>;
qcom,bus-freq = <13>;
qcom,bus-min = <12>;
qcom,bus-max = <13>;
};
/* NOM */
qcom,gpu-pwrlevel@1 {
reg = <1>;
qcom,gpu-freq = <588000000>;
qcom,bus-freq = <10>;
qcom,bus-min = <9>;
qcom,bus-max = <12>;
};
/* SVS_L1 */
qcom,gpu-pwrlevel@2 {
reg = <2>;
qcom,gpu-freq = <465000000>;
qcom,bus-freq = <9>;
qcom,bus-min = <8>;
qcom,bus-max = <11>;
};
/* SVS */
qcom,gpu-pwrlevel@3 {
reg = <3>;
qcom,gpu-freq = <370000000>;
qcom,bus-freq = <8>;
qcom,bus-min = <6>;
qcom,bus-max = <9>;
};
/* Low SVS */
qcom,gpu-pwrlevel@4 {
reg = <4>;
qcom,gpu-freq = <266000000>;
qcom,bus-freq = <3>;
qcom,bus-min = <3>;
qcom,bus-max = <6>;
};
/* Min SVS */
qcom,gpu-pwrlevel@5 {
reg = <5>;
qcom,gpu-freq = <160000000>;
qcom,bus-freq = <3>;
qcom,bus-min = <3>;
qcom,bus-max = <5>;
};
/* XO */
qcom,gpu-pwrlevel@6 {
reg = <6>;
qcom,gpu-freq = <19200000>;
qcom,bus-freq = <0>;
qcom,bus-min = <0>;
qcom,bus-max = <0>;
};
};
qcom,gpu-pwrlevels-4 {
#address-cells = <1>;
#size-cells = <0>;
qcom,speed-bin = <78>;
qcom,initial-pwrlevel = <1>;
/* SVS */
qcom,gpu-pwrlevel@0 {
reg = <0>;
qcom,gpu-freq = <370000000>;
qcom,bus-freq = <8>;
qcom,bus-min = <6>;
qcom,bus-max = <11>;
};
/* Low SVS */
qcom,gpu-pwrlevel@1 {
reg = <1>;
qcom,gpu-freq = <266000000>;
qcom,bus-freq = <3>;
qcom,bus-min = <3>;
qcom,bus-max = <6>;
};
/* Min SVS */
qcom,gpu-pwrlevel@2 {
reg = <2>;
qcom,gpu-freq = <160000000>;
qcom,bus-freq = <3>;
qcom,bus-min = <3>;
qcom,bus-max = <5>;
};
/* XO */
qcom,gpu-pwrlevel@3 {
reg = <3>;
qcom,gpu-freq = <19200000>;
qcom,bus-freq = <0>;
qcom,bus-min = <0>;
qcom,bus-max = <0>;
};
};
qcom,gpu-pwrlevels-5 {
#address-cells = <1>;
#size-cells = <0>;
qcom,speed-bin = <90>;
qcom,initial-pwrlevel = <2>;
/* SVS_L1 */
qcom,gpu-pwrlevel@0 {
reg = <0>;
qcom,gpu-freq = <430000000>;
qcom,bus-freq = <11>;
qcom,bus-min = <10>;
qcom,bus-max = <11>;
};
/* SVS */
qcom,gpu-pwrlevel@1 {
reg = <1>;
qcom,gpu-freq = <370000000>;
qcom,bus-freq = <8>;
qcom,bus-min = <6>;
qcom,bus-max = <11>;
};
/* Low SVS */
qcom,gpu-pwrlevel@2 {
reg = <2>;
qcom,gpu-freq = <266000000>;
qcom,bus-freq = <3>;
qcom,bus-min = <3>;
qcom,bus-max = <6>;
};
/* Min SVS */
qcom,gpu-pwrlevel@3 {
reg = <3>;
qcom,gpu-freq = <160000000>;
qcom,bus-freq = <3>;
qcom,bus-min = <3>;
qcom,bus-max = <5>;
};
/* XO */
qcom,gpu-pwrlevel@4 {
reg = <4>;
qcom,gpu-freq = <19200000>;
qcom,bus-freq = <0>;
qcom,bus-min = <0>;
qcom,bus-max = <0>;
};
};
qcom,gpu-pwrlevels-6 {
#address-cells = <1>;
#size-cells = <0>;
qcom,speed-bin = <122>;
qcom,initial-pwrlevel = <3>;
/* NOM */
qcom,gpu-pwrlevel@0 {
reg = <0>;
qcom,gpu-freq = <585000000>;
qcom,bus-freq = <12>;
qcom,bus-min = <11>;
qcom,bus-max = <12>;
};
/* SVS_L1 */
qcom,gpu-pwrlevel@1 {
reg = <1>;
qcom,gpu-freq = <465000000>;
qcom,bus-freq = <9>;
qcom,bus-min = <8>;
qcom,bus-max = <11>;
};
/* SVS */
qcom,gpu-pwrlevel@2 {
reg = <2>;
qcom,gpu-freq = <370000000>;
qcom,bus-freq = <8>;
qcom,bus-min = <6>;
qcom,bus-max = <9>;
};
/* Low SVS */
qcom,gpu-pwrlevel@3 {
reg = <3>;
qcom,gpu-freq = <266000000>;
qcom,bus-freq = <3>;
qcom,bus-min = <3>;
qcom,bus-max = <6>;
};
/* Min SVS */
qcom,gpu-pwrlevel@4 {
reg = <4>;
qcom,gpu-freq = <160000000>;
qcom,bus-freq = <3>;
qcom,bus-min = <3>;
qcom,bus-max = <5>;
};
/* XO */
qcom,gpu-pwrlevel@5 {
reg = <5>;
qcom,gpu-freq = <19200000>;
qcom,bus-freq = <0>;
qcom,bus-min = <0>;
qcom,bus-max = <0>;
};
};
};
};
kgsl_msm_iommu: qcom,kgsl-iommu {
compatible = "qcom,kgsl-smmu-v2";
reg = <0x05040000 0x10000>;
qcom,protect = <0x40000 0x10000>;
qcom,micro-mmu-control = <0x6000>;
clocks =<&clock_gcc GCC_GPU_CFG_AHB_CLK>,
<&clock_gcc GCC_GPU_BIMC_GFX_CLK>,
<&clock_gcc GCC_BIMC_GFX_CLK>;
clock-names = "iface_clk", "mem_clk", "alt_mem_iface_clk";
qcom,secure_align_mask = <0xfff>;
qcom,retention;
qcom,hyp_secure_alloc;
gfx3d_user: gfx3d_user {
compatible = "qcom,smmu-kgsl-cb";
label = "gfx3d_user";
iommus = <&kgsl_smmu 0>;
qcom,gpu-offset = <0x48000>;
};
gfx3d_secure: gfx3d_secure {
compatible = "qcom,smmu-kgsl-cb";
iommus = <&kgsl_smmu 2>;
};
};
};

View File

@ -0,0 +1,28 @@
/* Copyright (c) 2017, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
/dts-v1/;
#include "sdm660.dtsi"
#include "sdm660-cdp.dtsi"
#include "sdm660-external-codec.dtsi"
/ {
model = "Qualcomm Technologies, Inc. SDM 660 PM660 + PM660L, Headset
Jacktype NO, CDP";
compatible = "qcom,sdm660-cdp", "qcom,sdm660", "qcom,cdp";
qcom,board-id = <1 2>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
<0x0001001b 0x0201011a 0x0 0x0>,
<0x0001001b 0x0102001a 0x0 0x0>;
};

View File

@ -0,0 +1,27 @@
/* Copyright (c) 2017, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
/dts-v1/;
#include "sdm660.dtsi"
#include "sdm660-cdp.dtsi"
#include "sdm660-external-codec.dtsi"
/ {
model = "Qualcomm Technologies, Inc. SDM 660 PM660 + PM660L, Headset
Jacktype NO, RCM";
compatible = "qcom,sdm660-cdp", "qcom,sdm660", "qcom,cdp";
qcom,board-id = <21 2>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
<0x0001001b 0x0201011a 0x0 0x0>;
};

View File

@ -0,0 +1,28 @@
/* Copyright (c) 2016-2017, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
/dts-v1/;
#include "sdm660.dtsi"
#include "sdm660-cdp.dtsi"
#include "sdm660-internal-codec.dtsi"
/ {
model = "Qualcomm Technologies, Inc. SDM 660 PM660 + PM660L Int. Audio
Codec CDP";
compatible = "qcom,sdm660-cdp", "qcom,sdm660", "qcom,cdp";
qcom,board-id = <1 1>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
<0x0001001b 0x0201011a 0x0 0x0>,
<0x0001001b 0x0102001a 0x0 0x0>;
};

View File

@ -0,0 +1,32 @@
/* Copyright (c) 2016-2017, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
/dts-v1/;
#include "sdm660.dtsi"
#include "sdm660-mtp.dtsi"
#include "sdm660-internal-codec.dtsi"
/ {
model = "Qualcomm Technologies, Inc. SDM 660 PM660 + PM660L Int. Audio
Codec MTP";
compatible = "qcom,sdm660-mtp", "qcom,sdm660", "qcom,mtp";
qcom,board-id = <8 1>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
<0x0001001b 0x0201011a 0x0 0x0>,
<0x0001001b 0x0102001a 0x0 0x0>;
};
&int_codec {
qcom,model = "sdm660-snd-card-mtp";
};

View File

@ -0,0 +1,29 @@
/* Copyright (c) 2016-2017, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
/dts-v1/;
#include "sdm660.dtsi"
#include "sdm660-cdp.dtsi"
#include "msm-pm660a.dtsi"
#include "sdm660-internal-codec.dtsi"
/ {
model = "Qualcomm Technologies, Inc. SDM 660 PM660 + PM660A Int. Audio
Codec CDP";
compatible = "qcom,sdm660-cdp", "qcom,sdm660", "qcom,cdp";
qcom,board-id = <1 1>;
qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>,
<0x0001001b 0x0002001a 0x0 0x0>,
<0x0001001b 0x0202001a 0x0 0x0>;
};

View File

@ -0,0 +1,34 @@
/* Copyright (c) 2016-2017, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
/dts-v1/;
#include "sdm660.dtsi"
#include "sdm660-mtp.dtsi"
#include "msm-pm660a.dtsi"
#include "sdm660-internal-codec.dtsi"
/ {
model = "Qualcomm Technologies, Inc. SDM 660 PM660 + PM660A Int. Audio
Codec MTP";
compatible = "qcom,sdm660-mtp", "qcom,sdm660", "qcom,mtp";
qcom,board-id = <8 1>;
qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>,
<0x0001001b 0x0002001a 0x0 0x0>,
<0x0001001b 0x0202001a 0x0 0x0>;
};
&int_codec {
qcom,model = "sdm660-snd-card-mtp";
status = "okay";
};

View File

@ -0,0 +1,27 @@
/* Copyright (c) 2016-2017, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
/dts-v1/;
#include "sdm660.dtsi"
#include "sdm660-cdp.dtsi"
#include "msm-pm660a.dtsi"
#include "sdm660-internal-codec.dtsi"
/ {
model = "Qualcomm Technologies, Inc. SDM 660 PM660 + PM660A Int. Audio
Codec RCM";
compatible = "qcom,sdm660-cdp", "qcom,sdm660", "qcom,cdp";
qcom,board-id = <21 1>;
qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
};

View File

@ -0,0 +1,27 @@
/* Copyright (c) 2016-2017, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
/dts-v1/;
#include "sdm660.dtsi"
#include "sdm660-cdp.dtsi"
#include "sdm660-internal-codec.dtsi"
/ {
model = "Qualcomm Technologies, Inc. SDM 660 PM660 + PM660L Int. Audio
Codec RCM";
compatible = "qcom,sdm660-cdp", "qcom,sdm660", "qcom,cdp";
qcom,board-id = <21 1>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
<0x0001001b 0x0201011a 0x0 0x0>;
};

View File

@ -0,0 +1,75 @@
/* Copyright (c) 2017, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
&slim_aud {
status = "disabled";
};
&dai_slim {
status = "disabled";
};
&wcd9335 {
status = "disabled";
};
&wcd934x_cdc {
status = "disabled";
};
&clock_audio {
status = "disabled";
};
&wcd_rst_gpio {
status = "disabled";
};
&wcd9xxx_intc {
status = "disabled";
};
&tasha_snd {
status = "disabled";
};
&tavil_snd {
status = "disabled";
};
&spi_7 {
status = "disabled";
};
&wdsp_mgr {
status = "disabled";
};
&wdsp_glink {
status = "disabled";
};
&glink_spi_xprt_wdsp {
status = "disabled";
};
&int_codec {
status = "okay";
};
&pmic_analog_codec {
status = "okay";
};
&msm_sdw_codec {
status = "okay";
};

View File

@ -0,0 +1,47 @@
/* Copyright (c) 2016, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
&soc {
qcom,ion {
compatible = "qcom,msm-ion";
#address-cells = <1>;
#size-cells = <0>;
system_heap: qcom,ion-heap@25 {
reg = <25>;
qcom,ion-heap-type = "SYSTEM";
};
qcom,ion-heap@22 { /* ADSP HEAP */
reg = <22>;
memory-region = <&adsp_mem>;
qcom,ion-heap-type = "DMA";
};
qcom,ion-heap@27 { /* QSEECOM HEAP */
reg = <27>;
memory-region = <&qseecom_mem>;
qcom,ion-heap-type = "DMA";
};
qcom,ion-heap@10 { /* SECURE DISPLAY HEAP */
reg = <10>;
memory-region = <&secure_display_memory>;
qcom,ion-heap-type = "HYP_CMA";
};
qcom,ion-heap@9 {
reg = <9>;
qcom,ion-heap-type = "SYSTEM_SECURE";
};
};
};

View File

@ -0,0 +1,212 @@
/* Copyright (c) 2016-2017, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
&soc {
lpi_tlmm: lpi_pinctrl@15070000 {
compatible = "qcom,lpi-pinctrl";
reg = <0x15070000 0x0>;
qcom,num-gpios = <32>;
gpio-controller;
#gpio-cells = <2>;
lpi_mclk0_active: lpi_mclk0_active {
mux {
pins = "gpio18";
function = "func2";
};
config {
pins = "gpio18";
drive-strength = <8>;
bias-disable;
};
};
lpi_mclk0_sleep: lpi_mclk0_sleep {
mux {
pins = "gpio18";
function = "func2";
};
config {
pins = "gpio18";
drive-strength = <2>;
bias-pull-down;
};
};
cdc_pdm_gpios_active: cdc_pdm_gpios_active {
mux {
pins = "gpio18", "gpio19",
"gpio21", "gpio23",
"gpio25";
function = "func1";
};
config {
pins = "gpio18", "gpio19",
"gpio21", "gpio23",
"gpio25";
drive-strength = <8>;
output-high;
};
};
cdc_pdm_gpios_sleep: cdc_pdm_gpios_sleep {
mux {
pins = "gpio18", "gpio19",
"gpio21", "gpio23",
"gpio25";
function = "func1";
};
config {
pins = "gpio18", "gpio19",
"gpio21", "gpio23",
"gpio25";
drive-strength = <2>;
bias-disable;
output-low;
};
};
cdc_pdm_2_gpios_active: cdc_pdm_2_gpios_active {
mux {
pins = "gpio20";
function = "func1";
};
config {
pins = "gpio20";
drive-strength = <8>;
};
};
cdc_pdm_2_gpios_sleep: cdc_pdm_2_gpios_sleep {
mux {
pins = "gpio20";
function = "func1";
};
config {
pins = "gpio20";
drive-strength = <2>;
bias-disable;
};
};
cdc_comp_gpios_active: cdc_pdm_comp_gpios_active {
mux {
pins = "gpio22", "gpio24";
function = "func1";
};
config {
pins = "gpio22", "gpio24";
drive-strength = <8>;
};
};
cdc_comp_gpios_sleep: cdc_pdm_comp_gpios_sleep {
mux {
pins = "gpio22", "gpio24";
function = "func1";
};
config {
pins = "gpio22", "gpio24";
drive-strength = <2>;
bias-disable;
};
};
lpi_cdc_reset_active: lpi_cdc_reset_active {
mux {
pins = "gpio24";
function = "gpio";
};
config {
pins = "gpio24";
drive-strength = <16>;
output-high;
};
};
lpi_cdc_reset_sleep: lpi_cdc_reset_sleep {
mux {
pins = "gpio24";
function = "gpio";
};
config {
pins = "gpio24";
drive-strength = <16>;
bias-disable;
output-low;
};
};
cdc_dmic12_gpios_active: dmic12_gpios_active {
mux {
pins = "gpio26", "gpio28";
function = "func1";
};
config {
pins = "gpio26", "gpio28";
drive-strength = <8>;
output-high;
};
};
cdc_dmic12_gpios_sleep: dmic12_gpios_sleep {
mux {
pins = "gpio26", "gpio28";
function = "func1";
};
config {
pins = "gpio26", "gpio28";
drive-strength = <2>;
bias-disable;
output-low;
};
};
cdc_dmic34_gpios_active: dmic34_gpios_active {
mux {
pins = "gpio27", "gpio29";
function = "func1";
};
config {
pins = "gpio27", "gpio29";
drive-strength = <8>;
input-enable;
};
};
cdc_dmic34_gpios_sleep: dmic34_gpios_sleep {
mux {
pins = "gpio27", "gpio29";
function = "func1";
};
config {
pins = "gpio27", "gpio29";
drive-strength = <2>;
pull-down;
input-enable;
};
};
};
};

View File

@ -0,0 +1,364 @@
/* Copyright (c) 2016-2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include "dsi-panel-sim-video.dtsi"
#include "dsi-panel-sim-dualmipi-video.dtsi"
#include "dsi-panel-nt35597-truly-dualmipi-wqxga-video.dtsi"
#include "dsi-panel-nt35597-truly-dualmipi-wqxga-cmd.dtsi"
#include "dsi-panel-nt36850-truly-dualmipi-wqhd-cmd.dtsi"
#include "dsi-panel-sharp-dualmipi-wqxga-video.dtsi"
#include "dsi-panel-nt35597-truly-dsc-wqxga-video.dtsi"
#include "dsi-panel-nt35597-truly-dsc-wqxga-cmd.dtsi"
#include "dsi-panel-nt35597-dualmipi-wqxga-video.dtsi"
#include "dsi-panel-nt35597-dualmipi-wqxga-cmd.dtsi"
#include "dsi-panel-nt35695b-truly-fhd-video.dtsi"
#include "dsi-panel-nt35695b-truly-fhd-cmd.dtsi"
#include "dsi-panel-truly-1080p-cmd.dtsi"
#include "dsi-panel-truly-1080p-video.dtsi"
#include "dsi-panel-rm67195-amoled-fhd-cmd.dtsi"
#include "dsi-panel-lgd-incell-sw49106-fhd-video.dtsi"
#include "dsi-panel-hx8399c-fhd-plus-video.dtsi"
&soc {
dsi_panel_pwr_supply: dsi_panel_pwr_supply {
#address-cells = <1>;
#size-cells = <0>;
qcom,panel-supply-entry@0 {
reg = <0>;
qcom,supply-name = "wqhd-vddio";
qcom,supply-min-voltage = <1800000>;
qcom,supply-max-voltage = <1950000>;
qcom,supply-enable-load = <32000>;
qcom,supply-disable-load = <80>;
};
qcom,panel-supply-entry@1 {
reg = <1>;
qcom,supply-name = "lab";
qcom,supply-min-voltage = <4600000>;
qcom,supply-max-voltage = <6000000>;
qcom,supply-enable-load = <100000>;
qcom,supply-disable-load = <100>;
};
qcom,panel-supply-entry@2 {
reg = <2>;
qcom,supply-name = "ibb";
qcom,supply-min-voltage = <4600000>;
qcom,supply-max-voltage = <6000000>;
qcom,supply-enable-load = <100000>;
qcom,supply-disable-load = <100>;
qcom,supply-post-on-sleep = <10>;
};
};
dsi_panel_pwr_supply_labibb_amoled:
dsi_panel_pwr_supply_labibb_amoled {
#address-cells = <1>;
#size-cells = <0>;
qcom,panel-supply-entry@0 {
reg = <0>;
qcom,supply-name = "wqhd-vddio";
qcom,supply-min-voltage = <1800000>;
qcom,supply-max-voltage = <1950000>;
qcom,supply-enable-load = <32000>;
qcom,supply-disable-load = <80>;
};
qcom,panel-supply-entry@1 {
reg = <1>;
qcom,supply-name = "vdda-3p3";
qcom,supply-min-voltage = <3300000>;
qcom,supply-max-voltage = <3300000>;
qcom,supply-enable-load = <13200>;
qcom,supply-disable-load = <80>;
};
qcom,panel-supply-entry@2 {
reg = <2>;
qcom,supply-name = "lab";
qcom,supply-min-voltage = <4600000>;
qcom,supply-max-voltage = <6100000>;
qcom,supply-enable-load = <100000>;
qcom,supply-disable-load = <100>;
};
qcom,panel-supply-entry@3 {
reg = <3>;
qcom,supply-name = "ibb";
qcom,supply-min-voltage = <4000000>;
qcom,supply-max-voltage = <6300000>;
qcom,supply-enable-load = <100000>;
qcom,supply-disable-load = <100>;
};
qcom,panel-supply-entry@4 {
reg = <4>;
qcom,supply-name = "oledb";
qcom,supply-min-voltage = <5000000>;
qcom,supply-max-voltage = <8100000>;
qcom,supply-enable-load = <100000>;
qcom,supply-disable-load = <100>;
};
};
dsi_panel_pwr_supply_no_labibb: dsi_panel_pwr_supply_no_labibb {
#address-cells = <1>;
#size-cells = <0>;
qcom,panel-supply-entry@0 {
reg = <0>;
qcom,supply-name = "wqhd-vddio";
qcom,supply-min-voltage = <1800000>;
qcom,supply-max-voltage = <1950000>;
qcom,supply-enable-load = <32000>;
qcom,supply-disable-load = <80>;
};
};
};
&dsi_dual_nt35597_truly_video {
qcom,mdss-dsi-panel-timings-phy-v2 = [23 1e 07 08 05 03 04 a0
23 1e 07 08 05 03 04 a0
23 1e 07 08 05 03 04 a0
23 1e 07 08 05 03 04 a0
23 18 07 08 04 03 04 a0];
qcom,esd-check-enabled;
qcom,mdss-dsi-panel-status-check-mode = "reg_read";
qcom,mdss-dsi-panel-status-command = [06 01 00 01 00 00 01 0a];
qcom,mdss-dsi-panel-status-command-state = "dsi_hs_mode";
qcom,mdss-dsi-panel-status-value = <0x9c>;
qcom,mdss-dsi-panel-on-check-value = <0x9c>;
qcom,mdss-dsi-panel-status-read-length = <1>;
qcom,mdss-dsi-panel-max-error-count = <3>;
qcom,mdss-dsi-min-refresh-rate = <53>;
qcom,mdss-dsi-max-refresh-rate = <60>;
qcom,mdss-dsi-pan-enable-dynamic-bitclk;
qcom,mdss-dsi-dynamic-bitclk_freq = <798240576 801594528 804948480
808302432 811656384>;
qcom,mdss-dsi-pan-enable-dynamic-fps;
qcom,mdss-dsi-pan-fps-update = "dfps_immediate_porch_mode_vfp";
};
&dsi_dual_nt35597_truly_cmd {
qcom,mdss-dsi-panel-timings-phy-v2 = [23 1e 07 08 05 03 04 a0
23 1e 07 08 05 03 04 a0
23 1e 07 08 05 03 04 a0
23 1e 07 08 05 03 04 a0
23 18 07 08 04 03 04 a0];
qcom,esd-check-enabled;
qcom,mdss-dsi-panel-status-check-mode = "reg_read";
qcom,mdss-dsi-panel-status-command = [06 01 00 01 00 00 01 0a];
qcom,mdss-dsi-panel-status-command-state = "dsi_hs_mode";
qcom,mdss-dsi-panel-status-value = <0x9c>;
qcom,mdss-dsi-panel-on-check-value = <0x9c>;
qcom,mdss-dsi-panel-status-read-length = <1>;
qcom,mdss-dsi-panel-max-error-count = <3>;
};
&dsi_dual_nt36850_truly_cmd {
qcom,mdss-dsi-panel-timings-phy-v2 = [24 1f 08 09 05 03 04 a0
24 1f 08 09 05 03 04 a0
24 1f 08 09 05 03 04 a0
24 1f 08 09 05 03 04 a0
24 1c 08 09 05 03 04 a0];
qcom,mdss-dsi-t-clk-post = <0x0e>;
qcom,mdss-dsi-t-clk-pre = <0x31>;
};
&dsi_dual_sharp_video {
qcom,mdss-dsi-panel-timings-phy-v2 = [23 20 06 09 05 03 04 a0
23 20 06 09 05 03 04 a0
23 20 06 09 05 03 04 a0
23 20 06 09 05 03 04 a0
23 2e 06 08 05 03 04 a0];
qcom,mdss-dsi-min-refresh-rate = <53>;
qcom,mdss-dsi-max-refresh-rate = <60>;
qcom,mdss-dsi-pan-enable-dynamic-fps;
qcom,mdss-dsi-pan-fps-update = "dfps_immediate_porch_mode_vfp";
};
&dsi_nt35597_truly_dsc_video {
qcom,mdss-dsi-panel-timings-phy-v2 = [20 1d 05 07 03 03 04 a0
20 1d 05 07 03 03 04 a0
20 1d 05 07 03 03 04 a0
20 1d 05 07 03 03 04 a0
20 12 05 06 03 13 04 a0];
qcom,config-select = <&dsi_nt35597_truly_dsc_video_config2>;
qcom,mdss-dsi-min-refresh-rate = <53>;
qcom,mdss-dsi-max-refresh-rate = <60>;
qcom,mdss-dsi-pan-enable-dynamic-fps;
qcom,mdss-dsi-pan-fps-update = "dfps_immediate_porch_mode_vfp";
qcom,esd-check-enabled;
qcom,mdss-dsi-panel-status-check-mode = "reg_read";
qcom,mdss-dsi-panel-status-command = [06 01 00 01 00 00 01 0a];
qcom,mdss-dsi-panel-status-command-state = "dsi_hs_mode";
qcom,mdss-dsi-panel-status-value = <0x9c>;
qcom,mdss-dsi-panel-on-check-value = <0x9c>;
qcom,mdss-dsi-panel-status-read-length = <1>;
qcom,mdss-dsi-panel-max-error-count = <3>;
};
&dsi_nt35597_truly_dsc_cmd {
qcom,mdss-dsi-panel-timings-phy-v2 = [20 1d 05 07 03 03 04 a0
20 1d 05 07 03 03 04 a0
20 1d 05 07 03 03 04 a0
20 1d 05 07 03 03 04 a0
20 12 05 06 03 13 04 a0];
qcom,config-select = <&dsi_nt35597_truly_dsc_cmd_config2>;
qcom,esd-check-enabled;
qcom,mdss-dsi-panel-status-check-mode = "reg_read";
qcom,mdss-dsi-panel-status-command = [06 01 00 01 00 00 01 0a];
qcom,mdss-dsi-panel-status-command-state = "dsi_hs_mode";
qcom,mdss-dsi-panel-status-value = <0x9c>;
qcom,mdss-dsi-panel-on-check-value = <0x9c>;
qcom,mdss-dsi-panel-status-read-length = <1>;
qcom,mdss-dsi-panel-max-error-count = <3>;
};
&dsi_dual_nt35597_video {
qcom,mdss-dsi-panel-timings-phy-v2 = [23 1e 07 08 05 03 04 a0
23 1e 07 08 05 03 04 a0
23 1e 07 08 05 03 04 a0
23 1e 07 08 05 03 04 a0
23 18 07 08 04 03 04 a0];
qcom,mdss-dsi-min-refresh-rate = <53>;
qcom,mdss-dsi-max-refresh-rate = <60>;
qcom,mdss-dsi-pan-enable-dynamic-fps;
qcom,mdss-dsi-pan-fps-update = "dfps_immediate_porch_mode_vfp";
};
&dsi_dual_nt35597_cmd {
qcom,mdss-dsi-panel-timings-phy-v2 = [23 1e 07 08 05 03 04 a0
23 1e 07 08 05 03 04 a0
23 1e 07 08 05 03 04 a0
23 1e 07 08 05 03 04 a0
23 18 07 08 04 03 04 a0];
};
&dsi_nt35695b_truly_fhd_video {
qcom,mdss-dsi-panel-timings-phy-v2 = [24 1e 08 09 05 03 04 a0
24 1e 08 09 05 03 04 a0
24 1e 08 09 05 03 04 a0
24 1e 08 09 05 03 04 a0
24 1a 08 09 05 03 04 a0];
qcom,mdss-dsi-min-refresh-rate = <48>;
qcom,mdss-dsi-max-refresh-rate = <60>;
qcom,mdss-dsi-pan-enable-dynamic-fps;
qcom,mdss-dsi-pan-fps-update = "dfps_immediate_porch_mode_vfp";
qcom,esd-check-enabled;
qcom,mdss-dsi-panel-status-check-mode = "reg_read";
qcom,mdss-dsi-panel-status-command = [06 01 00 01 00 00 01 0a];
qcom,mdss-dsi-panel-status-command-state = "dsi_hs_mode";
qcom,mdss-dsi-panel-status-value = <0x9c>;
qcom,mdss-dsi-panel-on-check-value = <0x9c>;
qcom,mdss-dsi-panel-status-read-length = <1>;
qcom,mdss-dsi-panel-max-error-count = <3>;
};
&dsi_nt35695b_truly_fhd_cmd {
qcom,mdss-dsi-panel-timings-phy-v2 = [24 1e 08 09 05 03 04 a0
24 1e 08 09 05 03 04 a0
24 1e 08 09 05 03 04 a0
24 1e 08 09 05 03 04 a0
24 1a 08 09 05 03 04 a0];
qcom,esd-check-enabled;
qcom,mdss-dsi-panel-status-check-mode = "reg_read";
qcom,mdss-dsi-panel-status-command = [06 01 00 01 00 00 01 0a];
qcom,mdss-dsi-panel-status-command-state = "dsi_hs_mode";
qcom,mdss-dsi-panel-status-value = <0x9c>;
qcom,mdss-dsi-panel-on-check-value = <0x9c>;
qcom,mdss-dsi-panel-status-read-length = <1>;
qcom,mdss-dsi-panel-max-error-count = <3>;
};
&dsi_truly_1080_vid {
qcom,mdss-dsi-panel-timings-phy-v2 = [23 1e 08 09 05 03 04 a0
23 1e 08 09 05 03 04 a0
23 1e 08 09 05 03 04 a0
23 1e 08 09 05 03 04 a0
23 1a 08 09 05 03 04 a0];
qcom,mdss-dsi-min-refresh-rate = <48>;
qcom,mdss-dsi-max-refresh-rate = <60>;
qcom,mdss-dsi-pan-enable-dynamic-fps;
qcom,mdss-dsi-pan-fps-update = "dfps_immediate_porch_mode_vfp";
qcom,esd-check-enabled;
qcom,mdss-dsi-panel-status-check-mode = "reg_read";
qcom,mdss-dsi-panel-status-command = [06 01 00 01 00 00 01 0a];
qcom,mdss-dsi-panel-status-command-state = "dsi_hs_mode";
qcom,mdss-dsi-panel-status-value = <0x1c>;
qcom,mdss-dsi-panel-on-check-value = <0x1c>;
qcom,mdss-dsi-panel-status-read-length = <1>;
qcom,mdss-dsi-panel-max-error-count = <3>;
};
&dsi_truly_1080_cmd {
qcom,mdss-dsi-panel-timings-phy-v2 = [23 1e 08 09 05 03 04 a0
23 1e 08 09 05 03 04 a0
23 1e 08 09 05 03 04 a0
23 1e 08 09 05 03 04 a0
23 1a 08 09 05 03 04 a0];
qcom,esd-check-enabled;
qcom,mdss-dsi-panel-status-check-mode = "reg_read";
qcom,mdss-dsi-panel-status-command = [06 01 00 01 00 00 01 0a];
qcom,mdss-dsi-panel-status-command-state = "dsi_hs_mode";
qcom,mdss-dsi-panel-status-value = <0x1c>;
qcom,mdss-dsi-panel-on-check-value = <0x1c>;
qcom,mdss-dsi-panel-status-read-length = <1>;
qcom,mdss-dsi-panel-max-error-count = <3>;
};
&dsi_rm67195_amoled_fhd_cmd {
qcom,mdss-dsi-panel-timings-phy-v2 = [24 1f 08 09 05 03 04 a0
24 1f 08 09 05 03 04 a0
24 1f 08 09 05 03 04 a0
24 1f 08 09 05 03 04 a0
24 1a 08 09 05 03 04 a0];
qcom,mdss-dsi-t-clk-post = <0x0d>;
qcom,mdss-dsi-t-clk-pre = <0x2f>;
};
&dsi_lgd_incell_sw49106_fhd_video {
qcom,mdss-dsi-panel-timings-phy-v2 = [24 1f 08 09 05 03 04 a0
24 1f 08 09 05 03 04 a0
24 1f 08 09 05 03 04 a0
24 1f 08 09 05 03 04 a0
24 1b 08 09 05 03 04 a0];
qcom,mdss-dsi-t-clk-post = <0x0d>;
qcom,mdss-dsi-t-clk-pre = <0x30>;
};
&dsi_hx8399c_truly_vid {
qcom,mdss-dsi-panel-timings-phy-v2 = [24 1f 08 09 05 03 04 a0
24 1f 08 09 05 03 04 a0
24 1f 08 09 05 03 04 a0
24 1f 08 09 05 03 04 a0
24 1c 08 09 05 03 04 a0];
qcom,esd-check-enabled;
qcom,mdss-dsi-panel-status-check-mode = "reg_read";
qcom,mdss-dsi-panel-status-command = [06 01 00 01 00 00 01 0a];
qcom,mdss-dsi-panel-status-command-state = "dsi_lp_mode";
qcom,mdss-dsi-panel-status-value = <0x9d 0x9d 0x9d 0x9d>;
qcom,mdss-dsi-panel-on-check-value = <0x9d 0x9d 0x9d 0x9d>;
qcom,mdss-dsi-panel-status-read-length = <4>;
qcom,mdss-dsi-panel-max-error-count = <3>;
qcom,mdss-dsi-min-refresh-rate = <48>;
qcom,mdss-dsi-max-refresh-rate = <60>;
qcom,mdss-dsi-pan-enable-dynamic-fps;
qcom,mdss-dsi-pan-fps-update =
"dfps_immediate_porch_mode_vfp";
};

View File

@ -0,0 +1,120 @@
/* Copyright (c) 2016-2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
&soc {
mdss_dsi0_pll: qcom,mdss_dsi_pll@c994400 {
compatible = "qcom,mdss_dsi_pll_14nm";
status = "ok";
label = "MDSS DSI 0 PLL";
cell-index = <0>;
#clock-cells = <1>;
reg = <0xc994400 0x588>,
<0xc8c2300 0x8>,
<0xc994200 0x98>;
reg-names = "pll_base", "gdsc_base", "dynamic_pll_base";
gdsc-supply = <&gdsc_mdss>;
clocks = <&clock_mmss MMSS_MDSS_AHB_CLK>;
clock-names = "iface_clk";
clock-rate = <0>;
qcom,dsi-pll-ssc-en;
qcom,dsi-pll-ssc-mode = "down-spread";
memory-region = <&dfps_data_mem>;
qcom,platform-supply-entries {
#address-cells = <1>;
#size-cells = <0>;
qcom,platform-supply-entry@0 {
reg = <0>;
qcom,supply-name = "gdsc";
qcom,supply-min-voltage = <0>;
qcom,supply-max-voltage = <0>;
qcom,supply-enable-load = <0>;
qcom,supply-disable-load = <0>;
};
};
};
mdss_dsi1_pll: qcom,mdss_dsi_pll@c996400 {
compatible = "qcom,mdss_dsi_pll_14nm";
status = "ok";
label = "MDSS DSI 1 PLL";
cell-index = <1>;
#clock-cells = <1>;
reg = <0xc996400 0x588>,
<0xc8c2300 0x8>,
<0xc996200 0x98>;
reg-names = "pll_base", "gdsc_base", "dynamic_pll_base";
gdsc-supply = <&gdsc_mdss>;
clocks = <&clock_mmss MMSS_MDSS_AHB_CLK>;
clock-names = "iface_clk";
clock-rate = <0>;
qcom,dsi-pll-ssc-en;
qcom,dsi-pll-ssc-mode = "down-spread";
qcom,platform-supply-entries {
#address-cells = <1>;
#size-cells = <0>;
qcom,platform-supply-entry@0 {
reg = <0>;
qcom,supply-name = "gdsc";
qcom,supply-min-voltage = <0>;
qcom,supply-max-voltage = <0>;
qcom,supply-enable-load = <0>;
qcom,supply-disable-load = <0>;
};
};
};
mdss_dp_pll: qcom,mdss_dp_pll@c011000 {
compatible = "qcom,mdss_dp_pll_sdm660";
status = "ok";
label = "MDSS DP PLL";
cell-index = <0>;
#clock-cells = <1>;
reg = <0xc011c00 0x190>,
<0xc011000 0x910>,
<0x0c8c2300 0x8>;
reg-names = "pll_base", "phy_base", "gdsc_base";
gdsc-supply = <&gdsc_mdss>;
clocks = <&clock_mmss MMSS_MDSS_AHB_CLK>,
<&clock_rpmcc RPM_SMD_LN_BB_CLK1>,
<&clock_gcc GCC_USB3_CLKREF_CLK>;
clock-names = "iface_clk", "ref_clk_src", "ref_clk";
clock-rate = <0>;
qcom,platform-supply-entries {
#address-cells = <1>;
#size-cells = <0>;
qcom,platform-supply-entry@0 {
reg = <0>;
qcom,supply-name = "gdsc";
qcom,supply-min-voltage = <0>;
qcom,supply-max-voltage = <0>;
qcom,supply-enable-load = <0>;
qcom,supply-disable-load = <0>;
};
};
};
};

View File

@ -0,0 +1,641 @@
/* Copyright (c) 2016-2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include <dt-bindings/clock/mdss-14nm-pll-clk.h>
&soc {
mdss_mdp: qcom,mdss_mdp@c900000 {
compatible = "qcom,mdss_mdp";
status = "ok";
reg = <0x0c900000 0x90000>,
<0x0c9b0000 0x1040>;
reg-names = "mdp_phys", "vbif_phys";
interrupts = <0 83 0>;
interrupt-controller;
#interrupt-cells = <1>;
vdd-supply = <&gdsc_mdss>;
/* Bus Scale Settings */
qcom,msm-bus,name = "mdss_mdp";
qcom,msm-bus,num-cases = <3>;
qcom,msm-bus,num-paths = <2>;
qcom,msm-bus,vectors-KBps =
<22 512 0 0>, <23 512 0 0>,
<22 512 0 6400000>, <23 512 0 6400000>,
<22 512 0 6400000>, <23 512 0 6400000>;
/* Fudge factors */
qcom,mdss-ab-factor = <1 1>; /* 1 time */
qcom,mdss-ib-factor = <1 1>; /* 1 time */
qcom,mdss-clk-factor = <105 100>; /* 1.05 times */
qcom,max-mixer-width = <2560>;
qcom,max-pipe-width = <2560>;
qcom,max-dest-scaler-input-width = <2048>;
qcom,max-dest-scaler-output-width = <2560>;
/* VBIF QoS remapper settings*/
qcom,mdss-vbif-qos-rt-setting = <1 2 2 2>;
qcom,mdss-vbif-qos-nrt-setting = <1 1 1 1>;
qcom,vbif-settings = <0x00ac 0x00008040>,
<0x00d0 0x00002828>;
qcom,mdss-cx-ipeak = <&cx_ipeak_lm 3>;
qcom,mdss-has-panic-ctrl;
qcom,mdss-per-pipe-panic-luts = <0x000f>,
<0xffff>,
<0xfffc>,
<0xff00>;
qcom,mdss-mdp-reg-offset = <0x00001000>;
qcom,max-bandwidth-low-kbps = <6600000>;
qcom,max-bandwidth-high-kbps = <6600000>;
qcom,max-bandwidth-per-pipe-kbps = <3100000>;
qcom,max-clk-rate = <412500000>;
qcom,mdss-default-ot-rd-limit = <32>;
qcom,mdss-default-ot-wr-limit = <32>;
qcom,mdss-dram-channels = <2>;
/* Bandwidth limit settings */
qcom,max-bw-settings = <1 6600000>, /* Default */
<2 4500000>; /* Camera */
qcom,mdss-pipe-vig-off = <0x00005000 0x00007000>;
qcom,mdss-pipe-dma-off = <0x00025000 0x00027000
0x00029000>;
qcom,mdss-pipe-cursor-off = <0x00035000>;
qcom,mdss-pipe-vig-xin-id = <0 4>;
qcom,mdss-pipe-dma-xin-id = <1 5 9>;
qcom,mdss-pipe-cursor-xin-id = <2>;
/* These Offsets are relative to */
/* "mdp_phys + mdp-reg-offset" address */
qcom,mdss-pipe-vig-clk-ctrl-offsets = <0x2ac 0 0>,
<0x2b4 0 0>;
qcom,mdss-pipe-dma-clk-ctrl-offsets = <0x2ac 8 12>,
<0x2b4 8 12>,
<0x2c4 8 12>;
qcom,mdss-pipe-cursor-clk-ctrl-offsets = <0x3a8 16 15>;
qcom,mdss-ctl-off = <0x00002000 0x00002200 0x00002400
0x00002600 0x00002800>;
qcom,mdss-mixer-intf-off = <0x00045000 0x00046000
0x00047000 0x0004a000>;
qcom,mdss-dspp-off = <0x00055000 0x00057000>;
qcom,mdss-wb-off = <0x00066000>;
qcom,mdss-intf-off = <0x0006b000 0x0006b800
0x0006c000 0x0006c800>;
qcom,mdss-pingpong-off = <0x00071000 0x00071800
0x00072000 0x00072800>;
qcom,mdss-slave-pingpong-off = <0x00073000>;
qcom,mdss-ppb-ctl-off = <0x00000330 0x00000338 0x00000370
0x00000374> ;
qcom,mdss-ppb-cfg-off = <0x00000334 0x0000033C>;
qcom,mdss-has-pingpong-split;
qcom,mdss-has-separate-rotator;
qcom,mdss-ad-off = <0x0079000 0x00079800>;
qcom,mdss-cdm-off = <0x0007a200>;
qcom,mdss-dsc-off = <0x00081000 0x00081400>;
qcom,mdss-wfd-mode = "intf";
qcom,mdss-has-source-split;
qcom,mdss-highest-bank-bit = <0x1>;
qcom,mdss-has-decimation;
qcom,mdss-idle-power-collapse-enabled;
clocks = <&clock_mmss MMSS_MNOC_AHB_CLK>,
<&clock_mmss MMSS_MDSS_AHB_CLK>,
<&clock_mmss MMSS_MDSS_AXI_CLK>,
<&clock_mmss MMSS_THROTTLE_MDSS_AXI_CLK>,
<&clock_mmss MDP_CLK_SRC>,
<&clock_mmss MMSS_MDSS_MDP_CLK>,
<&clock_mmss MMSS_MDSS_VSYNC_CLK>,
<&clock_mmss MDP_CLK_SRC>;
clock-names = "mnoc_clk", "iface_clk", "bus_clk",
"throttle_bus_clk", "core_clk_src",
"core_clk", "vsync_clk", "lut_clk";
qcom,mdp-settings = <0x01190 0x00000000>,
<0x012ac 0xc0000ccc>,
<0x012b4 0xc0000ccc>,
<0x012bc 0x00cccccc>,
<0x012c4 0x0000cccc>,
<0x013a8 0x0cccc0c0>,
<0x013b0 0xccccc0c0>,
<0x013b8 0xcccc0000>,
<0x013d0 0x00cc0000>,
<0x0506c 0x00000000>,
<0x0706c 0x00000000>,
<0x0906c 0x00000000>,
<0x0b06c 0x00000000>,
<0x1506c 0x00000000>,
<0x1706c 0x00000000>,
<0x1906c 0x00000000>,
<0x1b06c 0x00000000>,
<0x2506c 0x00000000>,
<0x2706c 0x00000000>;
qcom,regs-dump-mdp = <0x01000 0x01458>,
<0x02000 0x02094>,
<0x02200 0x02294>,
<0x02400 0x02494>,
<0x02600 0x02694>,
<0x02800 0x02894>,
<0x05000 0x05154>,
<0x05a00 0x05b00>,
<0x07000 0x07154>,
<0x07a00 0x07b00>,
<0x25000 0x25184>,
<0x27000 0x27184>,
<0x29000 0x29184>,
<0x35000 0x35150>,
<0x45000 0x452bc>,
<0x46000 0x462bc>,
<0x47000 0x472bc>,
<0x4a000 0x4a2bc>,
<0x55000 0x5522c>,
<0x57000 0x5722c>,
<0x66000 0x662c0>,
<0x6b000 0x6b268>,
<0x6b800 0x6ba68>,
<0x6c000 0x6c268>,
<0x71000 0x710d4>,
<0x71800 0x718d4>,
<0x73000 0x730d4>,
<0x81000 0x81140>,
<0x81400 0x81540>;
qcom,regs-dump-names-mdp = "MDP",
"CTL_0", "CTL_1", "CTL_2", "CTL_3", "CTL_4",
"VIG0_SSPP", "VIG0", "VIG1_SSPP", "VIG1",
"DMA0_SSPP", "DMA1_SSPP","DMA2_SSPP",
"CURSOR0_SSPP",
"LAYER_0", "LAYER_1", "LAYER_2",
"LAYER_5",
"DSPP_0", "DSPP_1",
"WB_2",
"INTF_0", "INTF_1", "INTF_2",
"PP_0", "PP_1", "PP_4",
"DSC_0", "DSC_1";
/* buffer parameters to calculate prefill bandwidth */
qcom,mdss-prefill-outstanding-buffer-bytes = <0>;
qcom,mdss-prefill-y-buffer-bytes = <0>;
qcom,mdss-prefill-scaler-buffer-lines-bilinear = <2>;
qcom,mdss-prefill-scaler-buffer-lines-caf = <4>;
qcom,mdss-prefill-post-scaler-buffer-pixels = <2560>;
qcom,mdss-prefill-pingpong-buffer-pixels = <5120>;
qcom,mdss-reg-bus {
/* Reg Bus Scale Settings */
qcom,msm-bus,name = "mdss_reg";
qcom,msm-bus,num-cases = <4>;
qcom,msm-bus,num-paths = <1>;
qcom,msm-bus,active-only;
qcom,msm-bus,vectors-KBps =
<1 590 0 0>,
<1 590 0 76800>,
<1 590 0 160000>,
<1 590 0 320000>;
};
qcom,mdss-pp-offsets {
qcom,mdss-sspp-mdss-igc-lut-off = <0x2000>;
qcom,mdss-sspp-vig-pcc-off = <0x1b00>;
qcom,mdss-sspp-rgb-pcc-off = <0x380>;
qcom,mdss-sspp-dma-pcc-off = <0x380>;
qcom,mdss-lm-pgc-off = <0x3c0>;
qcom,mdss-dspp-gamut-off = <0x1600>;
qcom,mdss-dspp-pcc-off = <0x1700>;
qcom,mdss-dspp-pgc-off = <0x17c0>;
};
qcom,mdss-scaler-offsets {
qcom,mdss-vig-scaler-off = <0xa00>;
qcom,mdss-vig-scaler-lut-off = <0xb00>;
qcom,mdss-has-dest-scaler;
qcom,mdss-dest-block-off = <0x00061000>;
qcom,mdss-dest-scaler-off = <0x800 0x1000>;
qcom,mdss-dest-scaler-lut-off = <0x900 0x1100>;
};
smmu_mdp_unsec: qcom,smmu_mdp_unsec_cb {
compatible = "qcom,smmu_mdp_unsec";
iommus = <&mmss_bimc_smmu 0>;
gdsc-mmagic-mdss-supply = <&gdsc_bimc_smmu>;
clocks = <&clock_rpmcc RPM_SMD_MMSSNOC_AXI_CLK>,
<&clock_mmss MMSS_MNOC_AHB_CLK>,
<&clock_mmss MMSS_BIMC_SMMU_AHB_CLK>,
<&clock_mmss MMSS_BIMC_SMMU_AXI_CLK>;
clock-names = "mmss_noc_axi_clk",
"mmss_noc_ahb_clk",
"mmss_smmu_ahb_clk",
"mmss_smmu_axi_clk";
};
smmu_mdp_sec: qcom,smmu_mdp_sec_cb {
compatible = "qcom,smmu_mdp_sec";
iommus = <&mmss_bimc_smmu 1>;
gdsc-mmagic-mdss-supply = <&gdsc_bimc_smmu>;
clocks = <&clock_rpmcc RPM_SMD_MMSSNOC_AXI_CLK>,
<&clock_mmss MMSS_MNOC_AHB_CLK>,
<&clock_mmss MMSS_BIMC_SMMU_AHB_CLK>,
<&clock_mmss MMSS_BIMC_SMMU_AXI_CLK>;
clock-names = "mmss_noc_axi_clk",
"mmss_noc_ahb_clk",
"mmss_smmu_ahb_clk",
"mmss_smmu_axi_clk";
};
mdss_fb0: qcom,mdss_fb_primary {
cell-index = <0>;
compatible = "qcom,mdss-fb";
qcom,cont-splash-memory {
linux,contiguous-region = <&cont_splash_mem>;
};
};
mdss_fb1: qcom,mdss_fb_wfd {
cell-index = <1>;
compatible = "qcom,mdss-fb";
};
mdss_fb2: qcom,mdss_fb_dp {
cell-index = <2>;
compatible = "qcom,mdss-fb";
qcom,mdss-intf = <&mdss_dp_ctrl>;
};
};
mdss_dsi: qcom,mdss_dsi@0 {
compatible = "qcom,mdss-dsi";
#address-cells = <1>;
#size-cells = <1>;
gdsc-supply = <&gdsc_mdss>;
vdda-1p2-supply = <&pm660_l1>;
vdda-0p9-supply = <&pm660l_l1>;
ranges = <0xc994000 0xc994000 0x400
0xc994400 0xc994400 0x588
0xc828000 0xc828000 0xac
0xc996000 0xc996000 0x400
0xc996400 0xc996400 0x588
0xc828000 0xc828000 0xac>;
/* Bus Scale Settings */
qcom,msm-bus,name = "mdss_dsi";
qcom,msm-bus,num-cases = <2>;
qcom,msm-bus,num-paths = <1>;
qcom,msm-bus,vectors-KBps =
<22 512 0 0>,
<22 512 0 1000>;
qcom,mmss-ulp-clamp-ctrl-offset = <0x14>;
clocks = <&clock_mmss MMSS_MDSS_MDP_CLK>,
<&clock_mmss MMSS_MNOC_AHB_CLK>,
<&clock_mmss MMSS_MDSS_AHB_CLK>,
<&clock_mmss MMSS_MDSS_AXI_CLK>,
<&clock_mmss MMSS_MISC_AHB_CLK>,
<&mdss_dsi0_pll BYTE0_MUX_CLK>,
<&mdss_dsi1_pll BYTE1_MUX_CLK>,
<&mdss_dsi0_pll PIX0_MUX_CLK>,
<&mdss_dsi1_pll PIX1_MUX_CLK>;
clock-names = "mdp_core_clk",
"mnoc_clk", "iface_clk",
"bus_clk", "core_mmss_clk",
"ext_byte0_clk", "ext_byte1_clk",
"ext_pixel0_clk", "ext_pixel1_clk";
qcom,core-supply-entries {
#address-cells = <1>;
#size-cells = <0>;
qcom,core-supply-entry@0 {
reg = <0>;
qcom,supply-name = "gdsc";
qcom,supply-min-voltage = <0>;
qcom,supply-max-voltage = <0>;
qcom,supply-enable-load = <0>;
qcom,supply-disable-load = <0>;
};
};
qcom,ctrl-supply-entries {
#address-cells = <1>;
#size-cells = <0>;
qcom,ctrl-supply-entry@0 {
reg = <0>;
qcom,supply-name = "vdda-1p2";
qcom,supply-min-voltage = <1200000>;
qcom,supply-max-voltage = <1250000>;
qcom,supply-enable-load = <12560>;
qcom,supply-disable-load = <4>;
};
};
qcom,phy-supply-entries {
#address-cells = <1>;
#size-cells = <0>;
qcom,phy-supply-entry@0 {
reg = <0>;
qcom,supply-name = "vdda-0p9";
qcom,supply-min-voltage = <880000>;
qcom,supply-max-voltage = <925000>;
qcom,supply-enable-load = <73400>;
qcom,supply-disable-load = <32>;
};
};
mdss_dsi0: qcom,mdss_dsi_ctrl0@c994000 {
compatible = "qcom,mdss-dsi-ctrl";
label = "MDSS DSI CTRL->0";
cell-index = <0>;
reg = <0xc994000 0x400>,
<0xc994400 0x588>,
<0xc828000 0xac>;
reg-names = "dsi_ctrl", "dsi_phy", "mmss_misc_phys";
qcom,timing-db-mode;
wqhd-vddio-supply = <&pm660_l11>;
vdda-3p3-supply = <&pm660l_l6>;
lab-supply = <&lcdb_ldo_vreg>;
ibb-supply = <&lcdb_ncp_vreg>;
qcom,mdss-mdp = <&mdss_mdp>;
qcom,mdss-fb-map = <&mdss_fb0>;
clocks = <&clock_mmss MMSS_MDSS_BYTE0_CLK>,
<&clock_mmss MMSS_MDSS_PCLK0_CLK>,
<&clock_mmss MMSS_MDSS_ESC0_CLK>,
<&clock_mmss BYTE0_CLK_SRC>,
<&clock_mmss PCLK0_CLK_SRC>,
<&clock_mmss MMSS_MDSS_BYTE0_INTF_CLK>,
<&mdss_dsi0_pll BYTE0_MUX_CLK>,
<&mdss_dsi0_pll PIX0_MUX_CLK>,
<&mdss_dsi0_pll BYTE0_SRC_CLK>,
<&mdss_dsi0_pll PIX0_SRC_CLK>,
<&mdss_dsi0_pll SHADOW_BYTE0_SRC_CLK>,
<&mdss_dsi0_pll SHADOW_PIX0_SRC_CLK>;
clock-names = "byte_clk", "pixel_clk", "core_clk",
"byte_clk_rcg", "pixel_clk_rcg",
"byte_intf_clk", "pll_byte_clk_mux",
"pll_pixel_clk_mux", "pll_byte_clk_src",
"pll_pixel_clk_src", "pll_shadow_byte_clk_src",
"pll_shadow_pixel_clk_src";
qcom,null-insertion-enabled;
qcom,platform-strength-ctrl = [ff 06
ff 06
ff 06
ff 06
ff 00];
qcom,platform-regulator-settings = [1d
1d 1d 1d 1d];
qcom,platform-lane-config = [00 00 10 0f
00 00 10 0f
00 00 10 0f
00 00 10 0f
00 00 10 8f];
};
mdss_dsi1: qcom,mdss_dsi_ctrl1@c996000 {
compatible = "qcom,mdss-dsi-ctrl";
label = "MDSS DSI CTRL->1";
cell-index = <1>;
reg = <0xc996000 0x400>,
<0xc996400 0x588>,
<0xc828000 0xac>;
reg-names = "dsi_ctrl", "dsi_phy", "mmss_misc_phys";
qcom,timing-db-mode;
wqhd-vddio-supply = <&pm660_l11>;
lab-supply = <&lcdb_ldo_vreg>;
ibb-supply = <&lcdb_ncp_vreg>;
qcom,mdss-mdp = <&mdss_mdp>;
qcom,mdss-fb-map = <&mdss_fb0>;
clocks = <&clock_mmss MMSS_MDSS_BYTE1_CLK>,
<&clock_mmss MMSS_MDSS_PCLK1_CLK>,
<&clock_mmss MMSS_MDSS_ESC1_CLK>,
<&clock_mmss BYTE1_CLK_SRC>,
<&clock_mmss PCLK1_CLK_SRC>,
<&clock_mmss MMSS_MDSS_BYTE1_INTF_CLK>,
<&mdss_dsi1_pll BYTE1_MUX_CLK>,
<&mdss_dsi1_pll PIX1_MUX_CLK>,
<&mdss_dsi1_pll BYTE1_SRC_CLK>,
<&mdss_dsi1_pll PIX1_SRC_CLK>,
<&mdss_dsi1_pll SHADOW_BYTE1_SRC_CLK>,
<&mdss_dsi1_pll SHADOW_PIX1_SRC_CLK>;
clock-names = "byte_clk", "pixel_clk", "core_clk",
"byte_clk_rcg", "pixel_clk_rcg",
"byte_intf_clk", "pll_byte_clk_mux",
"pll_pixel_clk_mux", "pll_byte_clk_src",
"pll_pixel_clk_src", "pll_shadow_byte_clk_src",
"pll_shadow_pixel_clk_src";
qcom,null-insertion-enabled;
qcom,platform-strength-ctrl = [ff 06
ff 06
ff 06
ff 06
ff 00];
qcom,platform-regulator-settings = [1d
1d 1d 1d 1d];
qcom,platform-lane-config = [00 00 10 0f
00 00 10 0f
00 00 10 0f
00 00 10 0f
00 00 10 8f];
};
};
qcom,mdss_wb_panel {
compatible = "qcom,mdss_wb";
qcom,mdss_pan_res = <640 480>;
qcom,mdss_pan_bpp = <24>;
qcom,mdss-fb-map = <&mdss_fb1>;
};
msm_ext_disp: qcom,msm_ext_disp {
status = "ok";
compatible = "qcom,msm-ext-disp";
ext_disp_audio_codec: qcom,msm-ext-disp-audio-codec-rx {
compatible = "qcom,msm-ext-disp-audio-codec-rx";
qcom,msm_ext_disp = <&msm_ext_disp>;
};
};
mdss_dp_ctrl: qcom,dp_ctrl@c990000 {
status = "ok";
cell-index = <0>;
compatible = "qcom,mdss-dp";
qcom,mdss-fb-map = <&mdss_fb2>;
gdsc-supply = <&gdsc_mdss>;
vdda-1p8-supply = <&pm660_l10>;
vdda-0p9-supply = <&pm660l_l1>;
reg = <0xc990000 0xa8c>,
<0xc011000 0x910>,
<0x1fcb200 0x050>,
<0xc8c2200 0x1a0>,
<0x780000 0x621c>,
<0xc9e1000 0x02c>;
reg-names = "dp_ctrl", "dp_phy", "tcsr_regs", "dp_mmss_cc",
"qfprom_physical","hdcp_physical";
clocks = <&clock_mmss MMSS_MNOC_AHB_CLK>,
<&clock_mmss MMSS_MDSS_AHB_CLK>,
<&clock_mmss MMSS_MDSS_AXI_CLK>,
<&clock_mmss MMSS_MDSS_MDP_CLK>,
<&clock_mmss MMSS_MDSS_HDMI_DP_AHB_CLK>,
<&clock_mmss MMSS_MDSS_DP_AUX_CLK>,
<&clock_rpmcc RPM_SMD_LN_BB_CLK1>,
<&clock_gcc GCC_USB3_CLKREF_CLK>,
<&clock_gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>,
<&clock_mmss MMSS_MDSS_DP_LINK_CLK>,
<&clock_mmss MMSS_MDSS_DP_LINK_INTF_CLK>,
<&clock_mmss MMSS_MDSS_DP_CRYPTO_CLK>,
<&clock_mmss MMSS_MDSS_DP_PIXEL_CLK>,
<&clock_mmss DP_PIXEL_CLK_SRC>,
<&mdss_dp_pll DP_PHY_PLL_VCO_DIV_CLK>;
clock-names = "core_mnoc_clk", "core_iface_clk", "core_bus_clk",
"core_mdp_core_clk", "core_alt_iface_clk",
"core_aux_clk", "core_ref_clk_src", "core_ref_clk",
"core_ahb_phy_clk", "ctrl_link_clk",
"ctrl_link_iface_clk", "ctrl_crypto_clk",
"ctrl_pixel_clk", "pixel_clk_rcg", "pixel_parent";
qcom,dp-usbpd-detection = <&pm660_pdphy>;
qcom,msm_ext_disp = <&msm_ext_disp>;
qcom,aux-cfg0-settings = [20 00];
qcom,aux-cfg1-settings = [24 13 23 1d];
qcom,aux-cfg2-settings = [28 00];
qcom,aux-cfg3-settings = [2c 00];
qcom,aux-cfg4-settings = [30 0a];
qcom,aux-cfg5-settings = [34 28];
qcom,aux-cfg6-settings = [38 0a];
qcom,aux-cfg7-settings = [3c 03];
qcom,aux-cfg8-settings = [40 b7];
qcom,aux-cfg9-settings = [44 03];
qcom,logical2physical-lane-map = [00 01 02 03];
qcom,phy-register-offset = <0x4>;
qcom,max-pclk-frequency-khz = <300000>;
qcom,core-supply-entries {
#address-cells = <1>;
#size-cells = <0>;
qcom,core-supply-entry@0 {
reg = <0>;
qcom,supply-name = "gdsc";
qcom,supply-min-voltage = <0>;
qcom,supply-max-voltage = <0>;
qcom,supply-enable-load = <0>;
qcom,supply-disable-load = <0>;
};
};
qcom,ctrl-supply-entries {
#address-cells = <1>;
#size-cells = <0>;
qcom,ctrl-supply-entry@0 {
reg = <0>;
qcom,supply-name = "vdda-1p8";
qcom,supply-min-voltage = <1780000>;
qcom,supply-max-voltage = <1950000>;
qcom,supply-enable-load = <12560>;
qcom,supply-disable-load = <4>;
};
};
qcom,phy-supply-entries {
#address-cells = <1>;
#size-cells = <0>;
qcom,phy-supply-entry@0 {
reg = <0>;
qcom,supply-name = "vdda-0p9";
qcom,supply-min-voltage = <880000>;
qcom,supply-max-voltage = <925000>;
qcom,supply-enable-load = <73400>;
qcom,supply-disable-load = <32>;
};
};
};
mdss_rotator: qcom,mdss_rotator {
compatible = "qcom,sde_rotator";
reg = <0x0c900000 0xab100>,
<0x0c9b0000 0x1040>;
reg-names = "mdp_phys",
"rot_vbif_phys";
qcom,mdss-rot-mode = <1>;
qcom,mdss-highest-bank-bit = <0x1>;
/* Bus Scale Settings */
qcom,msm-bus,name = "mdss_rotator";
qcom,msm-bus,num-cases = <3>;
qcom,msm-bus,num-paths = <1>;
qcom,msm-bus,vectors-KBps =
<22 512 0 0>,
<22 512 0 6400000>,
<22 512 0 6400000>;
rot-vdd-supply = <&gdsc_mdss>;
qcom,supply-names = "rot-vdd";
clocks = <&clock_mmss MMSS_MNOC_AHB_CLK>,
<&clock_mmss MMSS_MDSS_AHB_CLK>,
<&clock_mmss ROT_CLK_SRC>,
<&clock_mmss MMSS_MDSS_ROT_CLK>,
<&clock_mmss MMSS_MDSS_AXI_CLK>;
clock-names = "mnoc_clk",
"iface_clk", "rot_core_clk",
"rot_clk", "axi_clk";
interrupt-parent = <&mdss_mdp>;
interrupts = <2 0>;
/* VBIF QoS remapper settings*/
qcom,mdss-rot-vbif-qos-setting = <1 1 1 1>;
qcom,mdss-rot-xin-id = <14 15>;
qcom,mdss-default-ot-rd-limit = <32>;
qcom,mdss-default-ot-wr-limit = <32>;
qcom,sde-reg-bus {
/* Reg Bus Scale Settings */
qcom,msm-bus,name = "mdss_rot_reg";
qcom,msm-bus,num-cases = <4>;
qcom,msm-bus,num-paths = <1>;
qcom,msm-bus,active-only;
qcom,msm-bus,vectors-KBps =
<1 590 0 0>,
<1 590 0 76800>,
<1 590 0 160000>,
<1 590 0 320000>;
};
};
};
#include "sdm660-mdss-panels.dtsi"

View File

@ -0,0 +1,39 @@
/* Copyright (c) 2016-2017, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
/dts-v1/;
#include "sdm660.dtsi"
#include "sdm660-mtp.dtsi"
#include "sdm660-external-codec.dtsi"
/ {
model = "Qualcomm Technologies, Inc. SDM 660 PM660 + PM660L MTP";
compatible = "qcom,sdm660-mtp", "qcom,sdm660", "qcom,mtp";
qcom,board-id = <8 0>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
<0x0001001b 0x0201011a 0x0 0x0>,
<0x0001001b 0x0102001a 0x0 0x0>;
};
&tavil_snd {
qcom,msm-mbhc-moist-cfg = <0>, <0>, <3>;
};
&slim_aud {
/delete-node/tasha_codec;
};
&soc {
/delete-node/sound-9335;
};

View File

@ -0,0 +1,277 @@
/* Copyright (c) 2016-2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include "sdm660-pinctrl.dtsi"
#include "sdm660-camera-sensor-mtp.dtsi"
/ {
mtp_batterydata: qcom,battery-data {
qcom,batt-id-range-pct = <15>;
#include "fg-gen3-batterydata-itech-3000mah.dtsi"
#include "fg-gen3-batterydata-ascent-3450mah.dtsi"
};
};
&uartblsp1dm1 {
status = "ok";
pinctrl-names = "default";
pinctrl-0 = <&uart_console_active>;
};
&ufsphy1 {
vdda-phy-supply = <&pm660l_l1>;
vdda-pll-supply = <&pm660_l10>;
vdda-phy-max-microamp = <51400>;
vdda-pll-max-microamp = <14200>;
status = "ok";
};
&ufs1 {
vdd-hba-supply = <&gdsc_ufs>;
vdd-hba-fixed-regulator;
vcc-supply = <&pm660l_l4>;
vccq2-supply = <&pm660_l8>;
vcc-max-microamp = <500000>;
vccq2-max-microamp = <600000>;
qcom,vddp-ref-clk-supply = <&pm660_l1>;
qcom,vddp-ref-clk-max-microamp = <100>;
status = "ok";
};
&pm660_gpios {
/* GPIO 4 (NFC_CLK_REQ) */
gpio@c300 {
qcom,mode = <0>;
qcom,vin-sel = <1>;
qcom,src-sel = <0>;
qcom,master-en = <1>;
status = "okay";
};
/* GPIO 11 for Home Key */
gpio@ca00 {
status = "okay";
qcom,mode = <0>;
qcom,pull = <0>;
qcom,vin-sel = <0>;
qcom,src-sel = <0>;
qcom,out-strength = <1>;
};
};
&i2c_6 { /* BLSP1 QUP6 (NFC) */
status = "okay";
nq@28 {
compatible = "qcom,nq-nci";
reg = <0x28>;
qcom,nq-irq = <&tlmm 28 0x00>;
qcom,nq-ven = <&tlmm 29 0x00>;
qcom,nq-firm = <&tlmm 30 0x00>;
qcom,nq-clkreq = <&pm660_gpios 4 0x00>;
qcom,nq-esepwr = <&tlmm 31 0x00>;
interrupt-parent = <&tlmm>;
qcom,clk-src = "BBCLK3";
interrupts = <28 0>;
interrupt-names = "nfc_irq";
pinctrl-names = "nfc_active", "nfc_suspend";
pinctrl-0 = <&nfc_int_active &nfc_enable_active>;
pinctrl-1 = <&nfc_int_suspend &nfc_enable_suspend>;
clocks = <&clock_rpmcc RPM_SMD_LN_BB_CLK3_PIN>;
clock-names = "ref_clk";
};
};
&mdss_mdp {
qcom,mdss-pref-prim-intf = "dsi";
};
&mdss_dsi {
hw-config = "split_dsi";
};
&mdss_dsi0 {
qcom,dsi-pref-prim-pan = <&dsi_dual_nt35597_truly_video>;
pinctrl-names = "mdss_default", "mdss_sleep";
pinctrl-0 = <&mdss_dsi_active &mdss_te_active>;
pinctrl-1 = <&mdss_dsi_suspend &mdss_te_suspend>;
qcom,platform-reset-gpio = <&tlmm 53 0>;
qcom,platform-te-gpio = <&tlmm 59 0>;
};
&mdss_dsi1 {
qcom,dsi-pref-prim-pan = <&dsi_dual_nt35597_truly_video>;
pinctrl-names = "mdss_default", "mdss_sleep";
pinctrl-0 = <&mdss_dsi_active &mdss_te_active>;
pinctrl-1 = <&mdss_dsi_suspend &mdss_te_suspend>;
qcom,platform-reset-gpio = <&tlmm 53 0>;
qcom,platform-te-gpio = <&tlmm 59 0>;
};
&mdss_dp_ctrl {
pinctrl-names = "mdss_dp_active", "mdss_dp_sleep";
pinctrl-0 = <&mdss_dp_aux_active &mdss_dp_usbplug_cc_active>;
pinctrl-1 = <&mdss_dp_aux_suspend &mdss_dp_usbplug_cc_suspend>;
qcom,aux-en-gpio = <&tlmm 55 0>;
qcom,aux-sel-gpio = <&tlmm 56 0>;
qcom,usbplug-cc-gpio = <&tlmm 58 0>;
};
&pm660l_wled {
qcom,led-strings-list = [01 02];
};
&dsi_dual_nt35597_truly_video {
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <4095>;
qcom,mdss-dsi-mode-sel-gpio-state = "dual_port";
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
};
&dsi_dual_nt35597_truly_cmd {
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <4095>;
qcom,mdss-dsi-mode-sel-gpio-state = "dual_port";
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
};
&dsi_dual_sharp_video {
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <4095>;
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
};
&dsi_nt35597_truly_dsc_video {
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <4095>;
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
};
&dsi_nt35597_truly_dsc_cmd {
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <4095>;
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
};
&dsi_nt35695b_truly_fhd_video {
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <4095>;
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
};
&dsi_nt35695b_truly_fhd_cmd {
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <4095>;
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
};
&dsi_rm67195_amoled_fhd_cmd {
qcom,panel-supply-entries = <&dsi_panel_pwr_supply_labibb_amoled>;
};
&dsi_lgd_incell_sw49106_fhd_video {
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <4095>;
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
};
&sdhc_1 {
/* device core power supply */
vdd-supply = <&pm660l_l4>;
qcom,vdd-voltage-level = <2950000 2950000>;
qcom,vdd-current-level = <200 570000>;
/* device communication power supply */
vdd-io-supply = <&pm660_l8>;
qcom,vdd-io-always-on;
qcom,vdd-io-lpm-sup;
qcom,vdd-io-voltage-level = <1800000 1800000>;
qcom,vdd-io-current-level = <200 325000>;
pinctrl-names = "active", "sleep";
pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on &sdc1_rclk_on>;
pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off &sdc1_rclk_off>;
qcom,clk-rates = <400000 20000000 25000000 50000000 100000000 192000000
384000000>;
qcom,nonremovable;
qcom,bus-speed-mode = "HS400_1p8v", "HS200_1p8v", "DDR_1p8v";
status = "ok";
};
&sdhc_2 {
/* device core power supply */
vdd-supply = <&pm660l_l5>;
qcom,vdd-voltage-level = <2950000 2950000>;
qcom,vdd-current-level = <15000 800000>;
/* device communication power supply */
vdd-io-supply = <&pm660l_l2>;
qcom,vdd-io-voltage-level = <1800000 2950000>;
qcom,vdd-io-current-level = <200 22000>;
pinctrl-names = "active", "sleep";
pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>;
pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;
#address-cells = <0>;
interrupt-parent = <&sdhc_2>;
interrupts = <0 1 2>;
#interrupt-cells = <1>;
interrupt-map-mask = <0xffffffff>;
interrupt-map = <0 &intc 0 0 125 0
1 &intc 0 0 221 0
2 &tlmm 54 0>;
interrupt-names = "hc_irq", "pwr_irq", "status_irq";
cd-gpios = <&tlmm 54 0x1>;
qcom,clk-rates = <400000 20000000 25000000 50000000 100000000
200000000>;
qcom,bus-speed-mode = "SDR12", "SDR25", "SDR50", "DDR50", "SDR104";
status = "ok";
};
&soc {
qcom,msm-ssc-sensors {
compatible = "qcom,msm-ssc-sensors";
};
};
&mem_client_3_size {
qcom,peripheral-size = <0xf00000>;
};
&pm660_fg {
qcom,battery-data = <&mtp_batterydata>;
};
&i2c_2 {
status = "ok";
smb1351-charger@1d {
compatible = "qcom,smb1351-charger";
reg = <0x1d>;
qcom,parallel-charger;
qcom,float-voltage-mv = <4400>;
qcom,recharge-mv = <100>;
qcom,parallel-en-pin-polarity = <1>;
};
};

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,803 @@
/* Copyright (c) 2016-2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include <dt-bindings/interrupt-controller/arm-gic.h>
&soc {
qcom,spm@178120000 {
compatible = "qcom,spm-v2";
#address-cells = <1>;
#size-cells = <1>;
reg = <0x17812000 0x1000>;
qcom,name = "gold-l2"; /* Gold L2 SAW */
qcom,saw2-ver-reg = <0xfd0>;
qcom,cpu-vctl-list = <&CPU4 &CPU5 &CPU6 &CPU7>;
qcom,vctl-timeout-us = <500>;
qcom,vctl-port = <0x0>;
qcom,phase-port = <0x1>;
qcom,saw2-avs-ctl = <0x1010031>;
qcom,saw2-avs-limit = <0x4580458>;
qcom,pfm-port = <0x2>;
};
qcom,spm@179120000 {
compatible = "qcom,spm-v2";
#address-cells = <1>;
#size-cells = <1>;
reg = <0x17912000 0x1000>;
qcom,name = "silver-l2"; /* Silver L2 SAW */
qcom,saw2-ver-reg = <0xfd0>;
qcom,cpu-vctl-list = <&CPU0 &CPU1 &CPU2 &CPU3>;
qcom,vctl-timeout-us = <500>;
qcom,vctl-port = <0x0>;
qcom,phase-port = <0x1>;
qcom,saw2-avs-ctl = <0x1010031>;
qcom,saw2-avs-limit = <0x4580458>;
qcom,pfm-port = <0x2>;
};
qcom,lpm-levels {
compatible = "qcom,lpm-levels";
qcom,use-psci;
#address-cells = <1>;
#size-cells = <0>;
qcom,pm-cluster@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
label = "system";
qcom,spm-device-names = "cci";
qcom,psci-mode-shift = <8>;
qcom,psci-mode-mask = <0xf>;
qcom,pm-cluster-level@0{
reg = <0>;
label = "system-wfi";
qcom,psci-mode = <0x0>;
qcom,latency-us = <1654>;
qcom,ss-power = <219>;
qcom,energy-overhead = <98750>;
qcom,time-overhead = <2294>;
};
qcom,pm-cluster-level@1{ /* E3 */
reg = <1>;
label = "system-pc";
qcom,psci-mode = <0x3>;
qcom,latency-us = <4506>;
qcom,ss-power = <88>;
qcom,energy-overhead = <1228536>;
qcom,time-overhead = <15337>;
qcom,min-child-idx = <3>;
qcom,is-reset;
qcom,notify-rpm;
};
qcom,pm-cluster@0{
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
label = "pwr";
qcom,spm-device-names = "l2";
qcom,cpu = <&CPU0 &CPU1 &CPU2 &CPU3>;
qcom,psci-mode-shift = <4>;
qcom,psci-mode-mask = <0xf>;
qcom,pm-cluster-level@0{ /* D1 */
reg = <0>;
label = "pwr-l2-wfi";
qcom,psci-mode = <0x1>;
qcom,latency-us = <51>;
qcom,ss-power = <250>;
qcom,energy-overhead = <83452>;
qcom,time-overhead = <89>;
};
qcom,pm-cluster-level@1{ /* D2D */
reg = <1>;
label = "pwr-l2-dynret";
qcom,psci-mode = <0x2>;
qcom,latency-us = <421>;
qcom,ss-power = <235>;
qcom,energy-overhead = <219416>;
qcom,time-overhead = <781>;
qcom,min-child-idx = <1>;
};
qcom,pm-cluster-level@2{ /* D2E */
reg = <2>;
label = "pwr-l2-ret";
qcom,psci-mode = <0x3>;
qcom,latency-us = <517>;
qcom,ss-power = <226>;
qcom,energy-overhead= <299405>;
qcom,time-overhead = <922>;
qcom,min-child-idx = <2>;
};
qcom,pm-cluster-level@3{ /* D4 */
reg = <3>;
label = "pwr-l2-pc";
qcom,psci-mode = <0x4>;
qcom,latency-us = <2118>;
qcom,ss-power = <210>;
qcom,energy-overhead = <833056>;
qcom,time-overhead = <2918>;
qcom,min-child-idx = <2>;
qcom,is-reset;
};
qcom,pm-cpu {
#address-cells = <1>;
#size-cells = <0>;
qcom,psci-mode-shift = <0>;
qcom,psci-mode-mask = <0xf>;
qcom,pm-cpu-level@0 { /* C1 */
reg = <0>;
qcom,spm-cpu-mode = "wfi";
qcom,psci-cpu-mode = <0x1>;
qcom,latency-us = <42>;
qcom,ss-power = <250>;
qcom,energy-overhead = <30562>;
qcom,time-overhead = <91>;
};
qcom,pm-cpu-level@1 { /* C2D */
reg = <1>;
qcom,psci-cpu-mode = <2>;
qcom,spm-cpu-mode = "ret";
qcom,latency-us = <63>;
qcom,ss-power = <245>;
qcom,energy-overhead = <49239>;
qcom,time-overhead = <172>;
};
qcom,pm-cpu-level@2 { /* C3 */
reg = <2>;
qcom,spm-cpu-mode = "pc";
qcom,psci-cpu-mode = <0x3>;
qcom,latency-us = <376>;
qcom,ss-power = <237>;
qcom,energy-overhead = <181018>;
qcom,time-overhead = <666>;
qcom,is-reset;
};
};
};
qcom,pm-cluster@1{
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
label = "perf";
qcom,spm-device-names = "l2";
qcom,cpu = <&CPU4 &CPU5 &CPU6 &CPU7>;
qcom,psci-mode-shift = <4>;
qcom,psci-mode-mask = <0xf>;
qcom,pm-cluster-level@0{ /* D1 */
reg = <0>;
label = "perf-l2-wfi";
qcom,psci-mode = <0x1>;
qcom,latency-us = <51>;
qcom,ss-power = <283>;
qcom,energy-overhead = <83083>;
qcom,time-overhead = <89>;
};
qcom,pm-cluster-level@1{ /* D2D */
reg = <1>;
label = "perf-l2-dynret";
qcom,psci-mode = <2>;
qcom,latency-us = <345>;
qcom,ss-power = <254>;
qcom,energy-overhead = <198349>;
qcom,time-overhead = <659>;
qcom,min-child-idx = <1>;
};
qcom,pm-cluster-level@2{ /* D2E */
reg = <2>;
label = "perf-l2-ret";
qcom,psci-mode = <3>;
qcom,latency-us = <419>;
qcom,ss-power = <244>;
qcom,energy-overhead = <281921>;
qcom,time-overhead = <737>;
qcom,min-child-idx = <2>;
};
qcom,pm-cluster-level@3{ /* D4 */
reg = <3>;
label = "perf-l2-pc";
qcom,psci-mode = <0x4>;
qcom,latency-us = <1654>;
qcom,ss-power = <219>;
qcom,energy-overhead = <815573>;
qcom,time-overhead = <2294>;
qcom,min-child-idx = <2>;
qcom,is-reset;
};
qcom,pm-cpu {
#address-cells = <1>;
#size-cells = <0>;
qcom,psci-mode-shift = <0>;
qcom,psci-mode-mask = <0xf>;
qcom,pm-cpu-level@0 { /* C1 */
reg = <0>;
qcom,spm-cpu-mode = "wfi";
qcom,psci-cpu-mode = <0x1>;
qcom,latency-us = <39>;
qcom,ss-power = <292>;
qcom,energy-overhead = <37558>;
qcom,time-overhead = <68>;
};
qcom,pm-cpu-level@1 { /* C2D */
reg = <1>;
qcom,psci-cpu-mode = <2>;
qcom,spm-cpu-mode = "ret";
qcom,latency-us = <60>;
qcom,ss-power = <275>;
qcom,energy-overhead = <70737>;
qcom,time-overhead = <181>;
};
qcom,pm-cpu-level@2 { /* C3 */
reg = <2>;
qcom,spm-cpu-mode = "pc";
qcom,psci-cpu-mode = <0x3>;
qcom,latency-us = <324>;
qcom,ss-power = <263>;
qcom,energy-overhead = <213213>;
qcom,time-overhead = <621>;
qcom,is-reset;
};
};
};
};
};
qcom,rpm-stats@200000 {
compatible = "qcom,rpm-stats";
reg = <0x200000 0x1000>,
<0x290014 0x4>,
<0x29001c 0x4>;
reg-names = "phys_addr_base",
"offset_addr",
"heap_phys_addrbase";
qcom,sleep-stats-version = <2>;
};
qcom,rpm-master-stats@778150 {
compatible = "qcom,rpm-master-stats";
reg = <0x778150 0x5000>;
qcom,masters = "APSS", "MPSS", "ADSP", "CDSP", "TZ";
qcom,master-stats-version = <2>;
qcom,master-offset = <4096>;
};
/* TODO review changed values */
rpm_msg_ram: memory@0x778000 {
compatible = "qcom,rpm-msg-ram";
reg = <0x778000 0x7000>;
};
rpm_code_ram: rpm-memory@0x778000 {
compatible = "qcom,rpm-code-ram";
reg = <0x778000 0x5000>;
};
qcom,system-stats {
compatible = "qcom,system-stats";
qcom,rpm-msg-ram = <&rpm_msg_ram>;
qcom,rpm-code-ram = <&rpm_code_ram>;
qcom,masters = "APSS", "MPSS", "ADSP", "CDSP", "TZ";
};
qcom,mpm@7781b8 {
compatible = "qcom,mpm-v2";
reg = <0x7781b8 0x1000>, /* MSM_RPM_MPM_BASE 4K */
<0x17911008 0x4>; /* MSM_APCS_GCC_BASE 4K */
reg-names = "vmpm", "ipc";
interrupts = <GIC_SPI 171 IRQ_TYPE_EDGE_RISING>;
clocks = <&clock_rpmcc CXO_SMD_LPM_CLK>;
clock-names = "xo";
qcom,num-mpm-irqs = <96>;
qcom,ipc-bit-offset = <1>;
qcom,gic-parent = <&intc>;
qcom,gic-map =
<0x02 216>, /* tsens1_tsens_upper_lower_int */
<0x34 275>, /* qmp_usb3_lfps_rxterm_irq_cx */
<0x3d 209>, /* lpi_dir_conn_irq_apps[1] */
<0x4f 379>, /* qusb2phy_intr for Dm */
<0x50 380>, /* qusb2phy_intr for Dm for secondary PHY */
<0x51 379>, /* qusb2phy_intr for Dp */
<0x52 380>, /* qusb2phy_intr for Dp for secondary PHY */
<0x57 358>, /* ee0_apps_hlos_spmi_periph_irq */
<0x5b 519>, /* lpass_pmu_tmr_timeout_irq_cx */
<0xff 16>, /* APC[0-7]_qgicQTmrHypPhysIrptReq */
<0xff 17>, /* APC[0-7]_qgicQTmrSecPhysIrptReq */
<0xff 18>, /* APC[0-7]_qgicQTmrNonSecPhysIrptReq */
<0xff 19>, /* APC[0-7]_qgicQTmrVirtIrptReq */
<0xff 20>, /* APC[0-7]_dbgCommRxFull */
<0xff 21>, /* APC[0-7]_dbgCommTxEmpty */
<0xff 22>, /* APC[0-7]_qgicPerfMonIrptReq */
<0xff 23>, /* corespm_vote_int[0-7] */
<0xff 24>, /* APC[0-3]_qgicExtFaultIrptReq */
<0xff 28>, /* qgicWakeupSync[0-7] */
<0xff 29>, /* APCC_cti_SPI_intx[0-7] */
<0xff 30>, /* APCC_cti_SPI_inty[0-7] */
<0xff 32>, /* l2spm_vote_int[0] */
<0xff 33>, /* l2spm_vote_int[1] */
<0xff 34>, /* APCC_qgicL2ErrorIrptReq */
<0xff 35>, /* WDT_barkInt */
<0xff 36>, /* WDT_biteExpired */
<0xff 39>, /* QTMR_qgicFrm0VirtIrq */
<0xff 40>, /* QTMR_qgicFrm0PhyIrq */
<0xff 41>, /* QTMR_qgicFrm1PhyIrq */
<0xff 42>, /* QTMR_qgicFrm2PhyIrq */
<0xff 43>, /* QTMR_qgicFrm3PhyIrq */
<0xff 44>, /* QTMR_qgicFrm4PhyIrq */
<0xff 45>, /* QTMR_qgicFrm5PhyIrq */
<0xff 46>, /* QTMR_qgicFrm6PhyIrq */
<0xff 47>, /* rbif_Irq[0] */
<0xff 48>, /* rbif_Irq[1] */
<0xff 49>, /* rbif_Irq[2] */
<0xff 50>, /* rbif_Irq[3] */
<0xff 51>, /* rbif_Irq[4] */
<0xff 52>, /* cci_spm_vote_summary_int */
<0xff 54>, /* nERRORIRQ */
<0xff 55>, /* nEVNTCNTOVERFLOW_cci */
<0xff 56>, /* QTMR_qgicFrm0VirtIrq */
<0xff 57>, /* QTMR_qgicFrm0PhyIrq */
<0xff 58>, /* QTMR_qgicFrm1PhyIrq */
<0xff 59>, /* QTMR_qgicFrm2PhyIrq */
<0xff 60>, /* QTMR_qgicFrm3PhyIrq */
<0xff 61>, /* QTMR_qgicFrm4PhyIrq */
<0xff 62>, /* QTMR_qgicFrm5PhyIrq */
<0xff 63>, /* QTMR_qgicFrm6PhyIrq */
<0xff 64>, /* wakeup_counter_irq_OR */
<0xff 65>, /* APC[0-3]_vs_alarm */
<0xff 66>, /* apc1_vs_alarm */
<0xff 67>, /* o_pwr_osm_irq */
<0xff 68>, /* o_perf_osm_irq */
<0xff 69>, /* o_pwr_dcvsh_interrupt */
<0xff 70>, /* o_perf_dcvsh_interrupt */
<0xff 73>, /* L2_EXTERRIRQ_C0 */
<0xff 74>, /* L2_EXTERRIRQ_C1 */
<0xff 75>, /* L2_INTERRIRQ_C0 */
<0xff 76>, /* L2_INTERRIRQ_C1 */
<0xff 77>, /* L2SPM_svicInt[0] */
<0xff 78>, /* L2SPM_svicInt[1] */
<0xff 79>, /* L2SPM_svicIntSwDone[0] */
<0xff 80>, /* L2SPM_svicIntSwDone[1] */
<0xff 81>, /* l2_avs_err[0] */
<0xff 82>, /* l2_avs_err[1] */
<0xff 83>, /* l2_avs_ack[0] */
<0xff 84>, /* l2_avs_ack[1] */
<0xff 98>, /* o_qm_interrupt */
<0xff 100>, /* camss_vbif_1_irpt */
<0xff 101>, /* processor_1_user_int */
<0xff 102>, /* processor_1_kernel_int */
<0xff 106>, /* dir_conn_irq_lpa_dsp[2] */
<0xff 107>, /* dir_conn_irq_lpa_dsp[1] */
<0xff 109>, /* camss_vbif_0_irpt */
<0xff 110>, /* csiphy_0_irq */
<0xff 111>, /* csiphy_1_irq */
<0xff 112>, /* csiphy_2_irq */
<0xff 115>, /* mdss_irq */
<0xff 116>, /* mdss_vbif_irpt */
<0xff 117>, /* dir_conn_irq_lpa_dsp[0] */
<0xff 119>, /* lpass_irq_out_apcs[11] */
<0xff 122>, /* o_pimem_tpdm_bc_irq_ofsat */
<0xff 123>, /* o_pimem_tpdm_tc_irq_ofsat */
<0xff 124>, /* dir_conn_irq_sensors[1] */
<0xff 125>, /* dir_conn_irq_sensors[0] */
<0xff 127>, /* peripheral_irq[2] */
<0xff 128>, /* peripheral_irq[3] */
<0xff 129>, /* peripheral_irq[4] */
<0xff 130>, /* peripheral_irq[5] */
<0xff 133>, /* peripheral_irq[2] */
<0xff 134>, /* peripheral_irq[3] */
<0xff 135>, /* peripheral_irq[4] */
<0xff 136>, /* peripheral_irq[5] */
<0xff 139>, /* peripheral_irq[0] */
<0xff 140>, /* peripheral_irq[1] */
<0xff 142>, /* sdcc_irq[0] */
<0xff 143>, /* sdcc_irq[1] */
<0xff 144>, /* sdcc_pwr_cmd_irq */
<0xff 145>, /* peripheral_irq[0] */
<0xff 146>, /* peripheral_irq[1] */
<0xff 148>, /* osmmu_CIrpt[4] */
<0xff 149>, /* osmmu_CIrpt[5] */
<0xff 150>, /* sdio_wakeup_irq */
<0xff 151>, /* acvremoval_int */
<0xff 152>, /* trs_int */
<0xff 155>, /* dir_conn_irq_lpa_dsp[5] */
<0xff 156>, /* dir_conn_irq_lpa_dsp[4] */
<0xff 157>, /* sdcc_irq[0] */
<0xff 158>, /* sdcc_irq[1] */
<0xff 159>, /* lpass_irq_out_apcs[39] */
<0xff 160>, /* lpass_irq_out_apcs[38] */
<0xff 163>, /* usb30_ctrl_irq[0] */
<0xff 164>, /* usb30_bam_irq[0] */
<0xff 165>, /* usb30_hs_phy_irq */
<0xff 166>, /* o_lm_int_2qgic */
<0xff 169>, /* lpass_irq_out_apcs[33] */
<0xff 171>, /* usb20s_hs_phy_irq */
<0xff 172>, /* dcvs_int[6] */
<0xff 173>, /* dcvs_int[7] */
<0xff 175>, /* usb20s_ee1_irq */
<0xff 176>, /* usb20s_power_event_irq */
<0xff 184>, /* dir_conn_irq_lpa_dsp[3] */
<0xff 185>, /* camss_vbif_2_irpt */
<0xff 186>, /* mnoc_obs_mainfault */
<0xff 188>, /* lpass_irq_out_apcs[00] */
<0xff 189>, /* lpass_irq_out_apcs[01] */
<0xff 190>, /* lpass_irq_out_apcs[02] */
<0xff 191>, /* lpass_irq_out_apcs[03] */
<0xff 192>, /* lpass_irq_out_apcs[04] */
<0xff 193>, /* lpass_irq_out_apcs[05] */
<0xff 194>, /* lpass_irq_out_apcs[06] */
<0xff 195>, /* lpass_irq_out_apcs[07] */
<0xff 196>, /* lpass_irq_out_apcs[08] */
<0xff 197>, /* lpass_irq_out_apcs[09] */
<0xff 199>, /* qdss_usb_trace_bam_irq[0] */
<0xff 200>, /* rpm_ipc[4] */
<0xff 201>, /* rpm_ipc[5] */
<0xff 202>, /* rpm_ipc[6] */
<0xff 203>, /* rpm_ipc[7] */
<0xff 204>, /* rpm_ipc[20] */
<0xff 205>, /* rpm_ipc[21] */
<0xff 206>, /* rpm_ipc[22] */
<0xff 207>, /* rpm_ipc[23] */
<0xff 208>, /* lpi_dir_conn_irq_apps[0] */
<0xff 210>, /* lpi_dir_conn_irq_apps[2] */
<0xff 212>, /* usb30s_power_event_irq */
<0xff 213>, /* secure_wdog_bark_irq */
<0xff 214>, /* tsens1_tsens_max_min_int */
<0xff 215>, /* o_bimc_intr[0] */
<0xff 217>, /* o_ocimem_nonsec_irq */
<0xff 218>, /* cpr_irq[1] */
<0xff 219>, /* lpass_irq_out_vmm[00] */
<0xff 220>, /* spmi_protocol_irq */
<0xff 221>, /* lpass_irq_out_vmm[01] */
<0xff 222>, /* lpass_irq_out_vmm[02] */
<0xff 223>, /* spdm_offline_irq */
<0xff 224>, /* spdm_realtime_irq[1] */
<0xff 225>, /* snoc_obs_mainFault */
<0xff 226>, /* cnoc_obs_mainFault */
<0xff 227>, /* o_tcsr_xpu3_sec_summary_intr */
<0xff 228>, /* o_tcsr_xpu3_non_sec_summary_intr */
<0xff 229>, /* o_timeout_slave_hmss_summary_intr */
<0xff 230>, /* o_tcsr_vmidmt_client_sec_summary_intr */
<0xff 231>, /* o_tcsr_vmidmt_client_nsec_summary_intr */
<0xff 232>, /* o_tcsr_vmidmt_cfg_sec_summary_intr */
<0xff 233>, /* o_tcsr_vmidmt_cfg_non_sec_summary_intr */
<0xff 234>, /* lpass_irq_out_vmm[03] */
<0xff 235>, /* cpr_irq[0] */
<0xff 236>, /* crypto_core_irq[0] */
<0xff 237>, /* crypto_core_irq[1] */
<0xff 238>, /* crypto_bam_irq[0] */
<0xff 239>, /* crypto_bam_irq[1] */
<0xff 240>, /* summary_irq_hmss */
<0xff 241>, /* dir_conn_irq_hmss[7] */
<0xff 242>, /* dir_conn_irq_hmss[6] */
<0xff 243>, /* dir_conn_irq_hmss[5] */
<0xff 244>, /* dir_conn_irq_hmss[4] */
<0xff 245>, /* dir_conn_irq_hmss[3] */
<0xff 246>, /* dir_conn_irq_hmss[2] */
<0xff 247>, /* dir_conn_irq_hmss[1] */
<0xff 248>, /* dir_conn_irq_hmss[0] */
<0xff 249>, /* summary_irq_hmss_tz */
<0xff 250>, /* cpr_irq[3] */
<0xff 251>, /* cpr_irq[2] */
<0xff 252>, /* cpr_irq[1] */
<0xff 253>, /* sdcc_pwr_cmd_irq */
<0xff 254>, /* sdio_wakeup_irq */
<0xff 255>, /* cpr_irq[0] */
<0xff 256>, /* lpass_irq_out_apcs[34] */
<0xff 257>, /* lpass_irq_out_apcs[35] */
<0xff 258>, /* lpass_irq_out_apcs[21] */
<0xff 261>, /* o_tcsr_mmu_nsgcfglrpt_summary_intr */
<0xff 262>, /* o_tcsr_mmu_gcfglrpt_summary_intr */
<0xff 263>, /* o_tcsr_mmu_nsglrpt_summary_intr */
<0xff 264>, /* o_tcsr_mmu_glrpt_summary_intr */
<0xff 265>, /* vbif_irpt */
<0xff 266>, /* lpass_irq_out_apcs[20] */
<0xff 267>, /* lpass_irq_out_apcs[19] */
<0xff 269>, /* rpm_wdog_expired_irq */
<0xff 270>, /* bam_irq[0] */
<0xff 271>, /* bam_irq[0] */
<0xff 276>, /* mmss_bimc_smmu_cirpt[4] */
<0xff 277>, /* mmss_bimc_smmu_cirpt[5] */
<0xff 278>, /* usb30_ctrl_irq[1] */
<0xff 279>, /* mmss_bimc_smmu_cirpt[6] */
<0xff 280>, /* mmss_bimc_smmu_cirpt[7] */
<0xff 281>, /* mmss_bimc_smmu_cirpt[8] */
<0xff 282>, /* mmss_bimc_smmu_cirpt[9] */
<0xff 283>, /* mmss_bimc_smmu_cirpt[10] */
<0xff 284>, /* mmss_bimc_smmu_cirpt[11] */
<0xff 285>, /* mmss_bimc_smmu_cirpt[12] */
<0xff 286>, /* mmss_bimc_smmu_cirpt[13] */
<0xff 287>, /* mmss_bimc_smmu_cirpt[14] */
<0xff 288>, /* mmss_bimc_smmu_cirpt[15] */
<0xff 289>, /* ufs_ice_sec_level_irq */
<0xff 291>, /* lpass_irq_out_apcs[18] */
<0xff 292>, /* mmss_bimc_smmu_cirpt[16] */
<0xff 293>, /* mmss_bimc_smmu_cirpt[17] */
<0xff 294>, /* mmss_bimc_smmu_cirpt[18] */
<0xff 295>, /* mmss_bimc_smmu_cirpt[0] */
<0xff 296>, /* mmss_bimc_smmu_pmirpt */
<0xff 297>, /* ufs_intrq */
<0xff 298>, /* mmss_bimc_smmu_cirpt[1] */
<0xff 299>, /* mmss_bimc_smmu_cirpt[2] */
<0xff 300>, /* mmss_bimc_smmu_cirpt[3] */
<0xff 301>, /* lpass_irq_out_apcs[17] */
<0xff 302>, /* qdss_etrbytecnt_irq */
<0xff 303>, /* lpass_irq_out_apcs[16] */
<0xff 304>, /* mmss_bimc_smmu_cirpt[19] */
<0xff 305>, /* mmss_bimc_smmu_cirpt[20] */
<0xff 306>, /* mmss_bimc_smmu_cirpt[21] */
<0xff 307>, /* mmss_bimc_smmu_cirpt[22] */
<0xff 308>, /* mmss_bimc_smmu_cirpt[23] */
<0xff 316>, /* lpass_irq_out_apcs[13] */
<0xff 317>, /* rbif_irq */
<0xff 318>, /* gpu_cc_gpu_cx_gds_hw_ctrl_irq_out */
<0xff 319>, /* venus0_irq */
<0xff 323>, /* lpass_irq_out_apcs[14] */
<0xff 324>, /* lpass_irq_out_apcs[15] */
<0xff 325>, /* camss_irq18 */
<0xff 326>, /* camss_irq0 */
<0xff 327>, /* camss_irq1 */
<0xff 328>, /* camss_irq2 */
<0xff 329>, /* camss_irq3 */
<0xff 330>, /* camss_irq4 */
<0xff 331>, /* camss_irq5 */
<0xff 332>, /* GC_SYS_irq[0] */
<0xff 333>, /* GC_SYS_irq[1] */
<0xff 334>, /* GC_SYS_irq[2] */
<0xff 335>, /* GC_SYS_irq[3] */
<0xff 336>, /* camss_irq13 */
<0xff 337>, /* camss_irq14 */
<0xff 338>, /* camss_irq15 */
<0xff 339>, /* camss_irq16 */
<0xff 340>, /* camss_irq17 */
<0xff 341>, /* camss_irq6 */
<0xff 342>, /* lpass_irq_out_apcs[36] */
<0xff 345>, /* camss_irq7 */
<0xff 346>, /* camss_irq8 */
<0xff 347>, /* camss_irq9 */
<0xff 348>, /* camss_irq10 */
<0xff 350>, /* camss_irq12 */
<0xff 351>, /* lpass_irq_out_apcs[12] */
<0xff 357>, /* o_pimem_nonfatal_irq */
<0xff 359>, /* ee1_apps_trustzone_spmi_periph_irq */
<0xff 360>, /* o_pimem_fatal_irq */
<0xff 361>, /* osmmu_CIrpt[0] */
<0xff 362>, /* osmmu_CIrpt[1] */
<0xff 363>, /* osmmu_CIrpt[2] */
<0xff 364>, /* osmmu_CIrpt[3] */
<0xff 365>, /* ipa_irq[0] */
<0xff 366>, /* osmmu_PMIrpt */
<0xff 381>, /* osmmu_CIrpt[6] */
<0xff 382>, /* osmmu_CIrpt[7] */
<0xff 385>, /* osmmu_CIrpt[12] */
<0xff 386>, /* osmmu_CIrpt[13] */
<0xff 387>, /* osmmu_CIrpt[14] */
<0xff 388>, /* osmmu_CIrpt[15] */
<0xff 389>, /* osmmu_CIrpt[16] */
<0xff 390>, /* osmmu_CIrpt[17] */
<0xff 391>, /* osmmu_CIrpt[18] */
<0xff 392>, /* osmmu_CIrpt[19] */
<0xff 393>, /* o_dcc_crc_fail_int */
<0xff 404>, /* aggre2noc_obs_mainFault */
<0xff 405>, /* osmmu_CIrpt[0] */
<0xff 406>, /* osmmu_CIrpt[1] */
<0xff 407>, /* osmmu_CIrpt[2] */
<0xff 408>, /* osmmu_CIrpt[3] */
<0xff 409>, /* osmmu_CIrpt[4] */
<0xff 410>, /* osmmu_CIrpt[5] */
<0xff 411>, /* o_dcc_task_done_int */
<0xff 412>, /* vsense_apps_alarm_irq */
<0xff 413>, /* osmmu_PMIrpt */
<0xff 414>, /* channel0_apps_hlos_trans_done_irq */
<0xff 415>, /* channel1_apps_trustzone_trans_done_irq */
<0xff 416>, /* rpm_ipc[28] */
<0xff 417>, /* rpm_ipc[29] */
<0xff 418>, /* rpm_ipc[30] */
<0xff 419>, /* rpm_ipc[31] */
<0xff 423>, /* lpass_irq_out_apcs[40] */
<0xff 424>, /* ipa_irq[2] */
<0xff 425>, /* lpass_irq_out_apcs[22] */
<0xff 426>, /* lpass_irq_out_apcs[23] */
<0xff 427>, /* lpass_irq_out_apcs[24] */
<0xff 428>, /* lpass_irq_out_apcs[25] */
<0xff 429>, /* lpass_irq_out_apcs[26] */
<0xff 430>, /* lpass_irq_out_apcs[27] */
<0xff 431>, /* lpass_irq_out_apcs[28] */
<0xff 432>, /* lpass_irq_out_apcs[29] */
<0xff 433>, /* lpass_irq_out_apcs[30] */
<0xff 434>, /* lpass_irq_out_apcs[31] */
<0xff 435>, /* lpass_irq_out_apcs[32] */
<0xff 436>, /* lpass_irq_out_apcs[37] */
<0xff 445>, /* wcss_apss_ce_intr[0] */
<0xff 446>, /* wcss_apss_ce_intr[1] */
<0xff 447>, /* wcss_apss_ce_intr[2] */
<0xff 448>, /* wcss_apss_ce_intr[3] */
<0xff 449>, /* wcss_apss_ce_intr[4] */
<0xff 450>, /* wcss_apss_ce_intr[5] */
<0xff 452>, /* wcss_apss_ce_intr[6] */
<0xff 453>, /* wcss_apss_ce_intr[7] */
<0xff 454>, /* wcss_apss_ce_intr[8] */
<0xff 455>, /* wcss_apss_ce_intr[9] */
<0xff 456>, /* wcss_apss_ce_intr[10] */
<0xff 457>, /* wcss_apss_ce_intr[11] */
<0xff 458>, /* wcss_apss_status_intr */
<0xff 462>, /* tsens1_tsens_critical_int */
<0xff 464>, /* ipa_bam_irq[0] */
<0xff 465>, /* ipa_bam_irq[2] */
<0xff 466>, /* ssc_uart_int */
<0xff 468>, /* cri_cm_irq_tz */
<0xff 469>, /* cri_cm_irq_hyp */
<0xff 471>, /* mmss_bimc_smmu_gds_hw_ctrl_irq_out */
<0xff 472>, /* gcc_gds_hw_ctrl_irq_out */
<0xff 474>, /* osmmu_CIrpt[20] */
<0xff 475>, /* osmmu_CIrpt[21] */
<0xff 476>, /* osmmu_CIrpt[22] */
<0xff 477>, /* tsens0_tsens_critical_int */
<0xff 478>, /* tsens0_tsens_max_min_int */
<0xff 479>, /* osmmu_CIrpt[23] */
<0xff 480>, /* q6_wdog_expired_irq */
<0xff 481>, /* mss_ipc_out_irq[4] */
<0xff 482>, /* mss_ipc_out_irq[5] */
<0xff 483>, /* mss_ipc_out_irq[6] */
<0xff 484>, /* mss_ipc_out_irq[7] */
<0xff 485>, /* mss_ipc_out_irq[28] */
<0xff 486>, /* mss_ipc_out_irq[29] */
<0xff 487>, /* mss_ipc_out_irq[30] */
<0xff 488>, /* mss_ipc_out_irq[31] */
<0xff 490>, /* tsens0_tsens_upper_lower_int */
<0xff 491>, /* qspi_irq0 */
<0xff 492>, /* sdcc_ice_sec_level_irq */
<0xff 494>, /* osmmu_CIrpt[6] */
<0xff 495>, /* osmmu_CIrpt[7] */
<0xff 496>, /* osmmu_CIrpt[8] */
<0xff 497>, /* osmmu_CIrpt[9] */
<0xff 498>, /* osmmu_CIrpt[10] */
<0xff 499>, /* osmmu_CIrpt[11] */
<0xff 500>, /* osmmu_CIrpt[24] */
<0xff 501>, /* osmmu_CIrpt[25] */
<0xff 503>, /* o_bimc_intr[1] */
<0xff 504>, /* osmmu_CIrpt[26] */
<0xff 505>, /* osmmu_CIrpt[27] */
<0xff 506>, /* osmmu_CIrpt[28] */
<0xff 512>, /* turing_irq_out_vmm[0] */
<0xff 513>, /* turing_irq_out_vmm[1] */
<0xff 514>, /* turing_irq_out_vmm[2] */
<0xff 515>, /* turing_irq_out_vmm[3] */
<0xff 516>, /* lpass_irq_out_apcs[41] */
<0xff 517>, /* lpass_irq_out_apcs[42] */
<0xff 520>, /* lpass_irq_out_apcs[45] */
<0xff 544>, /* turing_irq_out_apcs[00] */
<0xff 545>, /* turing_irq_out_apcs[01] */
<0xff 546>, /* turing_irq_out_apcs[02] */
<0xff 547>, /* turing_irq_out_apcs[03] */
<0xff 548>, /* turing_irq_out_apcs[04] */
<0xff 549>, /* turing_irq_out_apcs[05] */
<0xff 550>, /* turing_irq_out_apcs[06] */
<0xff 551>, /* turing_irq_out_apcs[07] */
<0xff 552>, /* turing_irq_out_apcs[08] */
<0xff 553>, /* turing_irq_out_apcs[09] */
<0xff 554>, /* turing_irq_out_apcs[10] */
<0xff 556>, /* turing_irq_out_apcs[12] */
<0xff 557>, /* turing_irq_out_apcs[13] */
<0xff 558>, /* turing_irq_out_apcs[14] */
<0xff 559>, /* turing_irq_out_apcs[15] */
<0xff 560>, /* turing_irq_out_apcs[16] */
<0xff 561>, /* turing_irq_out_apcs[17] */
<0xff 562>, /* turing_irq_out_apcs[18] */
<0xff 563>, /* turing_irq_out_apcs[19] */
<0xff 564>, /* turing_irq_out_apcs[20] */
<0xff 565>, /* turing_irq_out_apcs[21] */
<0xff 566>, /* turing_irq_out_apcs[22] */
<0xff 567>, /* turing_irq_out_apcs[23] */
<0xff 568>, /* turing_irq_out_apcs[24] */
<0xff 569>, /* turing_irq_out_apcs[25] */
<0xff 570>, /* turing_irq_out_apcs[26] */
<0xff 571>, /* turing_irq_out_apcs[27] */
<0xff 572>, /* turing_irq_out_apcs[28] */
<0xff 573>, /* turing_irq_out_apcs[29] */
<0xff 574>, /* turing_irq_out_apcs[30] */
<0xff 575>, /* turing_irq_out_apcs[31] */
<0xff 576>, /* turing_irq_out_apcs[32] */
<0xff 577>, /* turing_irq_out_apcs[33] */
<0xff 578>, /* turing_irq_out_apcs[34] */
<0xff 579>, /* turing_irq_out_apcs[35] */
<0xff 580>, /* turing_irq_out_apcs[36] */
<0xff 581>, /* turing_irq_out_apcs[37] */
<0xff 582>, /* turing_irq_out_apcs[38] */
<0xff 583>, /* turing_irq_out_apcs[39] */
<0xff 584>; /* turing_irq_out_apcs[40] */
qcom,gpio-parent = <&tlmm>;
qcom,gpio-map =
<3 1>,
<4 5>,
<5 9>,
<6 10>,
<7 66>,
<8 22>,
<9 25>,
<10 28>,
<11 58>,
<13 41>,
<14 43>,
<15 40>,
<16 42>,
<17 46>,
<18 50>,
<19 44>,
<21 56>,
<22 45>,
<23 68>,
<24 69>,
<25 70>,
<26 71>,
<27 72>,
<28 73>,
<29 64>,
<30 2>,
<31 13>,
<32 111>,
<33 74>,
<34 75>,
<35 76>,
<36 82>,
<37 17>,
<38 77>,
<39 47>,
<40 54>,
<41 48>,
<42 101>,
<43 49>,
<44 51>,
<45 86>,
<46 90>,
<47 91>,
<48 52>,
<50 55>,
<51 6>,
<53 65>,
<55 67>,
<56 83>,
<57 84>,
<58 85>,
<59 87>,
<63 21>,
<64 78>,
<65 113>,
<66 60>,
<67 98>,
<68 30>,
<70 31>,
<71 29>,
<76 107>,
<83 109>,
<84 103>,
<85 105>;
};
};

View File

@ -0,0 +1,56 @@
/* Copyright (c) 2016-2017, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
/dts-v1/;
#include "sdm660.dtsi"
#include "sdm660-cdp.dtsi"
#include "msm-pm660a.dtsi"
#include "sdm660-external-codec.dtsi"
/ {
model = "Qualcomm Technologies, Inc. SDM 660 PM660 + PM660A CDP";
compatible = "qcom,sdm660-cdp", "qcom,sdm660", "qcom,cdp";
qcom,board-id = <1 0>;
qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>,
<0x0001001b 0x0002001a 0x0 0x0>,
<0x0001001b 0x0202001a 0x0 0x0>;
};
&mdss_dsi {
hw-config = "single_dsi";
};
&mdss_dsi0 {
qcom,dsi-pref-prim-pan = <&dsi_rm67195_amoled_fhd_cmd>;
oledb-supply = <&pm660a_oledb>;
lab-supply = <&lab_regulator>;
ibb-supply = <&ibb_regulator>;
};
&mdss_dsi1 {
status = "disabled";
oledb-supply = <&pm660a_oledb>;
lab-supply = <&lab_regulator>;
ibb-supply = <&ibb_regulator>;
};
&tavil_snd {
qcom,msm-mbhc-hphl-swh = <0>;
qcom,msm-mbhc-gnd-swh = <0>;
};
&tasha_snd {
qcom,msm-mbhc-hphl-swh = <0>;
qcom,msm-mbhc-gnd-swh = <0>;
};

View File

@ -0,0 +1,41 @@
/* Copyright (c) 2017, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
/dts-v1/;
#include "sdm660.dtsi"
#include "sdm660-cdp.dtsi"
#include "msm-pm660a.dtsi"
#include "sdm660-external-codec.dtsi"
/ {
model = "Qualcomm Technologies, Inc. SDM 660 PM660 + PM660A, Headset
Jacktype NO, CDP";
compatible = "qcom,sdm660-cdp", "qcom,sdm660", "qcom,cdp";
qcom,board-id = <1 2>;
qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>,
<0x0001001b 0x0002001a 0x0 0x0>,
<0x0001001b 0x0202001a 0x0 0x0>;
};
&mdss_dsi0 {
oledb-supply = <&pm660a_oledb>;
lab-supply = <&lab_regulator>;
ibb-supply = <&ibb_regulator>;
};
&mdss_dsi1 {
oledb-supply = <&pm660a_oledb>;
lab-supply = <&lab_regulator>;
ibb-supply = <&ibb_regulator>;
};

View File

@ -0,0 +1,27 @@
/* Copyright (c) 2017, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
/dts-v1/;
#include "sdm660.dtsi"
#include "sdm660-cdp.dtsi"
#include "msm-pm660a.dtsi"
#include "sdm660-external-codec.dtsi"
/ {
model = "Qualcomm Technologies, Inc. SDM 660 PM660 + PM660A, Headset
Jacktype NO, RCM";
compatible = "qcom,sdm660-cdp", "qcom,sdm660", "qcom,cdp";
qcom,board-id = <21 2>;
qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
};

View File

@ -0,0 +1,50 @@
/* Copyright (c) 2016-2017, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
/dts-v1/;
#include "sdm660.dtsi"
#include "sdm660-mtp.dtsi"
#include "msm-pm660a.dtsi"
#include "sdm660-external-codec.dtsi"
/ {
model = "Qualcomm Technologies, Inc. SDM 660 PM660 + PM660A MTP";
compatible = "qcom,sdm660-mtp", "qcom,sdm660", "qcom,mtp";
qcom,board-id = <8 0>;
qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>,
<0x0001001b 0x0002001a 0x0 0x0>,
<0x0001001b 0x0202001a 0x0 0x0>;
};
&mdss_dsi {
hw-config = "single_dsi";
};
&mdss_dsi0 {
qcom,dsi-pref-prim-pan = <&dsi_rm67195_amoled_fhd_cmd>;
oledb-supply = <&pm660a_oledb>;
lab-supply = <&lab_regulator>;
ibb-supply = <&ibb_regulator>;
};
&mdss_dsi1 {
status = "disabled";
oledb-supply = <&pm660a_oledb>;
lab-supply = <&lab_regulator>;
ibb-supply = <&ibb_regulator>;
};
&tavil_snd {
qcom,msm-mbhc-moist-cfg = <0>, <0>, <3>;
};

View File

@ -0,0 +1,58 @@
/* Copyright (c) 2016-2017, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
/dts-v1/;
#include "sdm660.dtsi"
#include "sdm660-qrd.dtsi"
#include "msm-pm660a.dtsi"
/ {
model = "Qualcomm Technologies, Inc. SDM 660 PM660 + PM660A QRD";
compatible = "qcom,sdm660-qrd", "qcom,sdm660", "qcom,qrd";
qcom,board-id = <0x0012000b 0>;
qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>,
<0x0001001b 0x0002001a 0x0 0x0>,
<0x0001001b 0x0202001a 0x0 0x0>;
};
&pm660a_oledb {
status = "okay";
qcom,oledb-default-voltage-mv = <6400>;
};
&mdss_mdp {
qcom,mdss-pref-prim-intf = "dsi";
};
&mdss_dsi {
hw-config = "single_dsi";
};
&mdss_dsi0 {
qcom,dsi-pref-prim-pan = <&dsi_rm67195_amoled_fhd_cmd>;
pinctrl-names = "mdss_default", "mdss_sleep";
pinctrl-0 = <&mdss_dsi_active &mdss_te_active>;
pinctrl-1 = <&mdss_dsi_suspend &mdss_te_suspend>;
lab-supply = <&lab_regulator>;
ibb-supply = <&ibb_regulator>;
qcom,platform-reset-gpio = <&tlmm 53 0>;
qcom,platform-te-gpio = <&tlmm 59 0>;
};
&dsi_rm67195_amoled_fhd_cmd {
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_dcs";
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <255>;
qcom,panel-supply-entries = <&dsi_panel_pwr_supply_labibb_amoled>;
};

View File

@ -0,0 +1,36 @@
/* Copyright (c) 2016-2017, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
/dts-v1/;
#include "sdm660.dtsi"
#include "sdm660-cdp.dtsi"
#include "msm-pm660a.dtsi"
#include "sdm660-external-codec.dtsi"
/ {
model = "Qualcomm Technologies, Inc. SDM 660 PM660 + PM660A RCM";
compatible = "qcom,sdm660-cdp", "qcom,sdm660", "qcom,cdp";
qcom,board-id = <21 0>;
qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
};
&tavil_snd {
qcom,msm-mbhc-hphl-swh = <0>;
qcom,msm-mbhc-gnd-swh = <0>;
};
&tasha_snd {
qcom,msm-mbhc-hphl-swh = <0>;
qcom,msm-mbhc-gnd-swh = <0>;
};

View File

@ -0,0 +1,111 @@
/* Copyright (c) 2016, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
/dts-v1/;
#include "sdm660.dtsi"
#include "sdm660-pinctrl.dtsi"
#include "msm-pm660a.dtsi"
/ {
model = "Qualcomm Technologies, Inc. SDM 660 PM660 + PM660A SIM";
compatible = "qcom,sdm660-sim", "qcom,sdm660", "qcom,sim";
qcom,board-id = <16 0>;
qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
chosen {
bootargs = "lpm_levels.sleep_disabled=1";
};
};
&usb3 {
reg = <0xa800000 0xfc000>;
reg-names = "core_base";
/delete-property/ extcon;
dwc3@a800000 {
maximum-speed = "high-speed";
};
};
&ssphy {
compatible = "usb-nop-xceiv";
};
&qusb_phy0 {
compatible = "usb-nop-xceiv";
};
&uartblsp1dm1 {
status = "ok";
pinctrl-names = "default";
pinctrl-0 = <&uart_console_active>;
};
&sdhc_1 {
/* device core power supply */
vdd-supply = <&pm660l_l4>;
qcom,vdd-voltage-level = <2950000 2950000>;
qcom,vdd-current-level = <200 570000>;
/* device communication power supply */
vdd-io-supply = <&pm660_l8>;
qcom,vdd-io-always-on;
qcom,vdd-io-lpm-sup;
qcom,vdd-io-voltage-level = <1800000 1800000>;
qcom,vdd-io-current-level = <200 325000>;
pinctrl-names = "active", "sleep";
pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on &sdc1_rclk_on>;
pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off &sdc1_rclk_off>;
qcom,clk-rates = <400000 20000000 25000000 50000000 192000000
384000000>;
qcom,nonremovable;
qcom,bus-speed-mode = "HS400_1p8v", "HS200_1p8v", "DDR_1p8v";
status = "ok";
};
&pm660_charger {
status = "disabled";
};
&pm660_fg {
status = "disabled";
};
&pm660_pdphy {
status = "disabled";
};
&ufsphy1 {
vdda-phy-supply = <&pm660l_l1>;
vdda-pll-supply = <&pm660_l10>;
vddp-ref-clk-supply = <&pm660_l1>;
vdda-phy-max-microamp = <51400>;
vdda-pll-max-microamp = <14200>;
vddp-ref-clk-max-microamp = <100>;
vddp-ref-clk-always-on;
status = "ok";
};
&ufs1 {
vdd-hba-supply = <&gdsc_ufs>;
vdd-hba-fixed-regulator;
vcc-supply = <&pm660l_l4>;
vccq2-supply = <&pm660_l8>;
vcc-max-microamp = <500000>;
vccq2-max-microamp = <600000>;
status = "ok";
};

View File

@ -0,0 +1,97 @@
/* Copyright (c) 2016-2017, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
/dts-v1/;
#include "sdm660.dtsi"
#include "sdm660-qrd.dtsi"
/ {
model = "Qualcomm Technologies, Inc. SDM 660 PM660 + PM660L QRD";
compatible = "qcom,sdm660-qrd", "qcom,sdm660", "qcom,qrd";
qcom,board-id = <0x1000b 0>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
<0x0001001b 0x0201011a 0x0 0x0>,
<0x0001001b 0x0102001a 0x0 0x0>;
};
&mdss_mdp {
qcom,mdss-pref-prim-intf = "dsi";
};
&mdss_fb0 {
qcom,mdss-mixer-swap;
};
&mdss_dsi {
hw-config = "split_dsi";
};
&mdss_dsi0 {
qcom,dsi-pref-prim-pan = <&dsi_dual_nt36850_truly_cmd>;
pinctrl-names = "mdss_default", "mdss_sleep";
pinctrl-0 = <&mdss_dsi_active &mdss_te_active>;
pinctrl-1 = <&mdss_dsi_suspend &mdss_te_suspend>;
qcom,platform-reset-gpio = <&tlmm 53 0>;
qcom,platform-te-gpio = <&tlmm 59 0>;
};
&mdss_dsi1 {
qcom,dsi-pref-prim-pan = <&dsi_dual_nt36850_truly_cmd>;
pinctrl-names = "mdss_default", "mdss_sleep";
pinctrl-0 = <&mdss_dsi_active &mdss_te_active>;
pinctrl-1 = <&mdss_dsi_suspend &mdss_te_suspend>;
qcom,platform-reset-gpio = <&tlmm 53 0>;
qcom,platform-te-gpio = <&tlmm 59 0>;
};
&dsi_dual_nt36850_truly_cmd {
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <4095>;
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
};
&pm660l_wled {
qcom,led-strings-list = [00 01];
};
&soc {
hbtp {
compatible = "qcom,hbtp-input";
pinctrl-names = "pmx_ts_active", "pmx_ts_suspend";
pinctrl-0 = <&ts_rst_active>;
pinctrl-1 = <&ts_rst_suspend>;
vcc_ana-supply = <&pm660l_l3>;
vcc_dig-supply = <&pm660_l13>;
qcom,afe-load = <20000>;
qcom,afe-vtg-min = <3008000>;
qcom,afe-vtg-max = <3008000>;
qcom,dig-load = <40000>;
qcom,dig-vtg-min = <1808000>;
qcom,dig-vtg-max = <1808000>;
qcom,fb-resume-delay-us = <10000>;
qcom,afe-force-power-on;
qcom,afe-power-on-delay-us = <1000>;
qcom,afe-power-off-delay-us = <6>;
};
};
&slim_aud {
/delete-node/wcd934x_cdc;
};
&soc {
/delete-node/sound-tavil;
};

View File

@ -0,0 +1,292 @@
/* Copyright (c) 2016-2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include "sdm660-pinctrl.dtsi"
#include "sdm660-camera-sensor-qrd.dtsi"
#include "sdm660-external-codec.dtsi"
/ {
};
&blsp2_uart1_hs {
status = "ok";
};
&uartblsp1dm1 {
status = "ok";
pinctrl-names = "default";
pinctrl-0 = <&uart_console_active>;
};
&sdhc_1 {
/* device core power supply */
vdd-supply = <&pm660l_l4>;
qcom,vdd-voltage-level = <2950000 2950000>;
qcom,vdd-current-level = <200 570000>;
/* device communication power supply */
vdd-io-supply = <&pm660_l8>;
qcom,vdd-io-always-on;
qcom,vdd-io-lpm-sup;
qcom,vdd-io-voltage-level = <1800000 1800000>;
qcom,vdd-io-current-level = <200 325000>;
pinctrl-names = "active", "sleep";
pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on &sdc1_rclk_on>;
pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off &sdc1_rclk_off>;
qcom,clk-rates = <400000 20000000 25000000 50000000 100000000 192000000
384000000>;
qcom,nonremovable;
qcom,bus-speed-mode = "HS400_1p8v", "HS200_1p8v", "DDR_1p8v";
status = "ok";
};
&sdc2_cd_on {
config {
/delete-property/ bias-pull-up;
bias-disable;
};
};
&sdhc_2 {
/* device core power supply */
vdd-supply = <&pm660l_l5>;
qcom,vdd-voltage-level = <2950000 2950000>;
qcom,vdd-current-level = <15000 800000>;
/* device communication power supply */
vdd-io-supply = <&pm660l_l2>;
qcom,vdd-io-voltage-level = <1800000 2950000>;
qcom,vdd-io-current-level = <200 22000>;
pinctrl-names = "active", "sleep";
pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>;
pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;
#address-cells = <0>;
interrupt-parent = <&sdhc_2>;
interrupts = <0 1 2>;
#interrupt-cells = <1>;
interrupt-map-mask = <0xffffffff>;
interrupt-map = <0 &intc 0 0 125 0
1 &intc 0 0 221 0
2 &tlmm 54 0>;
interrupt-names = "hc_irq", "pwr_irq", "status_irq";
cd-gpios = <&tlmm 54 0x0>;
qcom,clk-rates = <400000 20000000 25000000 50000000 100000000
200000000>;
qcom,bus-speed-mode = "SDR12", "SDR25", "SDR50", "DDR50", "SDR104";
status = "ok";
};
&ufsphy1 {
vdda-phy-supply = <&pm660l_l1>;
vdda-pll-supply = <&pm660_l10>;
vddp-ref-clk-supply = <&pm660_l1>;
vdda-phy-max-microamp = <51400>;
vdda-pll-max-microamp = <14200>;
vddp-ref-clk-max-microamp = <100>;
vddp-ref-clk-always-on;
status = "ok";
};
&ufs1 {
vdd-hba-supply = <&gdsc_ufs>;
vdd-hba-fixed-regulator;
vcc-supply = <&pm660l_l4>;
vccq2-supply = <&pm660_l8>;
vcc-max-microamp = <500000>;
vccq2-max-microamp = <600000>;
status = "ok";
};
&soc {
qcom,msm-ssc-sensors {
compatible = "qcom,msm-ssc-sensors";
};
};
&qusb_phy0 {
qcom,qusb-phy-init-seq = <0xf8 0x80
0x83 0x84
0x83 0x88
0xc3 0x8c
0x30 0x08
0x79 0x0c
0x21 0x10
0x14 0x9c
0x9f 0x1c
0x00 0x18>;
};
&pm660_gpios {
/* GPIO 4 (NFC_CLK_REQ) */
gpio@c300 {
qcom,mode = <0>;
qcom,vin-sel = <1>;
qcom,src-sel = <0>;
qcom,master-en = <1>;
status = "okay";
};
};
&i2c_6 { /* BLSP1 QUP6 (NFC) */
status = "okay";
nq@28 {
compatible = "qcom,nq-nci";
reg = <0x28>;
qcom,nq-irq = <&tlmm 28 0x00>;
qcom,nq-ven = <&tlmm 29 0x00>;
qcom,nq-firm = <&tlmm 30 0x00>;
qcom,nq-clkreq = <&pm660_gpios 4 0x00>;
qcom,nq-esepwr = <&tlmm 31 0x00>;
interrupt-parent = <&tlmm>;
qcom,clk-src = "BBCLK3";
interrupts = <28 0>;
interrupt-names = "nfc_irq";
pinctrl-names = "nfc_active", "nfc_suspend";
pinctrl-0 = <&nfc_int_active &nfc_enable_active>;
pinctrl-1 = <&nfc_int_suspend &nfc_enable_suspend>;
clocks = <&clock_rpmcc RPM_SMD_LN_BB_CLK3_PIN>;
clock-names = "ref_clk";
};
};
&pm660l_gpios {
/* GPIO 7 for VOL_UP */
gpio@c600 {
status = "ok";
qcom,mode = <0>;
qcom,pull = <0>;
qcom,vin-sel = <0>;
qcom,src-sel = <0>;
qcom,out-strength = <1>;
};
};
&tlmm {
pmx_ts_rst_active {
ts_rst_active: ts_rst_active {
mux {
pins = "gpio66";
function = "gpio";
};
config {
pins = "gpio66";
drive-strength = <16>;
bias-pull-up;
};
};
};
pmx_ts_rst_suspend {
ts_rst_suspend: ts_rst_suspend {
mux {
pins = "gpio66";
function = "gpio";
};
config {
pins = "gpio66";
drive-strength = <2>;
bias-pull-down;
};
};
};
};
&ssphy {
fpc-redrive-supply = <&pm660_l11>;
qcom,redrive-voltage-level = <0 1800000 1950000>;
qcom,redrive-load = <105000>;
};
&soc {
gpio_keys {
compatible = "gpio-keys";
input-name = "gpio-keys";
status = "ok";
vol_up {
label = "volume_up";
gpios = <&pm660l_gpios 7 0x1>;
linux,input-type = <1>;
linux,code = <115>;
gpio-key,wakeup;
debounce-interval = <15>;
};
};
};
/ {
qrd_batterydata: qcom,battery-data {
qcom,batt-id-range-pct = <15>;
#include "fg-gen3-batterydata-qrd-skuk-4v4-3000mah.dtsi"
};
};
&pm660_fg {
qcom,battery-data = <&qrd_batterydata>;
qcom,fg-jeita-thresholds = <0 5 55 55>;
qcom,battery-thermal-coefficients = [9d 50 ff];
};
&pm660_haptics {
qcom,wave-play-rate-us = <4255>;
qcom,vmax-mv = <1800>;
};
&i2c_2 {
status = "ok";
smb1351_charger: smb1351-charger@1d {
compatible = "qcom,smb1351-charger";
reg = <0x1d>;
qcom,parallel-charger;
qcom,float-voltage-mv = <4400>;
qcom,recharge-mv = <100>;
qcom,parallel-en-pin-polarity = <1>;
};
};
/delete-node/ &tasha_hph_en0;
/delete-node/ &tasha_hph_en1;
&tasha_snd {
qcom,model = "sdm660-tasha-skus-snd-card";
qcom,audio-routing =
"AIF4 VI", "MCLK",
"RX_BIAS", "MCLK",
"MADINPUT", "MCLK",
"AMIC2", "MIC BIAS2",
"MIC BIAS2", "Headset Mic",
"DMIC0", "MIC BIAS1",
"MIC BIAS1", "Digital Mic0",
"DMIC3", "MIC BIAS3",
"MIC BIAS3", "Digital Mic3",
"DMIC5", "MIC BIAS3",
"MIC BIAS3", "Digital Mic5",
"SpkrLeft IN", "SPK1 OUT";
qcom,msm-mbhc-hphl-swh = <1>;
/delete-property/ qcom,us-euro-gpios;
/delete-property/ qcom,hph-en0-gpio;
/delete-property/ qcom,hph-en1-gpio;
qcom,wsa-max-devs = <1>;
qcom,wsa-devs = <&wsa881x_211>, <&wsa881x_213>;
qcom,wsa-aux-dev-prefix = "SpkrLeft", "SpkrLeft";
};

View File

@ -0,0 +1,36 @@
/* Copyright (c) 2016-2017, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
/dts-v1/;
#include "sdm660.dtsi"
#include "sdm660-cdp.dtsi"
#include "sdm660-external-codec.dtsi"
/ {
model = "Qualcomm Technologies, Inc. SDM 660 PM660 + PM660L RCM";
compatible = "qcom,sdm660-cdp", "qcom,sdm660", "qcom,cdp";
qcom,board-id = <21 0>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
<0x0001001b 0x0201011a 0x0 0x0>;
};
&tavil_snd {
qcom,msm-mbhc-hphl-swh = <0>;
qcom,msm-mbhc-gnd-swh = <0>;
};
&tasha_snd {
qcom,msm-mbhc-hphl-swh = <0>;
qcom,msm-mbhc-gnd-swh = <0>;
};

View File

@ -0,0 +1,952 @@
/* Copyright (c) 2016-2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include <dt-bindings/clock/qcom,gcc-sdm660.h>
#include <dt-bindings/clock/qcom,gpu-sdm660.h>
#include <dt-bindings/clock/qcom,rpmcc.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
&rpm_bus {
rpm-regulator-smpa4 {
status = "okay";
pm660_s4: regulator-s4 {
regulator-min-microvolt = <1805000>;
regulator-max-microvolt = <2040000>;
status = "okay";
};
};
rpm-regulator-smpa5 {
status = "okay";
pm660_s5: regulator-s5 {
regulator-min-microvolt = <1224000>;
regulator-max-microvolt = <1350000>;
status = "okay";
};
};
rpm-regulator-smpa6 {
status = "okay";
pm660_s6: regulator-s6 {
regulator-min-microvolt = <504000>;
regulator-max-microvolt = <992000>;
status = "okay";
};
};
rpm-regulator-smpb1 {
status = "okay";
pm660l_s1: regulator-s1 {
regulator-min-microvolt = <1125000>;
regulator-max-microvolt = <1125000>;
status = "okay";
};
};
rpm-regulator-smpb2 {
status = "okay";
pm660l_s2: regulator-s2 {
regulator-min-microvolt = <1050000>;
regulator-max-microvolt = <1050000>;
status = "okay";
};
};
/* PM660L S3 + S4 - VDD_CX supply */
rpm-regulator-smpb3 {
status = "okay";
pm660l_s3_level: regulator-s3-level {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660l_s3_level";
qcom,set = <3>;
regulator-min-microvolt =
<RPM_SMD_REGULATOR_LEVEL_RETENTION>;
regulator-max-microvolt =
<RPM_SMD_REGULATOR_LEVEL_TURBO>;
qcom,use-voltage-level;
};
pm660l_s3_floor_level: regulator-s3-floor-level {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660l_s3_floor_level";
qcom,set = <3>;
regulator-min-microvolt =
<RPM_SMD_REGULATOR_LEVEL_RETENTION>;
regulator-max-microvolt =
<RPM_SMD_REGULATOR_LEVEL_TURBO>;
qcom,use-voltage-floor-level;
qcom,always-send-voltage;
};
pm660l_s3_level_ao: regulator-s3-level-ao {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660l_s3_level_ao";
qcom,set = <1>;
regulator-min-microvolt =
<RPM_SMD_REGULATOR_LEVEL_RETENTION>;
regulator-max-microvolt =
<RPM_SMD_REGULATOR_LEVEL_TURBO>;
qcom,use-voltage-level;
};
};
/* PM660L S5 - VDD_MX supply */
rpm-regulator-smpb5 {
status = "okay";
pm660l_s5_level: regulator-s5-level {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660l_s5_level";
qcom,set = <3>;
regulator-min-microvolt =
<RPM_SMD_REGULATOR_LEVEL_RETENTION>;
regulator-max-microvolt =
<RPM_SMD_REGULATOR_LEVEL_TURBO>;
qcom,use-voltage-level;
};
pm660l_s5_floor_level: regulator-s5-floor-level {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660l_s5_floor_level";
qcom,set = <3>;
regulator-min-microvolt =
<RPM_SMD_REGULATOR_LEVEL_RETENTION>;
regulator-max-microvolt =
<RPM_SMD_REGULATOR_LEVEL_TURBO>;
qcom,use-voltage-floor-level;
qcom,always-send-voltage;
};
pm660l_s5_level_ao: regulator-s5-level-ao {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660l_s5_level_ao";
qcom,set = <1>;
regulator-min-microvolt =
<RPM_SMD_REGULATOR_LEVEL_RETENTION>;
regulator-max-microvolt =
<RPM_SMD_REGULATOR_LEVEL_TURBO>;
qcom,use-voltage-level;
};
};
rpm-regulator-ldoa1 {
status = "okay";
pm660_l1: regulator-l1 {
regulator-min-microvolt = <1150000>;
regulator-max-microvolt = <1250000>;
status = "okay";
};
};
rpm-regulator-ldoa2 {
status = "okay";
pm660_l2: regulator-l2 {
regulator-min-microvolt = <950000>;
regulator-max-microvolt = <1010000>;
status = "okay";
};
};
rpm-regulator-ldoa3 {
status = "okay";
pm660_l3: regulator-l3 {
regulator-min-microvolt = <950000>;
regulator-max-microvolt = <1010000>;
status = "okay";
};
};
/* TODO: remove if ADRASTEA CX/MX not voted from APPS */
rpm-regulator-ldoa5 {
status = "okay";
pm660_l5: regulator-l5 {
regulator-min-microvolt = <525000>;
regulator-max-microvolt = <950000>;
status = "okay";
};
};
rpm-regulator-ldoa6 {
status = "okay";
pm660_l6: regulator-l6 {
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1370000>;
status = "okay";
};
pm660_l6_pin_ctrl: regulator-l6-pin-ctrl {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660_l6_pin_ctrl";
qcom,set = <3>;
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1370000>;
/* Force NPM follows HW_EN1 */
qcom,init-pin-ctrl-mode = <2>;
/* Enable follows HW_EN1 */
qcom,enable-with-pin-ctrl = <0 2>;
};
};
rpm-regulator-ldoa7 {
status = "okay";
pm660_l7: regulator-l7 {
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
status = "okay";
};
};
rpm-regulator-ldoa8 {
status = "okay";
pm660_l8: regulator-l8 {
regulator-min-microvolt = <1750000>;
regulator-max-microvolt = <1900000>;
status = "okay";
};
};
rpm-regulator-ldoa9 {
status = "okay";
pm660_l9: regulator-l9 {
regulator-min-microvolt = <1750000>;
regulator-max-microvolt = <1900000>;
status = "okay";
};
pm660_l9_pin_ctrl: regulator-l9-pin-ctrl {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660_l9_pin_ctrl";
qcom,set = <3>;
regulator-min-microvolt = <1750000>;
regulator-max-microvolt = <1900000>;
/* Force NPM follows HW_EN1 */
qcom,init-pin-ctrl-mode = <2>;
/* Enable follows HW_EN1 */
qcom,enable-with-pin-ctrl = <0 2>;
};
};
rpm-regulator-ldoa10 {
status = "okay";
pm660_l10: regulator-l10 {
proxy-supply = <&pm660_l10>;
qcom,proxy-consumer-enable;
qcom,proxy-consumer-current = <14000>;
regulator-min-microvolt = <1780000>;
regulator-max-microvolt = <1950000>;
status = "okay";
};
};
rpm-regulator-ldoa11 {
status = "okay";
pm660_l11: regulator-l11 {
regulator-min-microvolt = <1780000>;
regulator-max-microvolt = <1950000>;
status = "okay";
};
};
rpm-regulator-ldoa12 {
status = "okay";
pm660_l12: regulator-l12 {
regulator-min-microvolt = <1780000>;
regulator-max-microvolt = <1950000>;
status = "okay";
};
};
rpm-regulator-ldoa13 {
status = "okay";
pm660_l13: regulator-l13 {
regulator-min-microvolt = <1780000>;
regulator-max-microvolt = <1950000>;
status = "okay";
};
};
rpm-regulator-ldoa14 {
status = "okay";
pm660_l14: regulator-l14 {
regulator-min-microvolt = <1710000>;
regulator-max-microvolt = <1900000>;
status = "okay";
};
};
rpm-regulator-ldoa15 {
status = "okay";
pm660_l15: regulator-l15 {
regulator-min-microvolt = <1650000>;
regulator-max-microvolt = <2950000>;
status = "okay";
};
};
rpm-regulator-ldoa17 {
status = "okay";
pm660_l17: regulator-l17 {
regulator-min-microvolt = <1650000>;
regulator-max-microvolt = <2950000>;
status = "okay";
};
};
rpm-regulator-ldoa19 {
status = "okay";
pm660_l19: regulator-l19 {
regulator-min-microvolt = <3200000>;
regulator-max-microvolt = <3400000>;
status = "okay";
};
pm660_l19_pin_ctrl: regulator-l19-pin-ctrl {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660_l19_pin_ctrl";
qcom,set = <3>;
regulator-min-microvolt = <3200000>;
regulator-max-microvolt = <3400000>;
/* Force NPM follows HW_EN1 */
qcom,init-pin-ctrl-mode = <2>;
/* Enable follows HW_EN1 */
qcom,enable-with-pin-ctrl = <0 2>;
};
};
rpm-regulator-ldob1 {
status = "okay";
pm660l_l1: regulator-l1 {
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <925000>;
status = "okay";
};
};
rpm-regulator-ldob2 {
status = "okay";
pm660l_l2: regulator-l2 {
regulator-min-microvolt = <350000>;
regulator-max-microvolt = <3100000>;
status = "okay";
};
};
rpm-regulator-ldob3 {
status = "okay";
pm660l_l3: regulator-l3 {
regulator-min-microvolt = <1710000>;
regulator-max-microvolt = <3600000>;
status = "okay";
};
};
rpm-regulator-ldob4 {
status = "okay";
pm660l_l4: regulator-l4 {
regulator-min-microvolt = <1700000>;
regulator-max-microvolt = <2950000>;
status = "okay";
};
};
rpm-regulator-ldob5 {
status = "okay";
pm660l_l5: regulator-l5 {
regulator-min-microvolt = <1721000>;
regulator-max-microvolt = <3600000>;
status = "okay";
};
};
rpm-regulator-ldob6 {
status = "okay";
pm660l_l6: regulator-l6 {
regulator-min-microvolt = <1700000>;
regulator-max-microvolt = <3300000>;
status = "okay";
};
};
rpm-regulator-ldob7 {
status = "okay";
pm660l_l7: regulator-l7 {
regulator-min-microvolt = <2700000>;
regulator-max-microvolt = <3125000>;
parent-supply = <&pm660_l10>;
status = "okay";
};
};
rpm-regulator-ldob8 {
status = "okay";
pm660l_l8: regulator-l8 {
regulator-min-microvolt = <3200000>;
regulator-max-microvolt = <3400000>;
status = "okay";
};
};
/* PM660L L9 = VDD_SSC_CX supply */
rpm-regulator-ldob9 {
status = "okay";
pm660l_l9_level: regulator-l9-level {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660l_l9_level";
qcom,set = <3>;
regulator-min-microvolt =
<RPM_SMD_REGULATOR_LEVEL_RETENTION>;
regulator-max-microvolt =
<RPM_SMD_REGULATOR_LEVEL_TURBO>;
qcom,use-voltage-level;
};
pm660l_l9_floor_level: regulator-l9-floor-level {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660l_l9_floor_level";
qcom,set = <3>;
regulator-min-microvolt =
<RPM_SMD_REGULATOR_LEVEL_RETENTION>;
regulator-max-microvolt =
<RPM_SMD_REGULATOR_LEVEL_TURBO>;
qcom,use-voltage-floor-level;
qcom,always-send-voltage;
};
};
/* PM660L L10 = VDD_SSC_MX supply */
rpm-regulator-ldob10 {
status = "okay";
pm660l_l10_level: regulator-l10-level {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660l_l10_level";
qcom,set = <3>;
regulator-min-microvolt =
<RPM_SMD_REGULATOR_LEVEL_RETENTION>;
regulator-max-microvolt =
<RPM_SMD_REGULATOR_LEVEL_TURBO>;
qcom,use-voltage-level;
};
pm660l_l10_floor_level: regulator-l10-floor-level {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660l_l10_floor_level";
qcom,set = <3>;
regulator-min-microvolt =
<RPM_SMD_REGULATOR_LEVEL_RETENTION>;
regulator-max-microvolt =
<RPM_SMD_REGULATOR_LEVEL_TURBO>;
qcom,use-voltage-floor-level;
qcom,always-send-voltage;
};
};
rpm-regulator-bobb {
status = "okay";
pm660l_bob: regulator-bob {
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3600000>;
qcom,pwm-threshold-current = <2000000>;
qcom,init-bob-mode = <2>;
status = "okay";
};
pm660l_bob_pin1: regulator-bob-pin1 {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660l_bob_pin1";
qcom,set = <3>;
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3600000>;
qcom,pwm-threshold-current = <2000000>;
qcom,init-bob-mode = <2>;
qcom,use-pin-ctrl-voltage1;
};
pm660l_bob_pin2: regulator-bob-pin2 {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660l_bob_pin2";
qcom,set = <3>;
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3600000>;
qcom,pwm-threshold-current = <2000000>;
qcom,init-bob-mode = <2>;
qcom,use-pin-ctrl-voltage2;
};
pm660l_bob_pin3: regulator-bob-pin3 {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660l_bob_pin3";
qcom,set = <3>;
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3600000>;
qcom,pwm-threshold-current = <2000000>;
qcom,init-bob-mode = <2>;
qcom,use-pin-ctrl-voltage3;
};
};
};
&pm660_charger {
smb2_vbus: qcom,smb2-vbus {
regulator-name = "smb2-vbus";
};
smb2_vconn: qcom,smb2-vconn {
regulator-name = "smb2-vconn";
};
};
/* Stub regulators */
/ {
/* GFX Supply */
gfx_stub_vreg: regulator-gfx-stub {
compatible = "qcom,stub-regulator";
regulator-name = "gfx_stub_corner";
regulator-min-microvolt = <400000>;
regulator-max-microvolt = <1070000>;
};
};
&soc {
/* MEM ACC regulators */
gfx_mem_acc_vreg: regulator@01fcf004 {
compatible = "qcom,mem-acc-regulator";
reg = <0x01fcf004 0x4>;
reg-names = "acc-sel-l1";
regulator-name = "gfx_mem_acc_corner";
regulator-min-microvolt = <1>;
regulator-max-microvolt = <2>;
qcom,corner-acc-map = <0x1 0x0>;
qcom,acc-sel-l1-bit-pos = <0>;
qcom,acc-sel-l1-bit-size = <1>;
};
gfx_ldo_vreg: ldo@0506e000 {
compatible = "qcom,sdm660-gfx-ldo";
reg = <0x0506e000 0x34>;
reg-names = "ldo_addr";
regulator-name = "msm_gfx_ldo";
regulator-min-microvolt = <400000>;
regulator-max-microvolt = <925000>;
};
/* CPR controller regulators */
/* MMSS CPR Controller node */
gfx_cpr: cpr4-ctrl@05061000 {
compatible = "qcom,cpr4-sdm660-mmss-ldo-regulator";
reg = <0x05061000 0x4000>, <0x00784000 0x1000>;
reg-names = "cpr_ctrl", "fuse_base";
clocks = <&clock_gpu GPUCC_RBCPR_CLK>,
<&clock_rpmcc RPM_SMD_CNOC_CLK>;
clock-names = "core_clk", "bus_clk";
interrupts = <GIC_SPI 285 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "cpr";
qcom,cpr-ctrl-name = "gfx";
qcom,cpr-sensor-time = <1000>;
qcom,cpr-loop-time = <5000000>;
qcom,cpr-idle-cycles = <15>;
qcom,cpr-step-quot-init-min = <12>;
qcom,cpr-step-quot-init-max = <14>;
qcom,cpr-count-mode = <0>; /* All at once */
qcom,cpr-count-repeat = <14>;
qcom,cpr-reset-step-quot-loop-en;
vdd-supply = <&gfx_stub_vreg>;
mem-acc-supply = <&gfx_mem_acc_vreg>;
system-supply = <&pm660l_s3_level>; /* vdd_cx */
qcom,voltage-step = <5000>;
vdd-thread0-ldo-supply = <&gfx_ldo_vreg>;
thread@0 {
qcom,cpr-thread-id = <0>;
qcom,cpr-consecutive-up = <0>;
qcom,cpr-consecutive-down = <2>;
qcom,cpr-up-threshold = <2>;
qcom,cpr-down-threshold = <2>;
gfx_vreg_corner: regulator {
regulator-name = "gfx_corner";
regulator-min-microvolt = <1>;
regulator-max-microvolt = <7>;
qcom,cpr-fuse-corners = <6>;
qcom,cpr-fuse-combos = <8>;
qcom,cpr-corners = <7>;
qcom,cpr-corner-fmax-map = <1 2 3 4 5 6>;
qcom,cpr-voltage-ceiling =
<585000 645000 725000 790000
870000 925000 1070000>;
qcom,cpr-voltage-floor =
<504000 504000 596000 652000
712000 744000 1070000>;
qcom,mem-acc-voltage = <1 1 1 2 2 2 2>;
qcom,system-voltage =
<RPM_SMD_REGULATOR_LEVEL_LOW_SVS>,
<RPM_SMD_REGULATOR_LEVEL_LOW_SVS>,
<RPM_SMD_REGULATOR_LEVEL_SVS>,
<RPM_SMD_REGULATOR_LEVEL_SVS_PLUS>,
<RPM_SMD_REGULATOR_LEVEL_NOM>,
<RPM_SMD_REGULATOR_LEVEL_NOM_PLUS>,
<RPM_SMD_REGULATOR_LEVEL_TURBO>;
qcom,corner-frequencies =
<160000000 266000000 370000000
465000000 588000000 647000000
750000000>;
qcom,cpr-target-quotients =
<0 0 0 0 0 0 174 167
294 292 303 313 0 0 0 0>,
<0 0 0 0 0 0 263 247
413 397 415 412 0 0 0 0>,
<0 0 0 0 0 0 375 354
554 519 573 554 0 0 0 0>,
<0 0 0 0 0 0 412 380
597 562 612 591 0 0 0 0>,
<0 0 0 0 0 0 513 476
722 680 738 718 0 0 0 0>,
<0 0 0 0 0 0 595 553
811 768 837 811 0 0 0 0>,
<0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0>;
qcom,cpr-ro-scaling-factor =
< 0 0 0 0 0 0 1790 1760
1990 1900 2140 2020 0 0 0 0>,
< 0 0 0 0 0 0 1790 1760
1990 1900 2140 2020 0 0 0 0>,
< 0 0 0 0 0 0 1790 1760
1990 1900 2140 2020 0 0 0 0>,
< 0 0 0 0 0 0 1790 1760
1990 1900 2140 2020 0 0 0 0>,
< 0 0 0 0 0 0 1790 1760
1990 1900 2140 2020 0 0 0 0>,
< 0 0 0 0 0 0 1790 1760
1990 1900 2140 2020 0 0 0 0>,
< 0 0 0 0 0 0 1790 1760
1990 1900 2140 2020 0 0 0 0>;
qcom,cpr-scaled-open-loop-voltage-as-ceiling;
qcom,cpr-corner-allow-ldo-mode =
<0 0 0 0 0 0 0>;
qcom,cpr-corner-allow-closed-loop =
<0 0 0 0 0 0 0>;
};
};
};
/* APC0 CPR Controller node for Silver cluster */
apc0_cpr: cprh-ctrl@179c8000 {
compatible = "qcom,cprh-sdm660-kbss-regulator";
reg = <0x179c8000 0x4000>, <0x00784000 0x1000>;
reg-names = "cpr_ctrl", "fuse_base";
clocks = <&clock_gcc GCC_HMSS_RBCPR_CLK>;
clock-names = "core_clk";
qcom,cpr-ctrl-name = "apc0";
qcom,cpr-controller-id = <0>;
qcom,cpr-sensor-time = <1000>;
qcom,cpr-loop-time = <5000000>;
qcom,cpr-idle-cycles = <15>;
qcom,cpr-up-down-delay-time = <3000>;
qcom,cpr-step-quot-init-min = <12>;
qcom,cpr-step-quot-init-max = <14>;
qcom,cpr-count-mode = <0>; /* All at once */
qcom,cpr-count-repeat = <14>;
qcom,cpr-down-error-step-limit = <1>;
qcom,cpr-up-error-step-limit = <1>;
qcom,cpr-corner-switch-delay-time = <1042>;
qcom,cpr-voltage-settling-time = <1760>;
qcom,apm-threshold-voltage = <872000>;
qcom,apm-crossover-voltage = <872000>;
qcom,apm-hysteresis-voltage = <20000>;
qcom,voltage-step = <4000>;
qcom,voltage-base = <400000>;
qcom,cpr-saw-use-unit-mV;
qcom,cpr-reset-step-quot-loop-en;
qcom,cpr-panic-reg-addr-list =
<0x179cbaa4 0x17912c18>;
qcom,cpr-panic-reg-name-list =
"PWR_CPRH_STATUS", "APCLUS0_L2_SAW4_PMIC_STS";
qcom,cpr-enable;
qcom,cpr-hw-closed-loop;
thread@0 {
qcom,cpr-thread-id = <0>;
qcom,cpr-consecutive-up = <0>;
qcom,cpr-consecutive-down = <2>;
qcom,cpr-up-threshold = <2>;
qcom,cpr-down-threshold = <2>;
apc0_pwrcl_vreg: regulator {
regulator-name = "apc0_pwrcl_corner";
regulator-min-microvolt = <1>;
regulator-max-microvolt = <8>;
qcom,cpr-fuse-corners = <5>;
qcom,cpr-fuse-combos = <40>;
qcom,cpr-speed-bins = <5>;
qcom,cpr-speed-bin-corners = <8 8 0 8 8>;
qcom,cpr-corners =
/* Speed bin 0 */
<8 8 8 8 8 8 8 8>,
/* Speed bin 1 */
<8 8 8 8 8 8 8 8>,
/* Speed bin 2 */
<0 0 0 0 0 0 0 0>,
/* Speed bin 3 */
<8 8 8 8 8 8 8 8>,
/* Speed bin 4 */
<8 8 8 8 8 8 8 8>;
qcom,cpr-corner-fmax-map =
/* Speed bin 0 */
<2 3 4 5 8>,
/* Speed bin 1 */
<2 3 4 5 8>,
/* Speed bin 2 */
<0 0 0 0 0>,
/* Speed bin 3 */
<2 3 4 5 8>,
/* Speed bin 4 */
<2 3 4 5 8>;
qcom,cpr-voltage-ceiling =
< 724000 724000 724000 788000 868000
1068000 1068000 1068000>;
qcom,cpr-voltage-floor =
<588000 588000 596000 652000 712000
744000 784000 844000>;
qcom,corner-frequencies =
/* Speed bin 0 */
<300000000 633600000 902400000
1113600000 1401600000 1536000000
1747200000 1843200000>,
/* Speed bin 1 */
<300000000 633600000 902400000
1113600000 1401600000 1536000000
1747200000 1843200000>,
/* Speed bin 3 */
<300000000 633600000 902400000
1113600000 1401600000 1536000000
1612800000 1843200000>,
/* Speed bin 4 */
<300000000 633600000 902400000
1113600000 1401600000 1536000000
1747200000 1843200000>;
qcom,allow-voltage-interpolation;
qcom,allow-quotient-interpolation;
qcom,cpr-scaled-open-loop-voltage-as-ceiling;
qcom,cpr-ro-scaling-factor =
<3600 3600 3830 2430 2520 2700 1790
1760 1970 1880 2110 2010 2510 4900
4370 4780>,
<3600 3600 3830 2430 2520 2700 1790
1760 1970 1880 2110 2010 2510 4900
4370 4780>,
<3600 3600 3830 2430 2520 2700 1790
1760 1970 1880 2110 2010 2510 4900
4370 4780>,
<3600 3600 3830 2430 2520 2700 1790
1760 1970 1880 2110 2010 2510 4900
4370 4780>,
<3600 3600 3830 2430 2520 2700 1790
1760 1970 1880 2110 2010 2510 4900
4370 4780>;
qcom,cpr-open-loop-voltage-fuse-adjustment =
< (-4000) 4000 7000 19000 (-8000)>;
qcom,cpr-closed-loop-voltage-fuse-adjustment =
<(-32000) (-30000) (-29000) (-23000)
(-21000)>;
qcom,cpr-floor-to-ceiling-max-range =
<32000 32000 32000 40000 44000
40000 40000 40000>;
};
};
};
/* APC1 CPR Controller node for Gold cluster */
apc1_cpr: cprh-ctrl@179c4000 {
compatible = "qcom,cprh-sdm660-kbss-regulator";
reg = <0x179c4000 0x4000>, <0x00784000 0x1000>;
reg-names = "cpr_ctrl", "fuse_base";
clocks = <&clock_gcc GCC_HMSS_RBCPR_CLK>;
clock-names = "core_clk";
qcom,cpr-ctrl-name = "apc1";
qcom,cpr-controller-id = <1>;
qcom,cpr-sensor-time = <1000>;
qcom,cpr-loop-time = <5000000>;
qcom,cpr-idle-cycles = <15>;
qcom,cpr-up-down-delay-time = <3000>;
qcom,cpr-step-quot-init-min = <12>;
qcom,cpr-step-quot-init-max = <14>;
qcom,cpr-count-mode = <0>; /* All at once */
qcom,cpr-count-repeat = <14>;
qcom,cpr-down-error-step-limit = <1>;
qcom,cpr-up-error-step-limit = <1>;
qcom,cpr-corner-switch-delay-time = <1042>;
qcom,cpr-voltage-settling-time = <1760>;
qcom,apm-threshold-voltage = <872000>;
qcom,apm-crossover-voltage = <872000>;
qcom,apm-hysteresis-voltage = <20000>;
qcom,voltage-step = <4000>;
qcom,voltage-base = <400000>;
qcom,cpr-saw-use-unit-mV;
qcom,cpr-reset-step-quot-loop-en;
qcom,cpr-panic-reg-addr-list =
<0x179c7aa4 0x17812c18>;
qcom,cpr-panic-reg-name-list =
"PERF_CPRH_STATUS", "APCLUS1_L2_SAW4_PMIC_STS";
qcom,cpr-enable;
qcom,cpr-hw-closed-loop;
thread@0 {
qcom,cpr-thread-id = <0>;
qcom,cpr-consecutive-up = <0>;
qcom,cpr-consecutive-down = <2>;
qcom,cpr-up-threshold = <2>;
qcom,cpr-down-threshold = <2>;
apc1_perfcl_vreg: regulator {
regulator-name = "apc1_perfcl_corner";
regulator-min-microvolt = <1>;
regulator-max-microvolt = <7>;
qcom,cpr-fuse-corners = <5>;
qcom,cpr-fuse-combos = <40>;
qcom,cpr-speed-bins = <5>;
qcom,cpr-speed-bin-corners = <7 7 0 7 7>;
qcom,cpr-corners =
/* Speed-bin 0 */
<7 7 7 7 7 7 7 7>,
/* Speed-bin 1 */
<7 7 7 7 7 7 7 7>,
/* Speed-bin 1 */
<0 0 0 0 0 0 0 0>,
/* Speed-bin 3 */
<7 7 7 7 7 7 7 7>,
/* Speed-bin 4 */
<7 7 7 7 7 7 7 7>;
qcom,cpr-corner-fmax-map =
/* Speed-bin 0 */
<2 3 4 6 7>,
/* Speed-bin 1 */
<2 3 4 6 7>,
/* Speed-bin 2 */
<0 0 0 0 0>,
/* Speed-bin 3 */
<2 3 4 6 7>,
/* Speed-bin 4 */
<2 3 4 6 7>;
qcom,cpr-voltage-ceiling =
<724000 724000 788000 868000
988000 988000 1068000>;
qcom,cpr-voltage-floor =
<588000 596000 652000 712000
744000 784000 844000>;
qcom,corner-frequencies =
/* Speed bin 0 */
<300000000 1113600000 1401600000
1747200000 1958400000 2150400000
2457600000>,
/* Speed bin 1 */
<300000000 1113600000 1401600000
1747200000 1958400000 2150400000
2208000000>,
/* Speed bin 3 */
<300000000 1113600000 1401600000
1747200000 1804800000 2150400000
2208000000>,
/* Speed bin 4 */
<300000000 1113600000 1401600000
1747200000 1958400000 2150400000
2208000000>;
qcom,allow-voltage-interpolation;
qcom,allow-quotient-interpolation;
qcom,cpr-scaled-open-loop-voltage-as-ceiling;
qcom,cpr-ro-scaling-factor =
<4040 4230 0000 2210 2560 2450 2230
2220 2410 2300 2560 2470 1600 3120
2620 2280>,
<4040 4230 0000 2210 2560 2450 2230
2220 2410 2300 2560 2470 1600 3120
2620 2280>,
<4040 4230 0000 2210 2560 2450 2230
2220 2410 2300 2560 2470 1600 3120
2620 2280>,
<4040 4230 0000 2210 2560 2450 2230
2220 2410 2300 2560 2470 1600 3120
2620 2280>,
<4040 4230 0000 2210 2560 2450 2230
2220 2410 2300 2560 2470 1600 3120
2620 2280>;
qcom,cpr-open-loop-voltage-fuse-adjustment =
<16000 27000 39000 39000 20000>;
qcom,cpr-closed-loop-voltage-fuse-adjustment =
<(-22000) (-9000) (-7000) (-2000)
11000>;
qcom,cpr-floor-to-ceiling-max-range =
<40000 40000 40000 40000
66000 66000 40000>;
};
};
};
};

View File

@ -0,0 +1,144 @@
/* Copyright (c) 2016-2017, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
/dts-v1/;
#include "sdm660.dtsi"
#include "sdm660-pinctrl.dtsi"
/ {
model = "Qualcomm Technologies, Inc. SDM 660 PM660 + PM660L SIM";
compatible = "qcom,sdm660-sim", "qcom,sdm660", "qcom,sim";
qcom,board-id = <16 0>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
<0x0001001b 0x0201011a 0x0 0x0>;
chosen {
bootargs = "lpm_levels.sleep_disabled=1";
};
};
&usb3 {
reg = <0xa800000 0xfc000>;
reg-names = "core_base";
/delete-property/ extcon;
dwc3@a800000 {
maximum-speed = "high-speed";
};
};
&ssphy {
compatible = "usb-nop-xceiv";
};
&qusb_phy0 {
compatible = "usb-nop-xceiv";
};
&uartblsp1dm1 {
status = "ok";
pinctrl-names = "default";
pinctrl-0 = <&uart_console_active>;
};
&sdhc_1 {
/* device core power supply */
vdd-supply = <&pm660l_l4>;
qcom,vdd-voltage-level = <2950000 2950000>;
qcom,vdd-current-level = <200 570000>;
/* device communication power supply */
vdd-io-supply = <&pm660_l8>;
qcom,vdd-io-always-on;
qcom,vdd-io-lpm-sup;
qcom,vdd-io-voltage-level = <1800000 1800000>;
qcom,vdd-io-current-level = <200 325000>;
pinctrl-names = "active", "sleep";
pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on &sdc1_rclk_on>;
pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off &sdc1_rclk_off>;
qcom,clk-rates = <400000 20000000 25000000 50000000 100000000 192000000
384000000>;
qcom,nonremovable;
qcom,bus-speed-mode = "HS400_1p8v", "HS200_1p8v", "DDR_1p8v";
status = "ok";
};
&sdhc_2 {
/* device core power supply */
vdd-supply = <&pm660l_l5>;
qcom,vdd-voltage-level = <2950000 2950000>;
qcom,vdd-current-level = <15000 800000>;
/* device communication power supply */
vdd-io-supply = <&pm660l_l2>;
qcom,vdd-io-voltage-level = <1800000 2950000>;
qcom,vdd-io-current-level = <200 22000>;
pinctrl-names = "active", "sleep";
pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>;
pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;
#address-cells = <0>;
interrupt-parent = <&sdhc_2>;
interrupts = <0 1 2>;
#interrupt-cells = <1>;
interrupt-map-mask = <0xffffffff>;
interrupt-map = <0 &intc 0 0 125 0
1 &intc 0 0 221 0
2 &tlmm 54 0>;
interrupt-names = "hc_irq", "pwr_irq", "status_irq";
cd-gpios = <&tlmm 54 0x1>;
qcom,clk-rates = <400000 20000000 25000000 50000000 100000000
200000000>;
qcom,bus-speed-mode = "SDR12", "SDR25", "SDR50", "DDR50", "SDR104";
status = "ok";
};
&pm660_charger {
status = "disabled";
};
&pm660_fg {
status = "disabled";
};
&pm660_pdphy {
status = "disabled";
};
&ufsphy1 {
vdda-phy-supply = <&pm660l_l1>;
vdda-pll-supply = <&pm660_l10>;
vddp-ref-clk-supply = <&pm660_l1>;
vdda-phy-max-microamp = <51400>;
vdda-pll-max-microamp = <14200>;
vddp-ref-clk-max-microamp = <100>;
vddp-ref-clk-always-on;
status = "ok";
};
&ufs1 {
vdd-hba-supply = <&gdsc_ufs>;
vdd-hba-fixed-regulator;
vcc-supply = <&pm660l_l4>;
vccq2-supply = <&pm660_l8>;
vcc-max-microamp = <500000>;
vccq2-max-microamp = <600000>;
status = "ok";
};

View File

@ -0,0 +1,33 @@
/* Copyright (c) 2017, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
/dts-v1/;
#include "sdm660.dtsi"
#include "sdm660-mtp.dtsi"
#include "sdm660-external-codec.dtsi"
/ {
model = "Qualcomm Technologies, Inc. SDM 660 PM660 + PM660L, USBC
Audio MTP";
compatible = "qcom,sdm660-mtp", "qcom,sdm660", "qcom,mtp";
qcom,board-id = <8 2>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
<0x0001001b 0x0201011a 0x0 0x0>,
<0x0001001b 0x0102001a 0x0 0x0>;
};
&tavil_snd {
qcom,msm-mbhc-moist-cfg = <0>, <0>, <3>;
qcom,msm-mbhc-usbc-audio-supported = <1>;
};

View File

@ -0,0 +1,31 @@
/* Copyright (c) 2017, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
/dts-v1/;
#include "sdm660.dtsi"
#include "sdm660-cdp.dtsi"
#include "sdm660-external-codec.dtsi"
/ {
model = "Qualcomm Technologies, Inc. SDM 660 PM660 + PM660L, USBC
Audio, RCM";
compatible = "qcom,sdm660-cdp", "qcom,sdm660", "qcom,cdp";
qcom,board-id = <21 3>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
<0x0001001b 0x0201011a 0x0 0x0>;
};
&tavil_snd {
qcom,msm-mbhc-usbc-audio-supported = <1>;
};

View File

@ -0,0 +1,267 @@
/* Copyright (c) 2016-2017, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/msm/msm-bus-ids.h>
#include <dt-bindings/clock/qcom,gcc-sdm660.h>
#include <dt-bindings/clock/qcom,mmcc-sdm660.h>
#include <dt-bindings/clock/qcom,rpmcc.h>
&soc {
msm_vidc: qcom,vidc@cc00000 {
compatible = "qcom,msm-vidc";
status = "ok";
reg = <0xcc00000 0x100000>;
interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>;
qcom,hfi = "venus";
qcom,hfi-version = "3xx";
qcom,firmware-name = "venus";
qcom,never-unload-fw;
qcom,sw-power-collapse;
qcom,max-secure-instances = <5>;
qcom,reg-presets =
<0x80010 0x001f001f>,
<0x80018 0x00000156>,
<0x8001c 0x00000156>;
qcom,max-hw-load = <1036800>; /* Full 4k @ 30 */
qcom,allowed-clock-rates =
/* TURBO NOM+ NOM
* SVS+ SVS SVS-
*/
<518400000 441600000 404000000
320000000 269330000 133330000>;
qcom,dcvs-tbl =
/* Dec UHD@30 All decoder - NOM to SVS+ */
<897600 783360 979200 0x3f00000c>,
/* Dec DCI@24 HEVC - NOM to SVS+ */
<816000 734400 829440 0x0c000000>,
/* Enc UHD@30 H264/HEVC - TURBO to NOM+ */
<897600 897600 979200 0x4000004>;
qcom,dcvs-limit =
<32400 30>, /* Encoder UHD */
<32400 24>; /* Decoder UHD */
/* Regulators */
smmu-vdd-supply = <&gdsc_bimc_smmu>;
venus-supply = <&gdsc_venus>;
venus-core0-supply = <&gdsc_venus_core0>;
/* Clocks */
clock-names = "gcc_mmss_sys_noc_axi_clk",
"mmssnoc_axi_clk", "mmss_throttle_video_axi_clk",
"mmss_mnoc_ahb_clk", "mmss_bimc_smmu_ahb_clk",
"mmss_bimc_smmu_axi_clk", "mmss_video_core_clk",
"mmss_video_ahb_clk", "mmss_video_axi_clk",
"mmss_video_core0_clk";
clocks = <&clock_gcc GCC_MMSS_SYS_NOC_AXI_CLK>,
<&clock_rpmcc RPM_SMD_MMSSNOC_AXI_CLK>,
<&clock_mmss MMSS_THROTTLE_VIDEO_AXI_CLK>,
<&clock_mmss MMSS_MNOC_AHB_CLK>,
<&clock_mmss MMSS_BIMC_SMMU_AHB_CLK>,
<&clock_mmss MMSS_BIMC_SMMU_AXI_CLK>,
<&clock_mmss MMSS_VIDEO_CORE_CLK>,
<&clock_mmss MMSS_VIDEO_AHB_CLK>,
<&clock_mmss MMSS_VIDEO_AXI_CLK>,
<&clock_mmss MMSS_VIDEO_SUBCORE0_CLK>;
qcom,clock-configs = <0x0 0x0 0x0 0x0 0x0 0x0
0x3 0x0 0x2 0x3>;
/* Buses */
bus_cnoc {
compatible = "qcom,msm-vidc,bus";
label = "cnoc";
qcom,bus-master = <MSM_BUS_MASTER_AMPSS_M0>;
qcom,bus-slave = <MSM_BUS_SLAVE_VENUS_CFG>;
qcom,bus-governor = "performance";
qcom,bus-range-kbps = <1 1>;
};
venus_bus_ddr {
compatible = "qcom,msm-vidc,bus";
label = "venus-ddr";
qcom,bus-master = <MSM_BUS_MASTER_VIDEO_P0>;
qcom,bus-slave = <MSM_BUS_SLAVE_EBI_CH0>;
qcom,bus-governor = "venus-ddr-gov";
qcom,bus-range-kbps = <1000 2365000>;
};
arm9_bus_ddr {
compatible = "qcom,msm-vidc,bus";
label = "venus-arm9-ddr";
qcom,bus-master = <MSM_BUS_MASTER_VIDEO_P0>;
qcom,bus-slave = <MSM_BUS_SLAVE_EBI_CH0>;
qcom,bus-governor = "performance";
qcom,bus-range-kbps = <1 1>;
};
qcom,clock-freq-tbl {
qcom,profile-enc {
qcom,codec-mask = <0x55555555>;
qcom,cycles-per-mb = <931>;
qcom,low-power-mode-factor = <33286>;
};
qcom,profile-dec {
qcom,codec-mask = <0xf3ffffff>;
qcom,cycles-per-mb = <355>;
};
qcom,profile-hevcdec {
qcom,codec-mask = <0x0c000000>;
qcom,cycles-per-mb = <400>;
};
};
venus-ddr-gov {
compatible = "qcom,msm-vidc,governor,table";
name = "venus-ddr-gov";
status = "ok";
qcom,bus-freq-table {
qcom,profile-enc {
qcom,codec-mask = <0x55555555>;
qcom,load-busfreq-tbl =
<979200 1044000>, /* UHD30E */
<864000 887000>, /* 720p240LPE */
<489600 666000>, /* 1080p60E */
<432000 578000>, /* 720p120E */
<244800 346000>, /* 1080p30E */
<216000 293000>, /* 720p60E */
<108000 151000>, /* 720p30E */
<0 0>;
};
qcom,profile-dec {
qcom,codec-mask = <0xffffffff>;
qcom,load-busfreq-tbl =
<979200 2365000>, /* UHD30D */
<864000 1978000>, /* 720p240D */
<489600 1133000>, /* 1080p60D */
<432000 994000>, /* 720p120D */
<244800 580000>, /* 1080p30D */
<216000 501000>, /* 720p60E */
<108000 255000>, /* 720p30D */
<0 0>;
};
qcom,profile-dec-ubwc {
qcom,codec-mask = <0xffffffff>;
qcom,ubwc-mode;
qcom,load-busfreq-tbl =
<979200 1892000>, /* UHD30D */
<864000 1554000>, /* 720p240D */
<489600 895000>, /* 1080p60D */
<432000 781000>, /* 720p120D */
<244800 460000>, /* 1080p30D */
<216000 301000>, /* 720p60E */
<108000 202000>, /* 720p30D */
<0 0>;
};
qcom,profile-dec-ubwc-10bit {
qcom,codec-mask = <0xffffffff>;
qcom,ubwc-10bit;
qcom,load-busfreq-tbl =
<979200 2446336>, /* UHD30D */
<864000 2108416>, /* 720p240D */
<489600 1207296>, /* 1080p60D */
<432000 1058816>, /* 720p120D */
<244800 616448>, /* 1080p30D */
<216000 534528>, /* 720p60D */
<108000 271360>, /* 720p30D */
<0 0>;
};
};
};
/* MMUs */
non_secure_cb {
compatible = "qcom,msm-vidc,context-bank";
label = "venus_ns";
iommus =
<&mmss_bimc_smmu 0x400>,
<&mmss_bimc_smmu 0x401>,
<&mmss_bimc_smmu 0x40a>,
<&mmss_bimc_smmu 0x407>,
<&mmss_bimc_smmu 0x40e>,
<&mmss_bimc_smmu 0x40f>,
<&mmss_bimc_smmu 0x408>,
<&mmss_bimc_smmu 0x409>,
<&mmss_bimc_smmu 0x40b>,
<&mmss_bimc_smmu 0x40c>,
<&mmss_bimc_smmu 0x40d>,
<&mmss_bimc_smmu 0x410>,
<&mmss_bimc_smmu 0x421>,
<&mmss_bimc_smmu 0x428>,
<&mmss_bimc_smmu 0x429>,
<&mmss_bimc_smmu 0x42b>,
<&mmss_bimc_smmu 0x42c>,
<&mmss_bimc_smmu 0x42d>,
<&mmss_bimc_smmu 0x411>,
<&mmss_bimc_smmu 0x431>;
buffer-types = <0xfff>;
virtual-addr-pool = <0x79000000 0x60000000>;
};
firmware_cb {
compatible = "qcom,msm-vidc,context-bank";
qcom,fw-context-bank;
iommus = <&mmss_bimc_smmu 0x580>,
<&mmss_bimc_smmu 0x586>;
};
secure_bitstream_cb {
compatible = "qcom,msm-vidc,context-bank";
label = "venus_sec_bitstream";
iommus = <&mmss_bimc_smmu 0x500>,
<&mmss_bimc_smmu 0x502>,
<&mmss_bimc_smmu 0x509>,
<&mmss_bimc_smmu 0x50a>,
<&mmss_bimc_smmu 0x50b>,
<&mmss_bimc_smmu 0x50e>,
<&mmss_bimc_smmu 0x526>,
<&mmss_bimc_smmu 0x529>,
<&mmss_bimc_smmu 0x52b>;
buffer-types = <0x241>;
virtual-addr-pool = <0x51000000 0x28000000>;
qcom,secure-context-bank;
};
venus_secure_pixel_cb: secure_pixel_cb {
compatible = "qcom,msm-vidc,context-bank";
label = "venus_sec_pixel";
iommus = <&mmss_bimc_smmu 0x504>,
<&mmss_bimc_smmu 0x50c>,
<&mmss_bimc_smmu 0x510>,
<&mmss_bimc_smmu 0x52c>;
buffer-types = <0x106>;
virtual-addr-pool = <0x29000000 0x28000000>;
qcom,secure-context-bank;
};
venus_secure_non_pixel_cb: secure_non_pixel_cb {
compatible = "qcom,msm-vidc,context-bank";
label = "venus_sec_non_pixel";
iommus = <&mmss_bimc_smmu 0x505>,
<&mmss_bimc_smmu 0x507>,
<&mmss_bimc_smmu 0x508>,
<&mmss_bimc_smmu 0x50d>,
<&mmss_bimc_smmu 0x50f>,
<&mmss_bimc_smmu 0x525>,
<&mmss_bimc_smmu 0x528>,
<&mmss_bimc_smmu 0x52d>,
<&mmss_bimc_smmu 0x540>;
buffer-types = <0x480>;
virtual-addr-pool = <0x1000000 0x28000000>;
qcom,secure-context-bank;
};
};
};

View File

@ -0,0 +1,197 @@
/* Copyright (c) 2016, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
&slim_aud {
tasha_codec {
wsa_spkr_sd1: msm_cdc_pinctrll {
compatible = "qcom,msm-cdc-pinctrl";
pinctrl-names = "aud_active", "aud_sleep";
pinctrl-0 = <&spkr_1_sd_n_active>;
pinctrl-1 = <&spkr_1_sd_n_sleep>;
};
wsa_spkr_sd2: msm_cdc_pinctrlr {
compatible = "qcom,msm-cdc-pinctrl";
pinctrl-names = "aud_active", "aud_sleep";
pinctrl-0 = <&spkr_2_sd_n_active>;
pinctrl-1 = <&spkr_2_sd_n_sleep>;
};
tasha_hph_en0: msm_cdc_pinctrl_hph_en0 {
compatible = "qcom,msm-cdc-pinctrl";
pinctrl-names = "aud_active", "aud_sleep";
pinctrl-0 = <&hph_en0_active>;
pinctrl-1 = <&hph_en0_sleep>;
};
tasha_hph_en1: msm_cdc_pinctrl_hph_en1 {
compatible = "qcom,msm-cdc-pinctrl";
pinctrl-names = "aud_active", "aud_sleep";
pinctrl-0 = <&hph_en1_active>;
pinctrl-1 = <&hph_en1_sleep>;
};
};
tavil_codec {
wcd: wcd_pinctrl@5 {
compatible = "qcom,wcd-pinctrl";
qcom,num-gpios = <5>;
gpio-controller;
#gpio-cells = <2>;
us_euro_sw_wcd_active: us_euro_sw_wcd_active {
mux {
pins = "gpio1";
};
config {
pins = "gpio1";
output-high;
};
};
us_euro_sw_wcd_sleep: us_euro_sw_wcd_sleep {
mux {
pins = "gpio1";
};
config {
pins = "gpio1";
output-low;
};
};
spkr_1_wcd_en_active: spkr_1_wcd_en_active {
mux {
pins = "gpio2";
};
config {
pins = "gpio2";
output-high;
};
};
spkr_1_wcd_en_sleep: spkr_1_wcd_en_sleep {
mux {
pins = "gpio2";
};
config {
pins = "gpio2";
input-enable;
};
};
spkr_2_wcd_en_active: spkr_2_sd_n_active {
mux {
pins = "gpio3";
};
config {
pins = "gpio3";
output-high;
};
};
spkr_2_wcd_en_sleep: spkr_2_sd_n_sleep {
mux {
pins = "gpio3";
};
config {
pins = "gpio3";
input-enable;
};
};
hph_en0_wcd_active: hph_en0_wcd_active {
mux {
pins = "gpio4";
};
config {
pins = "gpio4";
output-high;
};
};
hph_en0_wcd_sleep: hph_en0_wcd_sleep {
mux {
pins = "gpio4";
};
config {
pins = "gpio4";
output-low;
};
};
hph_en1_wcd_active: hph_en1_wcd_active {
mux {
pins = "gpio5";
};
config {
pins = "gpio5";
output-high;
};
};
hph_en1_wcd_sleep: hph_en1_wcd_sleep {
mux {
pins = "gpio5";
};
config {
pins = "gpio5";
output-low;
};
};
};
wsa_spkr_wcd_sd1: msm_cdc_pinctrll {
compatible = "qcom,msm-cdc-pinctrl";
pinctrl-names = "aud_active", "aud_sleep";
pinctrl-0 = <&spkr_1_wcd_en_active>;
pinctrl-1 = <&spkr_1_wcd_en_sleep>;
};
wsa_spkr_wcd_sd2: msm_cdc_pinctrlr {
compatible = "qcom,msm-cdc-pinctrl";
pinctrl-names = "aud_active", "aud_sleep";
pinctrl-0 = <&spkr_2_wcd_en_active>;
pinctrl-1 = <&spkr_2_wcd_en_sleep>;
};
tavil_us_euro_sw: msm_cdc_pinctrl_us_euro_sw {
compatible = "qcom,msm-cdc-pinctrl";
pinctrl-names = "aud_active", "aud_sleep";
pinctrl-0 = <&us_euro_sw_wcd_active>;
pinctrl-1 = <&us_euro_sw_wcd_sleep>;
};
tavil_hph_en0: msm_cdc_pinctrl_hph_en0 {
compatible = "qcom,msm-cdc-pinctrl";
pinctrl-names = "aud_active", "aud_sleep";
pinctrl-0 = <&hph_en0_wcd_active>;
pinctrl-1 = <&hph_en0_wcd_sleep>;
};
tavil_hph_en1: msm_cdc_pinctrl_hph_en1 {
compatible = "qcom,msm-cdc-pinctrl";
pinctrl-names = "aud_active", "aud_sleep";
pinctrl-0 = <&hph_en1_wcd_active>;
pinctrl-1 = <&hph_en1_wcd_sleep>;
};
};
};

View File

@ -0,0 +1,79 @@
/* Copyright (c) 2016, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include "sdm660-wcd.dtsi"
&slim_aud {
tasha_codec {
swr_master {
compatible = "qcom,swr-wcd";
#address-cells = <2>;
#size-cells = <0>;
wsa881x_211: wsa881x@20170211 {
compatible = "qcom,wsa881x";
reg = <0x0 0x20170211>;
qcom,spkr-sd-n-node = <&wsa_spkr_sd1>;
};
wsa881x_212: wsa881x@20170212 {
compatible = "qcom,wsa881x";
reg = <0x0 0x20170212>;
qcom,spkr-sd-n-node = <&wsa_spkr_sd2>;
};
wsa881x_213: wsa881x@21170213 {
compatible = "qcom,wsa881x";
reg = <0x0 0x21170213>;
qcom,spkr-sd-n-node = <&wsa_spkr_sd1>;
};
wsa881x_214: wsa881x@21170214 {
compatible = "qcom,wsa881x";
reg = <0x0 0x21170214>;
qcom,spkr-sd-n-node = <&wsa_spkr_sd2>;
};
};
};
tavil_codec {
swr_master {
compatible = "qcom,swr-wcd";
#address-cells = <2>;
#size-cells = <0>;
wsa881x_0211: wsa881x@20170211 {
compatible = "qcom,wsa881x";
reg = <0x0 0x20170211>;
qcom,spkr-sd-n-node = <&wsa_spkr_wcd_sd1>;
};
wsa881x_0212: wsa881x@20170212 {
compatible = "qcom,wsa881x";
reg = <0x0 0x20170212>;
qcom,spkr-sd-n-node = <&wsa_spkr_wcd_sd2>;
};
wsa881x_0213: wsa881x@21170213 {
compatible = "qcom,wsa881x";
reg = <0x0 0x21170213>;
qcom,spkr-sd-n-node = <&wsa_spkr_wcd_sd1>;
};
wsa881x_0214: wsa881x@21170214 {
compatible = "qcom,wsa881x";
reg = <0x0 0x21170214>;
qcom,spkr-sd-n-node = <&wsa_spkr_wcd_sd2>;
};
};
};
};

File diff suppressed because it is too large Load Diff

View File

@ -627,6 +627,15 @@
#define MSM_BUS_SLAVE_TLMM_NORTH 731
#define MSM_BUS_SLAVE_TLMM_WEST 732
#define MSM_BUS_SLAVE_SKL 733
#define MSM_BUS_SLAVE_LPASS_TCM 734
#define MSM_BUS_SLAVE_TLMM_CENTER 736
#define MSM_BUS_MSS_NAV_CE_MPU_CFG 737
#define MSM_BUS_SLAVE_A2NOC_THROTTLE_CFG 738
#define MSM_BUS_SLAVE_CDSP 739
#define MSM_BUS_SLAVE_CDSP_SMMU_CFG 740
#define MSM_BUS_SLAVE_LPASS_MPU_CFG 741
#define MSM_BUS_SLAVE_CSI_PHY_CFG 742
#define MSM_BUS_SLAVE_LAST 743
#define MSM_BUS_SLAVE_SERVICE_A1NOC 744
#define MSM_BUS_SLAVE_ANOC_PCIE_SNOC 745
#define MSM_BUS_SLAVE_SERVICE_A2NOC 746

View File

@ -0,0 +1,24 @@
/* Copyright (c) 2015, 2017, 2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef __MSM_POWER_ON_H__
#define __MSM_POWER_ON_H__
#define PON_POWER_OFF_RESERVED 0x00
#define PON_POWER_OFF_WARM_RESET 0x01
#define PON_POWER_OFF_SHUTDOWN 0x04
#define PON_POWER_OFF_DVDD_SHUTDOWN 0x05
#define PON_POWER_OFF_HARD_RESET 0x07
#define PON_POWER_OFF_DVDD_HARD_RESET 0x08
#define PON_POWER_OFF_MAX_TYPE 0x10
#endif