]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
ARM: dts: qcom: msm8974: Add Sony Xperia Z2 Tablet
authorBjorn Andersson <bjorn.andersson@sonymobile.com>
Wed, 4 Oct 2017 18:58:54 +0000 (11:58 -0700)
committerAndy Gross <andy.gross@linaro.org>
Wed, 11 Oct 2017 20:52:35 +0000 (15:52 -0500)
This adds a basic DTS file for the Sony Xperia Z2 Tablet, containing
definitions for regulators, eMMC/SD-card, USB, WiFi, Touchscreen,
charger, backlight, coincell and buttons.

Signed-off-by: Bjorn Andersson <bjorn.andersson@sonymobile.com>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Andy Gross <andy.gross@linaro.org>
arch/arm/boot/dts/Makefile
arch/arm/boot/dts/qcom-msm8974-sony-xperia-castor.dts [new file with mode: 0644]
arch/arm/boot/dts/qcom-msm8974.dtsi
arch/arm/boot/dts/qcom-msm8974pro.dtsi [new file with mode: 0644]

index faf46abaa4a2773721a0c30b012a2ae52308daae..4da1b19178ec89aed1eaae9c02bb82fd58f76f5e 100644 (file)
@@ -701,6 +701,7 @@ dtb-$(CONFIG_ARCH_QCOM) += \
        qcom-msm8660-surf.dtb \
        qcom-msm8960-cdp.dtb \
        qcom-msm8974-lge-nexus5-hammerhead.dtb \
+       qcom-msm8974-sony-xperia-castor.dtb \
        qcom-msm8974-sony-xperia-honami.dtb \
        qcom-mdm9615-wp8548-mangoh-green.dtb
 dtb-$(CONFIG_ARCH_REALVIEW) += \
