Qualcomm DT updates for 5.11

This adds support for SD card, WiFi, LED, touchscreeni, touchkey and
 fuel gauge to the Samsung Galaxy S5. Nexus 5 also gains fuel gauge
 support.
 
 Finally IPQ6016 gains support for the QPIC NAND controller.
 -----BEGIN PGP SIGNATURE-----
 
 iQJPBAABCAA5FiEEBd4DzF816k8JZtUlCx85Pw2ZrcUFAl/FP/0bHGJqb3JuLmFu
 ZGVyc3NvbkBsaW5hcm8ub3JnAAoJEAsfOT8Nma3FGD0P/izpx+KKodHihjPWuKXk
 cPWMwkbARIB2XfkrsATT02jFBy579k4G2XETWlZwk4697gXXIf26TmJMOmlivWk4
 7ESdmOh4oplJyKcIr0TED/lpRkEx5it5jOhVQMTqOaQOJ5R95x2aoXq3CZnwfZI2
 EPSq+sfpws72PhlalDZIKPpwSbfu4XtSBErecsbJOShQJ1nvZgYC/++PLR7LFNM6
 t701MlWljlY7twYIlfeeyrcTZ8oI/j8s1Zt8AkINAwIbxv2x1m1Grf8k05a8Kez2
 oRZQEdC03lvck17YOAXw3GxWAnzFqSQ8OSyldg3eJZA2Ze3wLfG0Agq5zq55fT1X
 1wHeE9+ygD7gxXgo6HVCaTGttuP47rDWFT/6Lj9Qf+qZnYKDhThrFALxmxgZyFZV
 Y3QFrk021RyfOTaWIyVZ4PmJTQu/PoTY7IAKUM7GXf2obgxx5stjSC++r3Hue1uX
 EDAb+5hhV7weVu9XaOakXt6YufPrChZl9G8NcK27bnvUIy2LQsB8n7ah33AlMsh7
 cPI/JyDcwkKDtf+JXSZ5W0oX5y0zDC8MWrF0D0TFEfykYyvwsVYX2u0U0ntqMBnz
 ZpFVE9gPaY61+AVOsJf2TV25wuLa5GfNCibnKHqeWyYJaR4jJX3Sux8gkYK9GF3c
 vOqRnWSM1apriVDN+JVFS+WF
 =J3Nk
 -----END PGP SIGNATURE-----

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

Qualcomm DT updates for 5.11

This adds support for SD card, WiFi, LED, touchscreeni, touchkey and
fuel gauge to the Samsung Galaxy S5. Nexus 5 also gains fuel gauge
support.

Finally IPQ6016 gains support for the QPIC NAND controller.

* tag 'qcom-dts-for-5.11' of git://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux:
  arm64: dts: ipq6018: Add the QPIC peripheral nodes
  ARM: dts: qcom-pma8084: Drop incorrect use of io-channel-ranges
  ARM: dts: qcom: msm8974-lge-nexus5: Add fuel gauge
  ARM: dts: qcom: msm8974-klte: Add fuel gauge
  ARM: dts: qcom: msm8974-klte: Add support for SD card
  ARM: dts: qcom: msm8974-klte: Add support for wifi
  ARM: dts: qcom: msm8974-klte: Add gpio expander chip
  ARM: dts: qcom: msm8974-klte: Add support for led
  ARM: dts: qcom: msm8974-klte: Add support for touchscreen
  ARM: dts: qcom: msm8974-klte: Add support for touchkey
  ARM: dts: qcom: msm8974-klte: Merge pinctrl nodes

Link: https://lore.kernel.org/r/20201130190148.345302-1-bjorn.andersson@linaro.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
Arnd Bergmann 2020-12-08 23:51:51 +01:00
commit 6ce23595b5
5 changed files with 413 additions and 10 deletions

View File

