Commit 878e26d3 authored by Arnd Bergmann's avatar Arnd Bergmann

Merge tag 'qcom-dts-for-5.16' of...

Merge tag 'qcom-dts-for-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into arm/dt

Qualcomm DTS updates for v5.16

This extends the previous limited description of MSM8226 with SDHC,
UART, I2C, SCM, SMEM, RPM and basic PMIC definitions. Based on this,
initial support for the LG G Watch R smartwatch is introduced.

APQ8064 gets a couple of DT updates, one which will allow the GPU driver
to drop supporting legacy "opp tables" in the future.

DT bindings and DTS files are updated with additional compatibles, for
completeness.

* tag 'qcom-dts-for-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux:
  dt-bindings: arm: qcom, add missing devices
  ARM: dts: qcom: msm8974: Add xo_board reference clock to DSI0 PHY
  ARM: dts: qcom: fill secondary compatible for multiple boards
  ARM: dts: qcom: apq8064: adjust memory node according to specs
  ARM: dts: qcom: apq8064: Convert adreno from legacy gpu-pwrlevels to opp-v2
  ARM: dts: qcom: Add support for LG G Watch R
  dt-bindings: arm: qcom: Document APQ8026 SoC binding
  ARM: dts: qcom: Add pm8226 PMIC
  ARM: dts: qcom: msm8226: Add more SoC bits
  dt-bindings: arm: qcom: Document SDX65 platform and boards