diff --git a/arch/arm/boot/dts/qcom-msm8974-sony-xperia-castor.dts b/arch/arm/boot/dts/qcom-msm8974-sony-xperia-castor.dts
new file mode 100644 (file)
index 0000000..e87f2c9
--- /dev/null
@@ -0,0 +1,641 @@
+#include "qcom-msm8974pro.dtsi"
+#include "qcom-pm8841.dtsi"
+#include "qcom-pm8941.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
+
+/ {
+       model = "Sony Xperia Z2 Tablet";
+       compatible = "sony,xperia-castor", "qcom,msm8974";
+
+       aliases {
+               serial0 = &blsp1_uart2;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               input-name = "gpio-keys";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&gpio_keys_pin_a>;
+
+               volume-down {
+                       label = "volume_down";
+                       gpios = <&pm8941_gpios 2 GPIO_ACTIVE_LOW>;
+                       linux,input-type = <1>;
+                       linux,code = <KEY_VOLUMEDOWN>;
+               };
+
+               camera-snapshot {
+                       label = "camera_snapshot";
+                       gpios = <&pm8941_gpios 3 GPIO_ACTIVE_LOW>;
+                       linux,input-type = <1>;
+                       linux,code = <KEY_CAMERA>;
+               };
+
+               camera-focus {
+                       label = "camera_focus";
+                       gpios = <&pm8941_gpios 4 GPIO_ACTIVE_LOW>;
+                       linux,input-type = <1>;
+                       linux,code = <KEY_CAMERA_FOCUS>;
+               };
+
+               volume-up {
+                       label = "volume_up";
+                       gpios = <&pm8941_gpios 5 GPIO_ACTIVE_LOW>;
+                       linux,input-type = <1>;
+                       linux,code = <KEY_VOLUMEUP>;
+               };
+       };
+
+       smd {
+               rpm {
+                       rpm_requests {
+                               pm8941-regulators {
+                                       vdd_l1_l3-supply = <&pm8941_s1>;
+                                       vdd_l2_lvs1_2_3-supply = <&pm8941_s3>;
+                                       vdd_l4_l11-supply = <&pm8941_s1>;
+                                       vdd_l5_l7-supply = <&pm8941_s2>;
+                                       vdd_l6_l12_l14_l15-supply = <&pm8941_s2>;
+                                       vdd_l9_l10_l17_l22-supply = <&vreg_boost>;
+                                       vdd_l13_l20_l23_l24-supply = <&vreg_boost>;
+                                       vdd_l21-supply = <&vreg_boost>;
+
+                                       s1 {
+                                               regulator-min-microvolt = <1300000>;
+                                               regulator-max-microvolt = <1300000>;
+                                               regulator-always-on;
+                                               regulator-boot-on;
+                                       };
+
+                                       s2 {
+                                               regulator-min-microvolt = <2150000>;
+                                               regulator-max-microvolt = <2150000>;
+                                               regulator-boot-on;
+                                       };
+
+                                       s3 {
+                                               regulator-min-microvolt = <1800000>;
+                                               regulator-max-microvolt = <1800000>;
+                                               regulator-always-on;
+                                               regulator-boot-on;
+
+                                               regulator-system-load = <154000>;
+                                       };
+
+                                       s4 {
+                                               regulator-min-microvolt = <5000000>;
+                                               regulator-max-microvolt = <5000000>;
+                                       };
+
+                                       l1 {
+                                               regulator-min-microvolt = <1225000>;
+                                               regulator-max-microvolt = <1225000>;
+
+                                               regulator-always-on;
+                                               regulator-boot-on;
+                                       };
+
+                                       l2 {
+                                               regulator-min-microvolt = <1200000>;
+                                               regulator-max-microvolt = <1200000>;
+                                       };
+
+                                       l3 {
+                                               regulator-min-microvolt = <1200000>;
+                                               regulator-max-microvolt = <1200000>;
+                                       };
+
+                                       l4 {
+                                               regulator-min-microvolt = <1225000>;
+                                               regulator-max-microvolt = <1225000>;
+                                       };
+
+                                       l5 {
+                                               regulator-min-microvolt = <1800000>;
+                                               regulator-max-microvolt = <1800000>;
+                                       };
+
+                                       l6 {
+                                               regulator-min-microvolt = <1800000>;
+                                               regulator-max-microvolt = <1800000>;
+
+                                               regulator-boot-on;
+                                       };
+
+                                       l7 {
+                                               regulator-min-microvolt = <1800000>;
+                                               regulator-max-microvolt = <1800000>;
+
+                                               regulator-boot-on;
+                                       };
+
+                                       l8 {
+                                               regulator-min-microvolt = <1800000>;
+                                               regulator-max-microvolt = <1800000>;
+                                       };
+
+                                       l9 {
+                                               regulator-min-microvolt = <1800000>;
+                                               regulator-max-microvolt = <2950000>;
+                                       };
+
+                                       l11 {
+                                               regulator-min-microvolt = <1300000>;
+                                               regulator-max-microvolt = <1350000>;
+                                       };
+
+                                       l12 {
+                                               regulator-min-microvolt = <1800000>;
+                                               regulator-max-microvolt = <1800000>;
+
+                                               regulator-always-on;
+                                               regulator-boot-on;
+                                       };
+
+                                       l13 {
+                                               regulator-min-microvolt = <1800000>;
+                                               regulator-max-microvolt = <2950000>;
+
+                                               regulator-boot-on;
+                                       };
+
+                                       l14 {
+                                               regulator-min-microvolt = <1800000>;
+                                               regulator-max-microvolt = <1800000>;
+                                       };
+
+                                       l15 {
+                                               regulator-min-microvolt = <2050000>;
+                                               regulator-max-microvolt = <2050000>;
+                                       };
+
+                                       l16 {
+                                               regulator-min-microvolt = <2700000>;
+                                               regulator-max-microvolt = <2700000>;
+                                       };
+
+                                       l17 {
+                                               regulator-min-microvolt = <2700000>;
+                                               regulator-max-microvolt = <2700000>;
+                                       };
+
+                                       l18 {
+                                               regulator-min-microvolt = <2850000>;
+                                               regulator-max-microvolt = <2850000>;
+                                       };
+
+                                       l19 {
+                                               regulator-min-microvolt = <2850000>;
+                                               regulator-max-microvolt = <2850000>;
+                                       };
+
+                                       l20 {
+                                               regulator-min-microvolt = <2950000>;
+                                               regulator-max-microvolt = <2950000>;
+
+                                               regulator-allow-set-load;
+                                               regulator-boot-on;
+                                               regulator-allow-set-load;
+                                               regulator-system-load = <500000>;
+                                       };
+
+                                       l21 {
+                                               regulator-min-microvolt = <2950000>;
+                                               regulator-max-microvolt = <2950000>;
+
+                                               regulator-boot-on;
+                                       };
+
+                                       l22 {
+                                               regulator-min-microvolt = <3000000>;
+                                               regulator-max-microvolt = <3000000>;
+                                       };
+
+                                       l23 {
+                                               regulator-min-microvolt = <2800000>;
+                                               regulator-max-microvolt = <2800000>;
+                                       };
+
+                                       l24 {
+                                               regulator-min-microvolt = <3075000>;
+                                               regulator-max-microvolt = <3075000>;
+
+                                               regulator-boot-on;
+                                       };
+                               };
+                       };
+               };
+       };
+
+       vreg_bl_vddio: lcd-backlight-vddio {
+               compatible = "regulator-fixed";
+               regulator-name = "vreg_bl_vddio";
+               regulator-min-microvolt = <3150000>;
+               regulator-max-microvolt = <3150000>;
+
+               gpio = <&msmgpio 69 0>;
+               enable-active-high;
+
+               vin-supply = <&pm8941_s3>;
+               startup-delay-us = <70000>;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&lcd_backlight_en_pin_a>;
+       };
+
+       vreg_vsp: lcd-dcdc-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vreg_vsp";
+               regulator-min-microvolt = <5600000>;
+               regulator-max-microvolt = <5600000>;
+
+               gpio = <&pm8941_gpios 20 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&lcd_dcdc_en_pin_a>;
+       };
+
+       vreg_wlan: wlan-regulator {
+               compatible = "regulator-fixed";
+
+               regulator-name = "wl-reg";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+
+               gpio = <&pm8941_gpios 18 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&wlan_regulator_pin>;
+       };
+};
+
+&soc {
+       sdhci@f9824900 {
+               status = "ok";
+
+               vmmc-supply = <&pm8941_l20>;
+               vqmmc-supply = <&pm8941_s3>;
+
+               bus-width = <8>;
+               non-removable;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&sdhc1_pin_a>;
+       };
+
+       sdhci@f9864900 {
+               status = "ok";
+
+               max-frequency = <100000000>;
+               non-removable;
+               vmmc-supply = <&vreg_wlan>;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&sdhc3_pin_a>;
+
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               bcrmf@1 {
+                       compatible = "brcm,bcm4339-fmac", "brcm,bcm4329-fmac";
+                       reg = <1>;
+
+                       brcm,drive-strength = <10>;
+
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&wlan_sleep_clk_pin>;
+               };
+       };
+
+       sdhci@f98a4900 {
+               status = "ok";
+
+               bus-width = <4>;
+
+               vmmc-supply = <&pm8941_l21>;
+               vqmmc-supply = <&pm8941_l13>;
+
+               cd-gpios = <&msmgpio 62 GPIO_ACTIVE_LOW>;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&sdhc2_pin_a>, <&sdhc2_cd_pin_a>;
+       };
+
+       serial@f991e000 {
+               status = "ok";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&blsp1_uart2_pin_a>;
+       };
+
+       usb@f9a55000 {
+               status = "ok";
+
+               phys = <&usb_hs1_phy>;
+               phy-select = <&tcsr 0xb000 0>;
+               extcon = <&smbb>, <&usb_id>;
+               vbus-supply = <&chg_otg>;
+
+               hnp-disable;
+               srp-disable;
+               adp-disable;
+
+               ulpi {
+                       phy@a {
+                               status = "ok";
+
+                               v1p8-supply = <&pm8941_l6>;
+                               v3p3-supply = <&pm8941_l24>;
+
+                               extcon = <&smbb>;
+                               qcom,init-seq = /bits/ 8 <0x1 0x64>;
+                       };
+               };
+       };
+
+       pinctrl@fd510000 {
+               blsp1_uart2_pin_a: blsp1-uart2-pin-active {
+                       rx {
+                               pins = "gpio5";
+                               function = "blsp_uart2";
+
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       tx {
+                               pins = "gpio4";
+                               function = "blsp_uart2";
+
+                               drive-strength = <4>;
+                               bias-disable;
+                       };
+               };
+
+               i2c8_pins: i2c8 {
+                       mux {
+                               pins = "gpio47", "gpio48";
+                               function = "blsp_i2c8";
+
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+               };
+
+               i2c11_pins: i2c11 {
+                       mux {
+                               pins = "gpio83", "gpio84";
+                               function = "blsp_i2c11";
+
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+               };
+
+               lcd_backlight_en_pin_a: lcd-backlight-vddio {
+                       pins = "gpio69";
+                       drive-strength = <10>;
+                       output-low;
+                       bias-disable;
+               };
+
+               sdhc1_pin_a: sdhc1-pin-active {
+                       clk {
+                               pins = "sdc1_clk";
+                               drive-strength = <16>;
+                               bias-disable;
+                       };
+
+                       cmd-data {
+                               pins = "sdc1_cmd", "sdc1_data";
+                               drive-strength = <10>;
+                               bias-pull-up;
+                       };
+               };
+
+               sdhc2_cd_pin_a: sdhc2-cd-pin-active {
+                       pins = "gpio62";
+                       function = "gpio";
+
+                       drive-strength = <2>;
+                       bias-disable;
+                };
+
+               sdhc2_pin_a: sdhc2-pin-active {
+                       clk {
+                               pins = "sdc2_clk";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       cmd-data {
+                               pins = "sdc2_cmd", "sdc2_data";
+                               drive-strength = <6>;
+                               bias-pull-up;
+                       };
+               };
+
+               sdhc3_pin_a: sdhc3-pin-active {
+                       clk {
+                               pins = "gpio40";
+                               function = "sdc3";
+
+                               drive-strength = <10>;
+                               bias-disable;
+                       };
+
+                       cmd {
+                               pins = "gpio39";
+                               function = "sdc3";
+
+                               drive-strength = <10>;
+                               bias-pull-up;
+                       };
+
+                       data {
+                               pins = "gpio35", "gpio36", "gpio37", "gpio38";
+                               function = "sdc3";
+
+                               drive-strength = <10>;
+                               bias-pull-up;
+                       };
+               };
+
+               ts_int_pin: synaptics {
+                       pin {
+                               pins = "gpio86";
+                               function = "gpio";
+
+                               drive-strength = <2>;
+                               bias-disable;
+                               input-enable;
+                       };
+               };
+       };
+
+       i2c@f9964000 {
+               status = "ok";
+
+               clock-frequency = <355000>;
+               qcom,src-freq = <50000000>;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2c8_pins>;
+
+               synaptics@2c {
+                       compatible = "syna,rmi-i2c";
+                       reg = <0x2c>;
+
+                       interrupt-parent = <&msmgpio>;
+                       interrupts = <86 IRQ_TYPE_EDGE_FALLING>;
+
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       vdd-supply = <&pm8941_l22>;
+                       vio-supply = <&pm8941_lvs3>;
+
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&ts_int_pin>;
+
+                       rmi-f01@1 {
+                               reg = <0x1>;
+                               syna,nosleep = <1>;
+                       };
+
+                       rmi-f11@11 {
+                               reg = <0x11>;
+                               syna,f11-flip-x = <1>;
+                               syna,sensor-type = <1>;
+                       };
+               };
+       };
+
+       i2c@f9967000 {
+               status = "ok";
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2c11_pins>;
+               clock-frequency = <355000>;
+               qcom,src-freq = <50000000>;
+
+               lp8566_wled: backlight@2c {
+                       compatible = "ti,lp8556";
+                       reg = <0x2c>;
+                       power-supply = <&vreg_bl_vddio>;
+
+                       bl-name = "backlight";
+                       dev-ctrl = /bits/ 8 <0x05>;
+                       init-brt = /bits/ 8 <0x3f>;
+                       rom_a0h {
+                               rom-addr = /bits/ 8 <0xa0>;
+                               rom-val = /bits/ 8 <0xff>;
+                       };
+                       rom_a1h {
+                               rom-addr = /bits/ 8 <0xa1>;
+                               rom-val = /bits/ 8 <0x3f>;
+                       };
+                       rom_a2h {
+                               rom-addr = /bits/ 8 <0xa2>;
+                               rom-val = /bits/ 8 <0x20>;
+                       };
+                       rom_a3h {
+                               rom-addr = /bits/ 8 <0xa3>;
+                               rom-val = /bits/ 8 <0x5e>;
+                       };
+                       rom_a4h {
+                               rom-addr = /bits/ 8 <0xa4>;
+                               rom-val = /bits/ 8 <0x02>;
+                       };
+                       rom_a5h {
+                               rom-addr = /bits/ 8 <0xa5>;
+                               rom-val = /bits/ 8 <0x04>;
+                       };
+                       rom_a6h {
+                               rom-addr = /bits/ 8 <0xa6>;
+                               rom-val = /bits/ 8 <0x80>;
+                       };
+                       rom_a7h {
+                               rom-addr = /bits/ 8 <0xa7>;
+                               rom-val = /bits/ 8 <0xf7>;
+                       };
+                       rom_a9h {
+                               rom-addr = /bits/ 8 <0xa9>;
+                               rom-val = /bits/ 8 <0x80>;
+                       };
+                       rom_aah {
+                               rom-addr = /bits/ 8 <0xaa>;
+                               rom-val = /bits/ 8 <0x0f>;
+                       };
+                       rom_aeh {
+                               rom-addr = /bits/ 8 <0xae>;
+                               rom-val = /bits/ 8 <0x0f>;
+                       };
+               };
+       };
+};
+
+&spmi_bus {
+       pm8941@0 {
+               charger@1000 {
+                       qcom,fast-charge-safe-current = <1500000>;
+                       qcom,fast-charge-current-limit = <1500000>;
+                       qcom,dc-current-limit = <1800000>;
+                       qcom,fast-charge-safe-voltage = <4400000>;
+                       qcom,fast-charge-high-threshold-voltage = <4350000>;
+                       qcom,fast-charge-low-threshold-voltage = <3400000>;
+                       qcom,auto-recharge-threshold-voltage = <4200000>;
+                       qcom,minimum-input-voltage = <4300000>;
+               };
+
+               gpios@c000 {
+                       gpio_keys_pin_a: gpio-keys-active {
+                               pins = "gpio2", "gpio5";
+                               function = "normal";
+
+                               bias-pull-up;
+                               power-source = <PM8941_GPIO_S3>;
+                       };
+
+                       wlan_sleep_clk_pin: wl-sleep-clk {
+                               pins = "gpio17";
+                               function = "func2";
+
+                               output-high;
+                               power-source = <PM8941_GPIO_S3>;
+                       };
+
+                       wlan_regulator_pin: wl-reg-active {
+                               pins = "gpio18";
+                               function = "normal";
+
+                               bias-disable;
+                               power-source = <PM8941_GPIO_S3>;
+                       };
+
+                       lcd_dcdc_en_pin_a: lcd-dcdc-en-active {
+                               pins = "gpio20";
+                               function = "normal";
+
+                               bias-disable;
+                               power-source = <PM8941_GPIO_S3>;
+                               input-disable;
+                               output-low;
+                       };
+
+               };
+
+               coincell@2800 {
+                       status = "ok";
+                       qcom,rset-ohms = <2100>;
+                       qcom,vset-millivolts = <3000>;
+               };
+       };
+};
index a39207625354cb947ba3ab509552034c76afba19..75cae87219d6a4b74c036f9f23d14673080ff98e 100644 (file)
                        status = "disabled";
                };
 
+               sdhci@f9864900 {
+                       compatible = "qcom,sdhci-msm-v4";
+                       reg = <0xf9864900 0x11c>, <0xf9864000 0x800>;
+                       reg-names = "hc_mem", "core_mem";
+                       interrupts = <GIC_SPI 127 IRQ_TYPE_NONE>,
+                                    <GIC_SPI 224 IRQ_TYPE_NONE>;
+                       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";
+               };
+
                sdhci@f98a4900 {
                        compatible = "qcom,sdhci-msm-v4";
                        reg = <0xf98a4900 0x11c>, <0xf98a4000 0x800>;
diff --git a/arch/arm/boot/dts/qcom-msm8974pro.dtsi b/arch/arm/boot/dts/qcom-msm8974pro.dtsi
new file mode 100644 (file)
index 0000000..6740a4c
--- /dev/null
@@ -0,0 +1,18 @@
+#include "qcom-msm8974.dtsi"
+
+/ {
+       soc {
+               sdhci@f9824900 {
+                       clocks = <&gcc GCC_SDCC1_APPS_CLK>,
+                                <&gcc GCC_SDCC1_AHB_CLK>,
+                                <&xo_board>,
+                                <&gcc GCC_SDCC1_CDCCAL_FF_CLK>,
+                                <&gcc GCC_SDCC1_CDCCAL_SLEEP_CLK>;
+                       clock-names = "core", "iface", "xo", "cal", "sleep";
+               };
+
+               clock-controller@fc400000 {
+                               compatible = "qcom,gcc-msm8974pro";
+               };
+       };
+};