@ -566,6 +566,22 @@ charger: bq24192@6b {
usb_otg_vbus: usb-otg-vbus { };
};
fuelgauge: max17048@36 {
compatible = "maxim,max17048";
reg = <0x36>;
maxim,double-soc;
maxim,rcomp = /bits/ 8 <0x4d>;
interrupt-parent = <&msmgpio>;
interrupts = <9 IRQ_TYPE_EDGE_FALLING>;
pinctrl-names = "default";
pinctrl-0 = <&fuelgauge_pin>;
maxim,alert-low-soc-level = <2>;
};
};
i2c@f9924000 {
@ -706,6 +722,15 @@ gpio_keys_pin_a: gpio-keys-active {
power-source = <PM8941_GPIO_S3>;
};
fuelgauge_pin: fuelgauge-int {
pins = "gpio9";
function = "normal";
bias-disable;
input-enable;
power-source = <PM8941_GPIO_S3>;
};
wlan_sleep_clk_pin: wl-sleep-clk {
pins = "gpio16";
function = "func2";

View File

@ -4,6 +4,7 @@
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
#include <dt-bindings/leds/common.h>
/ {
model = "Samsung Galaxy S5";
@ -11,6 +12,8 @@ / {
aliases {
serial0 = &blsp1_uart1;
sdhc1 = &sdhc_1; /* SDC1 eMMC slot */
sdhc2 = &sdhc_2; /* SDC2 SD card slot */
};
chosen {
@ -145,7 +148,7 @@ pma8084_l18: l18 {
};
pma8084_l19: l19 {
regulator-min-microvolt = <2900000>;
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
@ -160,6 +163,9 @@ pma8084_l20: l20 {
pma8084_l21: l21 {
regulator-min-microvolt = <2950000>;
regulator-max-microvolt = <2950000>;
regulator-allow-set-load;
regulator-system-load = <200000>;
};
pma8084_l22: l22 {
@ -203,6 +209,95 @@ pma8084_l27: l27 {
};
};
i2c-gpio-touchkey {
compatible = "i2c-gpio";
#address-cells = <1>;
#size-cells = <0>;
sda-gpios = <&msmgpio 95 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
scl-gpios = <&msmgpio 96 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
pinctrl-names = "default";
pinctrl-0 = <&i2c_touchkey_pins>;
touchkey@20 {
compatible = "cypress,tm2-touchkey";
reg = <0x20>;
interrupt-parent = <&pma8084_gpios>;
interrupts = <6 IRQ_TYPE_EDGE_FALLING>;
pinctrl-names = "default";
pinctrl-0 = <&touchkey_pin>;
vcc-supply = <&max77826_ldo15>;
vdd-supply = <&pma8084_l19>;
linux,keycodes = <KEY_APPSELECT KEY_BACK>;
};
};
i2c-gpio-led {
compatible = "i2c-gpio";
#address-cells = <1>;
#size-cells = <0>;
scl-gpios = <&msmgpio 121 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
sda-gpios = <&msmgpio 120 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
pinctrl-names = "default";
pinctrl-0 = <&i2c_led_gpioex_pins>;
i2c-gpio,delay-us = <2>;
gpio_expander: gpio@20 {
compatible = "nxp,pcal6416";
reg = <0x20>;
gpio-controller;
#gpio-cells = <2>;
vcc-supply = <&pma8084_s4>;
pinctrl-names = "default";
pinctrl-0 = <&gpioex_pin>;
reset-gpios = <&msmgpio 145 GPIO_ACTIVE_LOW>;
};
led-controller@30 {
compatible = "panasonic,an30259a";
reg = <0x30>;
#address-cells = <1>;
#size-cells = <0>;
led@1 {
reg = <1>;
function = LED_FUNCTION_STATUS;
color = <LED_COLOR_ID_RED>;
};
led@2 {
reg = <2>;
function = LED_FUNCTION_STATUS;
color = <LED_COLOR_ID_GREEN>;
};
led@3 {
reg = <3>;
function = LED_FUNCTION_STATUS;
color = <LED_COLOR_ID_BLUE>;
};
};
};
vreg_wlan: wlan-regulator {
compatible = "regulator-fixed";
regulator-name = "wl-reg";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
gpio = <&gpio_expander 8 GPIO_ACTIVE_HIGH>;
enable-active-high;
};
/delete-node/ vreg-boost;
};
@ -258,9 +353,109 @@ cmd-data {
bias-pull-up;
};
};
sdhc2_pin_a: sdhc2-pin-active {
clk-cmd-data {
pins = "gpio35", "gpio36", "gpio37", "gpio38",
"gpio39", "gpio40";
function = "sdc3";
drive-strength = <8>;
bias-disable;
};
};
sdhc2_cd_pin: sdhc2-cd {
pins = "gpio62";
function = "gpio";
drive-strength = <2>;
bias-disable;
};
sdhc3_pin_a: sdhc3-pin-active {
clk {
pins = "sdc2_clk";
drive-strength = <6>;
bias-disable;
};
cmd-data {
pins = "sdc2_cmd", "sdc2_data";
drive-strength = <6>;
bias-pull-up;
};
};
i2c2_pins: i2c2 {
mux {
pins = "gpio6", "gpio7";
function = "blsp_i2c2";
drive-strength = <2>;
bias-disable;
};
};
i2c6_pins: i2c6 {
mux {
pins = "gpio29", "gpio30";
function = "blsp_i2c6";
drive-strength = <2>;
bias-disable;
};
};
i2c12_pins: i2c12 {
mux {
pins = "gpio87", "gpio88";
function = "blsp_i2c12";
drive-strength = <2>;
bias-disable;
};
};
i2c_touchkey_pins: i2c-touchkey {
mux {
pins = "gpio95", "gpio96";
function = "gpio";
input-enable;
bias-pull-up;
};
};
i2c_led_gpioex_pins: i2c-led-gpioex {
mux {
pins = "gpio120", "gpio121";
function = "gpio";
input-enable;
bias-pull-down;
};
};
gpioex_pin: gpioex {
res {
pins = "gpio145";
function = "gpio";
bias-pull-up;
drive-strength = <2>;
};
};
wifi_pin: wifi {
int {
pins = "gpio92";
function = "gpio";
input-enable;
bias-pull-down;
};
};
};
sdhci@f9824900 {
sdhc_1: sdhci@f9824900 {
status = "ok";
vmmc-supply = <&pma8084_l20>;
@ -273,6 +468,55 @@ sdhci@f9824900 {
pinctrl-0 = <&sdhc1_pin_a>;
};
sdhc_2: sdhci@f9864900 {
status = "ok";
max-frequency = <100000000>;
vmmc-supply = <&pma8084_l21>;
vqmmc-supply = <&pma8084_l13>;
bus-width = <4>;
/* cd-gpio is intentionally disabled. If enabled, an SD card
* present during boot is not initialized correctly. Without
* cd-gpios the driver resorts to polling, so hotplug works.
*/
pinctrl-names = "default";
pinctrl-0 = <&sdhc2_pin_a /* &sdhc2_cd_pin */>;
// cd-gpios = <&msmgpio 62 GPIO_ACTIVE_LOW>;
};
sdhci@f98a4900 {
status = "okay";
#address-cells = <1>;
#size-cells = <0>;
max-frequency = <100000000>;
pinctrl-names = "default";
pinctrl-0 = <&sdhc3_pin_a>;
vmmc-supply = <&vreg_wlan>;
vqmmc-supply = <&pma8084_s4>;
bus-width = <4>;
non-removable;
wifi@1 {
reg = <1>;
compatible = "brcm,bcm4329-fmac";
interrupt-parent = <&msmgpio>;
interrupts = <92 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "host-wake";
pinctrl-names = "default";
pinctrl-0 = <&wlan_sleep_clk_pin &wifi_pin>;
};
};
usb@f9a55000 {
status = "ok";
@ -298,14 +542,38 @@ phy@a {
};
};
pinctrl@fd510000 {
i2c6_pins: i2c6 {
mux {
pins = "gpio29", "gpio30";
function = "blsp_i2c6";
i2c@f9924000 {
status = "okay";
drive-strength = <2>;
bias-disable;
pinctrl-names = "default";
pinctrl-0 = <&i2c2_pins>;
touchscreen@20 {
compatible = "syna,rmi4-i2c";
reg = <0x20>;
interrupt-parent = <&pma8084_gpios>;
interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
vdd-supply = <&max77826_ldo13>;
vio-supply = <&pma8084_lvs2>;
pinctrl-names = "default";
pinctrl-0 = <&touch_pin>;
syna,startup-delay-ms = <100>;
#address-cells = <1>;
#size-cells = <0>;
rmi4-f01@1 {
reg = <0x1>;
syna,nosleep-mode = <1>;
};
rmi4-f12@12 {
reg = <0x12>;
syna,sensor-type = <1>;
};
};
};
@ -408,6 +676,27 @@ max77826_buckboost: BUCKBOOST {
};
};
};
i2c@f9968000 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&i2c12_pins>;
fuelgauge@36 {
compatible = "maxim,max17048";
reg = <0x36>;
maxim,double-soc;
maxim,rcomp = /bits/ 8 <0x56>;
interrupt-parent = <&pma8084_gpios>;
interrupts = <21 IRQ_TYPE_EDGE_FALLING>;
pinctrl-names = "default";
pinctrl-0 = <&fuelgauge_pin>;
};
};
};
&spmi_bus {
@ -420,6 +709,39 @@ gpio_keys_pin_a: gpio-keys-active {
bias-pull-up;
power-source = <PMA8084_GPIO_S4>;
};
touchkey_pin: touchkey-int-pin {
pins = "gpio6";
function = "normal";
bias-disable;
input-enable;
power-source = <PMA8084_GPIO_S4>;
};
touch_pin: touchscreen-int-pin {
pins = "gpio8";
function = "normal";
bias-disable;
input-enable;
power-source = <PMA8084_GPIO_S4>;
};
wlan_sleep_clk_pin: wlan-sleep-clk-pin {
pins = "gpio16";
function = "func2";
output-high;
power-source = <PMA8084_GPIO_S4>;
qcom,drive-strength = <PMIC_GPIO_STRENGTH_HIGH>;
};
fuelgauge_pin: fuelgauge-int-pin {
pins = "gpio21";
function = "normal";
bias-disable;
input-enable;
power-source = <PMA8084_GPIO_S4>;
};
};
};
};

View File

@ -68,7 +68,6 @@ pma8084_vadc: vadc@3100 {
#address-cells = <1>;
#size-cells = <0>;
#io-channel-cells = <1>;
io-channel-ranges;
die_temp {
reg = <VADC_DIE_TEMP>;

View File

@ -62,3 +62,19 @@ spi_0_pins: spi-0-pins {
bias-pull-down;
};
};
&qpic_bam {
status = "okay";
};
&qpic_nand {
status = "okay";
nand@0 {
reg = <0>;
nand-ecc-strength = <4>;
nand-ecc-step-size = <512>;
nand-bus-width = <8>;
};
};

View File

@ -231,6 +231,17 @@ serial_3_pins: serial3-pinmux {
drive-strength = <8>;
bias-pull-down;
};
qpic_pins: qpic-pins {
pins = "gpio1", "gpio3", "gpio4",
"gpio5", "gpio6", "gpio7",
"gpio8", "gpio10", "gpio11",
"gpio12", "gpio13", "gpio14",
"gpio15", "gpio17";
function = "qpic_pad";
drive-strength = <8>;
bias-disable;
};
};
gcc: gcc@1800000 {
@ -332,6 +343,36 @@ i2c_1: i2c@78b7000 { /* BLSP1 QUP2 */
status = "disabled";
};
qpic_bam: dma-controller@7984000 {
compatible = "qcom,bam-v1.7.0";
reg = <0x0 0x07984000 0x0 0x1a000>;
interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&gcc GCC_QPIC_CLK>,
<&gcc GCC_QPIC_AHB_CLK>;
clock-names = "iface_clk", "bam_clk";
#dma-cells = <1>;
qcom,ee = <0>;
status = "disabled";
};
qpic_nand: nand@79b0000 {
compatible = "qcom,ipq6018-nand";
reg = <0x0 0x079b0000 0x0 0x10000>;
#address-cells = <1>;
#size-cells = <0>;
clocks = <&gcc GCC_QPIC_CLK>,
<&gcc GCC_QPIC_AHB_CLK>;
clock-names = "core", "aon";
dmas = <&qpic_bam 0>,
<&qpic_bam 1>,
<&qpic_bam 2>;
dma-names = "tx", "rx", "cmd";
pinctrl-0 = <&qpic_pins>;
pinctrl-names = "default";
status = "disabled";
};
intc: interrupt-controller@b000000 {
compatible = "qcom,msm-qgic2";
interrupt-controller;