Link: https://lore.kernel.org/r/20211012174310.1017857-1-bjorn.andersson@linaro.orgSigned-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parents ba232d39 9304af37
......@@ -25,6 +25,7 @@ description: |
The 'SoC' element must be one of the following strings:
apq8016
apq8026
apq8074
apq8084
apq8096
......@@ -44,6 +45,7 @@ description: |
sdm660
sdm845
sdx55
sdx65
sm8150
sm8250
sm8350
......@@ -94,6 +96,14 @@ properties:
- items:
- enum:
- lge,lenok
- const: qcom,apq8026
- items:
- enum:
- asus,nexus4-mako
- asus,nexus7-flo
- sony,xperia-yuga
- qcom,apq8064-cm-qs600
- qcom,apq8064-ifc6410
- const: qcom,apq8064
......@@ -129,6 +139,7 @@ properties:
- enum:
- fairphone,fp2
- lge,hammerhead
- samsung,klte
- sony,xperia-amami
- sony,xperia-castor
- sony,xperia-honami
......@@ -206,6 +217,11 @@ properties:
- qcom,sdx55-t55
- const: qcom,sdx55
- items:
- enum:
- qcom,sdx65-mtp
- const: qcom,sdx65
- items:
- enum:
- qcom,ipq6018-cp01
......
......@@ -941,6 +941,7 @@ dtb-$(CONFIG_ARCH_OXNAS) += \
ox810se-wd-mbwe.dtb \
ox820-cloudengines-pogoplug-series-3.dtb
dtb-$(CONFIG_ARCH_QCOM) += \
qcom-apq8026-lge-lenok.dtb \
qcom-apq8060-dragonboard.dtb \
qcom-apq8064-cm-qs600.dtb \
qcom-apq8064-ifc6410.dtb \
......
// SPDX-License-Identifier: BSD-3-Clause
/*
* Copyright (c) 2021, Luca Weiss <luca@z3ntu.xyz>
*/
/dts-v1/;
#include "qcom-msm8226.dtsi"
#include "qcom-pm8226.dtsi"
/ {
model = "LG G Watch R";
compatible = "lge,lenok", "qcom,apq8026";
qcom,board-id = <132 0x0a>;
qcom,msm-id = <199 0x20000>;
aliases {
serial0 = &blsp1_uart3;
};
chosen {
stdout-path = "serial0:115200n8";
};
};
&blsp1_i2c5 {
status = "okay";
clock-frequency = <384000>;
touchscreen@20 {
compatible = "syna,rmi4-i2c";
reg = <0x20>;
interrupts-extended = <&tlmm 17 IRQ_TYPE_EDGE_FALLING>;
vdd-supply = <&pm8226_l15>;
vio-supply = <&pm8226_l22>;
pinctrl-names = "default";
pinctrl-0 = <&touch_pins>;
#address-cells = <1>;
#size-cells = <0>;
rmi4-f01@1 {
reg = <0x1>;
syna,nosleep-mode = <1>;
};
rmi4-f12@12 {
reg = <0x12>;
syna,sensor-type = <1>;
};
};
};
&blsp1_uart3 {
status = "okay";
};
&rpm_requests {
pm8226-regulators {
compatible = "qcom,rpm-pm8226-regulators";
pm8226_s1: s1 {
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <1275000>;
};
pm8226_s3: s3 {
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1350000>;
};
pm8226_s4: s4 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <2200000>;
};
pm8226_s5: s5 {
regulator-min-microvolt = <1150000>;
regulator-max-microvolt = <1150000>;
};
pm8226_l1: l1 {
regulator-min-microvolt = <1225000>;
regulator-max-microvolt = <1225000>;
};
pm8226_l2: l2 {
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
};
pm8226_l3: l3 {
regulator-min-microvolt = <750000>;
regulator-max-microvolt = <1337500>;
};
pm8226_l4: l4 {
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
};
pm8226_l5: l5 {
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
};
pm8226_l6: l6 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
pm8226_l7: l7 {
regulator-min-microvolt = <1850000>;
regulator-max-microvolt = <1850000>;
};
pm8226_l8: l8 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
pm8226_l9: l9 {
regulator-min-microvolt = <2050000>;
regulator-max-microvolt = <2050000>;
};
pm8226_l10: l10 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
pm8226_l12: l12 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
pm8226_l14: l14 {
regulator-min-microvolt = <2750000>;
regulator-max-microvolt = <2750000>;
};
pm8226_l15: l15 {
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
pm8226_l16: l16 {
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3350000>;
};
pm8226_l17: l17 {
regulator-min-microvolt = <2950000>;
regulator-max-microvolt = <2950000>;
};
pm8226_l18: l18 {
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3300000>;
};
pm8226_l19: l19 {
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3000000>;
};
pm8226_l20: l20 {
regulator-min-microvolt = <3075000>;
regulator-max-microvolt = <3075000>;
};
pm8226_l21: l21 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <2950000>;
};
pm8226_l22: l22 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
pm8226_l23: l23 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <2950000>;
};
pm8226_l24: l24 {
regulator-min-microvolt = <1300000>;
regulator-max-microvolt = <1350000>;
};
pm8226_l25: l25 {
regulator-min-microvolt = <1775000>;
regulator-max-microvolt = <2125000>;
};
pm8226_l26: l26 {
regulator-min-microvolt = <1225000>;
regulator-max-microvolt = <1225000>;
};
pm8226_l27: l27 {
regulator-min-microvolt = <2050000>;
regulator-max-microvolt = <2050000>;
};
pm8226_l28: l28 {
regulator-min-microvolt = <2700000>;
regulator-max-microvolt = <3000000>;
};
pm8226_lvs1: lvs1 {};
};
};
&sdhc_1 {
status = "okay";
vmmc-supply = <&pm8226_l17>;
vqmmc-supply = <&pm8226_l6>;
bus-width = <8>;
non-removable;
pinctrl-names = "default";
pinctrl-0 = <&sdhc1_pin_a>;
};
&tlmm {
sdhc1_pin_a: sdhc1-pin-active {
clk {
pins = "sdc1_clk";
drive-strength = <10>;
bias-disable;
};
cmd-data {
pins = "sdc1_cmd", "sdc1_data";
drive-strength = <10>;
bias-pull-up;
};
};
touch_pins: touch {
irq {
pins = "gpio17";
function = "gpio";
drive-strength = <8>;
bias-pull-down;
input-enable;
};
reset {
pins = "gpio16";
function = "gpio";
drive-strength = <8>;
bias-disable;
output-high;
};
};
};
......@@ -95,7 +95,7 @@ CPU_SPC: spc {
};
};
memory {
memory@0 {
device_type = "memory";
reg = <0x0 0x0>;
};
......@@ -1230,13 +1230,17 @@ &gfx3d1 29
&gfx3d1 30
&gfx3d1 31>;
qcom,gpu-pwrlevels {
compatible = "qcom,gpu-pwrlevels";
qcom,gpu-pwrlevel@0 {
qcom,gpu-freq = <450000000>;
operating-points-v2 = <&gpu_opp_table>;
gpu_opp_table: opp-table {
compatible = "operating-points-v2";
opp-320000000 {
opp-hz = /bits/ 64 <450000000>;
};
qcom,gpu-pwrlevel@1 {
qcom,gpu-freq = <27000000>;
opp-27000000 {
opp-hz = /bits/ 64 <27000000>;
};
};
};
......
......@@ -5,7 +5,7 @@
/ {
model = "Qualcomm Technologies, Inc. IPQ4019/AP-DK04.1-C1";
compatible = "qcom,ipq4019-dk04.1-c1";
compatible = "qcom,ipq4019-dk04.1-c1", "qcom,ipq4019";
soc {
dma@7984000 {
......
......@@ -5,5 +5,5 @@
/ {
model = "Qualcomm Technologies, Inc. IPQ4019/AP-DK04.1-C3";
compatible = "qcom,ipq4019-ap-dk04.1-c3";
compatible = "qcom,ipq4019-ap-dk04.1-c3", "qcom,ipq4019";
};
......@@ -5,7 +5,7 @@
/ {
model = "Qualcomm Technologies, Inc. IPQ4019/AP-DK07.1-C1";
compatible = "qcom,ipq4019-ap-dk07.1-c1";
compatible = "qcom,ipq4019-ap-dk07.1-c1", "qcom,ipq4019";
soc {
pci@40000000 {
......
......@@ -5,7 +5,7 @@
/ {
model = "Qualcomm Technologies, Inc. IPQ4019/AP-DK07.1-C2";
compatible = "qcom,ipq4019-ap-dk07.1-c2";
compatible = "qcom,ipq4019-ap-dk07.1-c2", "qcom,ipq4019";
soc {
pinctrl@1000000 {
......
......@@ -3,7 +3,7 @@
/ {
model = "Qualcomm Technologies, Inc. IPQ8064/AP-148";
compatible = "qcom,ipq8064-ap148";
compatible = "qcom,ipq8064-ap148", "qcom,ipq8064";
soc {
pinmux@800000 {
......
......@@ -7,6 +7,7 @@
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/clock/qcom,gcc-msm8974.h>
#include <dt-bindings/gpio/gpio.h>
/ {
#address-cells = <1>;
......@@ -20,6 +21,70 @@ memory@0 {
reg = <0x0 0x0>;
};
clocks {
xo_board: xo_board {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <19200000>;
};
sleep_clk: sleep_clk {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <32768>;
};
};
firmware {
scm {
compatible = "qcom,scm-msm8226", "qcom,scm";
clocks = <&gcc GCC_CE1_CLK>, <&gcc GCC_CE1_AXI_CLK>, <&gcc GCC_CE1_AHB_CLK>;
clock-names = "core", "bus", "iface";
};
};
tcsr_mutex: hwlock {
compatible = "qcom,tcsr-mutex";
syscon = <&tcsr_mutex_block 0 0x80>;
#hwlock-cells = <1>;
};
reserved-memory {
#address-cells = <1>;
#size-cells = <1>;
ranges;
smem_region: smem@3000000 {
reg = <0x3000000 0x100000>;
no-map;
};
};
smd {
compatible = "qcom,smd";
rpm {
interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
qcom,ipc = <&apcs 8 0>;
qcom,smd-edge = <15>;
rpm_requests: rpm-requests {
compatible = "qcom,rpm-msm8226";
qcom,smd-channels = "rpm_requests";
};
};
};
smem {
compatible = "qcom,smem";
memory-region = <&smem_region>;
qcom,rpm-msg-ram = <&rpm_msg_ram>;
hwlocks = <&tcsr_mutex 3>;
};
soc: soc {
compatible = "simple-bus";
#address-cells = <1>;
......@@ -34,6 +99,136 @@ intc: interrupt-controller@f9000000 {
#interrupt-cells = <3>;
};
apcs: syscon@f9011000 {
compatible = "syscon";
reg = <0xf9011000 0x1000>;
};
sdhc_1: sdhci@f9824900 {
compatible = "qcom,msm8226-sdhci", "qcom,sdhci-msm-v4";
reg = <0xf9824900 0x11c>, <0xf9824000 0x800>;
reg-names = "hc_mem", "core_mem";
interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "hc_irq", "pwr_irq";
clocks = <&gcc GCC_SDCC1_APPS_CLK>,
<&gcc GCC_SDCC1_AHB_CLK>,
<&xo_board>;
clock-names = "core", "iface", "xo";
status = "disabled";
};
sdhc_2: sdhci@f98a4900 {
compatible = "qcom,msm8226-sdhci", "qcom,sdhci-msm-v4";
reg = <0xf98a4900 0x11c>, <0xf98a4000 0x800>;
reg-names = "hc_mem", "core_mem";
interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "hc_irq", "pwr_irq";
clocks = <&gcc GCC_SDCC2_APPS_CLK>,
<&gcc GCC_SDCC2_AHB_CLK>,
<&xo_board>;
clock-names = "core", "iface", "xo";
status = "disabled";
};
sdhc_3: sdhci@f9864900 {
compatible = "qcom,msm8226-sdhci", "qcom,sdhci-msm-v4";
reg = <0xf9864900 0x11c>, <0xf9864000 0x800>;
reg-names = "hc_mem", "core_mem";
interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "hc_irq", "pwr_irq";
clocks = <&gcc GCC_SDCC3_APPS_CLK>,
<&gcc GCC_SDCC3_AHB_CLK>,
<&xo_board>;
clock-names = "core", "iface", "xo";
status = "disabled";
};
blsp1_uart3: serial@f991f000 {
compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
reg = <0xf991f000 0x1000>;
interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&gcc GCC_BLSP1_UART3_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
clock-names = "core", "iface";
status = "disabled";
};
blsp1_uart4: serial@f9920000 {
compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
reg = <0xf9920000 0x1000>;
interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&gcc GCC_BLSP1_UART4_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
clock-names = "core", "iface";
status = "disabled";
};
blsp1_i2c1: i2c@f9923000 {
status = "disabled";
compatible = "qcom,i2c-qup-v2.1.1";
reg = <0xf9923000 0x1000>;
interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
clock-names = "core", "iface";
pinctrl-names = "default";
pinctrl-0 = <&blsp1_i2c1_pins>;
#address-cells = <1>;
#size-cells = <0>;
};
blsp1_i2c2: i2c@f9924000 {
status = "disabled";
compatible = "qcom,i2c-qup-v2.1.1";
reg = <0xf9924000 0x1000>;
interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
clock-names = "core", "iface";
pinctrl-names = "default";
pinctrl-0 = <&blsp1_i2c2_pins>;
#address-cells = <1>;
#size-cells = <0>;
};
blsp1_i2c3: i2c@f9925000 {
status = "disabled";
compatible = "qcom,i2c-qup-v2.1.1";
reg = <0xf9925000 0x1000>;
interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
clock-names = "core", "iface";
pinctrl-names = "default";
pinctrl-0 = <&blsp1_i2c3_pins>;
#address-cells = <1>;
#size-cells = <0>;
};
blsp1_i2c4: i2c@f9926000 {
status = "disabled";
compatible = "qcom,i2c-qup-v2.1.1";
reg = <0xf9926000 0x1000>;
interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
clock-names = "core", "iface";
pinctrl-names = "default";
pinctrl-0 = <&blsp1_i2c4_pins>;
#address-cells = <1>;
#size-cells = <0>;
};
blsp1_i2c5: i2c@f9927000 {
status = "disabled";
compatible = "qcom,i2c-qup-v2.1.1";
reg = <0xf9927000 0x1000>;
interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&gcc GCC_BLSP1_QUP5_I2C_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
clock-names = "core", "iface";
pinctrl-names = "default";
pinctrl-0 = <&blsp1_i2c5_pins>;
#address-cells = <1>;
#size-cells = <0>;
};
gcc: clock-controller@fc400000 {
compatible = "qcom,gcc-msm8226";
reg = <0xfc400000 0x4000>;
......@@ -51,15 +246,41 @@ tlmm: pinctrl@fd510000 {
interrupt-controller;
#interrupt-cells = <2>;
interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
blsp1_i2c1_pins: blsp1-i2c1 {
pins = "gpio2", "gpio3";
function = "blsp_i2c1";
drive-strength = <2>;
bias-disable;
};
blsp1_uart3: serial@f991f000 {
compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
reg = <0xf991f000 0x1000>;
interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&gcc GCC_BLSP1_UART3_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
clock-names = "core", "iface";
status = "disabled";
blsp1_i2c2_pins: blsp1-i2c2 {
pins = "gpio6", "gpio7";
function = "blsp_i2c2";
drive-strength = <2>;
bias-disable;
};
blsp1_i2c3_pins: blsp1-i2c3 {
pins = "gpio10", "gpio11";
function = "blsp_i2c3";
drive-strength = <2>;
bias-disable;
};
blsp1_i2c4_pins: blsp1-i2c4 {
pins = "gpio14", "gpio15";
function = "blsp_i2c4";
drive-strength = <2>;
bias-disable;
};
blsp1_i2c5_pins: blsp1-i2c5 {
pins = "gpio18", "gpio19";
function = "blsp_i2c5";
drive-strength = <2>;
bias-disable;
};
};
restart@fc4ab000 {
......@@ -67,6 +288,22 @@ restart@fc4ab000 {
reg = <0xfc4ab000 0x4>;
};
spmi_bus: spmi@fc4cf000 {
compatible = "qcom,spmi-pmic-arb";
reg-names = "core", "intr", "cnfg";
reg = <0xfc4cf000 0x1000>,
<0xfc4cb000 0x1000>,
<0xfc4ca000 0x1000>;
interrupt-names = "periph_irq";
interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
qcom,ee = <0>;
qcom,channel = <0>;
#address-cells = <2>;
#size-cells = <0>;
interrupt-controller;
#interrupt-cells = <4>;
};
rng@f9bff000 {
compatible = "qcom,prng";
reg = <0xf9bff000 0x200>;
......@@ -131,6 +368,16 @@ frame@f9028000 {
status = "disabled";
};
};
rpm_msg_ram: memory@fc428000 {
compatible = "qcom,rpm-msg-ram";
reg = <0xfc428000 0x4000>;
};
tcsr_mutex_block: syscon@fd484000 {
compatible = "syscon";
reg = <0xfd484000 0x2000>;
};
};
timer {
......
......@@ -1589,8 +1589,8 @@ dsi_phy0: dsi-phy@fd922a00 {
#phy-cells = <0>;
qcom,dsi-phy-index = <0>;
clocks = <&mmcc MDSS_AHB_CLK>;
clock-names = "iface";
clocks = <&mmcc MDSS_AHB_CLK>, <&xo_board>;
clock-names = "iface", "ref";
};
};
......
// SPDX-License-Identifier: BSD-3-Clause
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/spmi/spmi.h>
&spmi_bus {
pm8226_0: pm8226@0 {
compatible = "qcom,pm8226", "qcom,spmi-pmic";
reg = <0x0 SPMI_USID>;
#address-cells = <1>;
#size-cells = <0>;
pwrkey@800 {
compatible = "qcom,pm8941-pwrkey";
reg = <0x800>;
interrupts = <0x0 0x8 0 IRQ_TYPE_EDGE_BOTH>;
debounce = <15625>;
bias-pull-up;
};
};
pm8226_1: pm8226@1 {
compatible = "qcom,pm8226", "qcom,spmi-pmic";
reg = <0x1 SPMI_USID>;
#address-cells = <1>;
#size-cells = <0>;
};
};
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment