Merge tag 'qcom-dt-for-4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/agross...
authorOlof Johansson <olof@lixom.net>
Tue, 5 Jul 2016 05:38:25 +0000 (22:38 -0700)
committerOlof Johansson <olof@lixom.net>
Tue, 5 Jul 2016 05:38:25 +0000 (22:38 -0700)
Qualcomm Device Tree Changes for v4.8

* Reverse BAM dma node reverts
* Add BAM remote control options for affected platforms
* Enable peripherals on APQ8074 dragonboard
* Enable PMA8084 pwrky
* Fix PMIC reg entries by removing unnecessary size element
* Add SCM binding and support for all currently supported boards
* Add Qualcomm WCNSS binding documentation
* Rename db600c to SD_600eval and add peripheral nodes
* Remove gpio key entry from Nexus7
* Add APQ8060 based dragonboard and associated peripherals
* Add ARMv7 PMU for IPQ4019
* Update smem state cells to match documentation

* tag 'qcom-dt-for-4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux: (26 commits)
  dts: ipq4019: support ARMv7 PMU
  ARM: dts: add Qualcomm APQ8060-based Dragonboard
  ARM: dts: move the fixed MMC regulator to SURF board
  ARM: dts: fix the MSM8660 RTC base address
  ARM: dts: add I2C block in GSBI12
  ARM: dts: add L2CC and RPM with regulators for MSM8660
  ARM: dts: add SDCC5 to Qualcomm MSM8660
  ARM: dts: add GPIO and MPP to MSM8660 PMIC
  device-tree: nexus7: Remove power gpio key entry and use pmic8xxx-pwrkey
  arm: dts: qcom: Update smem state cells usage
  ARM: dts: qcom: msm8974-honami: Set DMA as remotely controlled
  ARM: dts: sd_600eval: Fix eMMC lockup issue
  ARM: dts: apq8064: rename db600c to SD_600eval
  ARM: dts: apq8064: move sdcc3 pinctrls out of baord file
  ARM: dts: apq8064: move sdcc1 pinctrl nodes to soc file
  dt: binding: Add Qualcomm WCNSS control binding
  dts: qcom: apq8064: Add SCM firmware node
  dts: qcom: msm8974: Add SCM firmware node
  dts: qcom: apq8084: Add SCM firmware node
  dt/bindings: firmware: Add Qualcomm SCM binding
  ...

Signed-off-by: Olof Johansson <olof@lixom.net>
20 files changed:
Documentation/devicetree/bindings/firmware/qcom,scm.txt [new file with mode: 0644]
Documentation/devicetree/bindings/soc/qcom/qcom,wcnss.txt [new file with mode: 0644]
arch/arm/boot/dts/Makefile
arch/arm/boot/dts/qcom-apq8060-dragonboard.dts [new file with mode: 0644]
arch/arm/boot/dts/qcom-apq8064-arrow-db600c-pins.dtsi [deleted file]
arch/arm/boot/dts/qcom-apq8064-arrow-db600c.dts [deleted file]
arch/arm/boot/dts/qcom-apq8064-arrow-sd-600eval-pins.dtsi [new file with mode: 0644]
arch/arm/boot/dts/qcom-apq8064-arrow-sd-600eval.dts [new file with mode: 0644]
arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dts
arch/arm/boot/dts/qcom-apq8064-pins.dtsi
arch/arm/boot/dts/qcom-apq8064-sony-xperia-yuga.dts
arch/arm/boot/dts/qcom-apq8064.dtsi
arch/arm/boot/dts/qcom-apq8074-dragonboard.dts
arch/arm/boot/dts/qcom-apq8084.dtsi
arch/arm/boot/dts/qcom-ipq4019.dtsi
arch/arm/boot/dts/qcom-msm8660-surf.dts
arch/arm/boot/dts/qcom-msm8660.dtsi
arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dts
arch/arm/boot/dts/qcom-msm8974.dtsi
arch/arm/boot/dts/qcom-pma8084.dtsi

diff --git a/Documentation/devicetree/bindings/firmware/qcom,scm.txt b/Documentation/devicetree/bindings/firmware/qcom,scm.txt
new file mode 100644 (file)
index 0000000..3b4436e
--- /dev/null
@@ -0,0 +1,28 @@
+QCOM Secure Channel Manager (SCM)
+
+Qualcomm processors include an interface to communicate to the secure firmware.
+This interface allows for clients to request different types of actions.  These
+can include CPU power up/down, HDCP requests, loading of firmware, and other
+assorted actions.
+
+Required properties:
+- compatible: must contain one of the following:
+ * "qcom,scm-apq8064" for APQ8064 platforms
+ * "qcom,scm-msm8660" for MSM8660 platforms
+ * "qcom,scm-msm8690" for MSM8690 platforms
+ * "qcom,scm" for later processors (MSM8916, APQ8084, MSM8974, etc)
+- clocks: One to three clocks may be required based on compatible.
+ * Only core clock required for "qcom,scm-apq8064", "qcom,scm-msm8660", and "qcom,scm-msm8960"
+ * Core, iface, and bus clocks required for "qcom,scm"
+- clock-names: Must contain "core" for the core clock, "iface" for the interface
+  clock and "bus" for the bus clock per the requirements of the compatible.
+
+Example for MSM8916:
+
+       firmware {
+               scm {
+                       compatible = "qcom,scm";
+                       clocks = <&gcc GCC_CRYPTO_CLK> , <&gcc GCC_CRYPTO_AXI_CLK>, <&gcc GCC_CRYPTO_AHB_CLK>;
+                       clock-names = "core", "bus", "iface";
+               };
+       };
diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,wcnss.txt b/Documentation/devicetree/bindings/soc/qcom/qcom,wcnss.txt
new file mode 100644 (file)
index 0000000..4ea39e9
--- /dev/null
@@ -0,0 +1,116 @@
+Qualcomm WCNSS Binding
+
+This binding describes the Qualcomm WCNSS hardware. It consists of control
+block and a BT, WiFi and FM radio block, all using SMD as command channels.
+
+- compatible:
+       Usage: required
+       Value type: <string>
+       Definition: must be: "qcom,wcnss",
+
+- qcom,smd-channel:
+       Usage: required
+       Value type: <string>
+       Definition: standard SMD property specifying the SMD channel used for
+                   communication with the WiFi firmware.
+                   Should be "WCNSS_CTRL".
+
+- qcom,mmio:
+       Usage: required
+       Value type: <prop-encoded-array>
+       Definition: reference to a node specifying the wcnss "ccu" and "dxe"
+                   register blocks. The node must be compatible with one of
+                   the following:
+                   "qcom,riva",
+                   "qcom,pronto"
+
+= SUBNODES
+The subnodes of the wcnss node are optional and describe the individual blocks in
+the WCNSS.
+
+== Bluetooth
+The following properties are defined to the bluetooth node:
+
+- compatible:
+       Usage: required
+       Value type: <string>
+       Definition: must be:
+                   "qcom,wcnss-bt"
+
+== WiFi
+The following properties are defined to the WiFi node:
+
+- compatible:
+       Usage: required
+       Value type: <string>
+       Definition: must be one of:
+                   "qcom,wcnss-wlan",
+
+- interrupts:
+       Usage: required
+       Value type: <prop-encoded-array>
+       Definition: should specify the "rx" and "tx" interrupts
+
+- interrupt-names:
+       Usage: required
+       Value type: <stringlist>
+       Definition: must contain "rx" and "tx"
+
+- qcom,smem-state:
+       Usage: required
+       Value type: <prop-encoded-array>
+       Definition: should reference the tx-enable and tx-rings-empty SMEM states
+
+- qcom,smem-state-names:
+       Usage: required
+       Value type: <stringlist>
+       Definition: must contain "tx-enable" and "tx-rings-empty"
+
+= EXAMPLE
+The following example represents a SMD node, with one edge representing the
+"pronto" subsystem, with the wcnss device and its wcn3680 BT and WiFi blocks
+described; as found on the 8974 platform.
+
+smd {
+       compatible = "qcom,smd";
+
+       pronto-edge {
+               interrupts = <0 142 1>;
+
+               qcom,ipc = <&apcs 8 17>;
+               qcom,smd-edge = <6>;
+
+               wcnss {
+                       compatible = "qcom,wcnss";
+                       qcom,smd-channels = "WCNSS_CTRL";
+
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       qcom,mmio = <&pronto>;
+
+                       bt {
+                               compatible = "qcom,wcnss-bt";
+                       };
+
+                       wlan {
+                               compatible = "qcom,wcnss-wlan";
+
+                               interrupts = <0 145 0>, <0 146 0>;
+                               interrupt-names = "tx", "rx";
+
+                               qcom,smem-state = <&apps_smsm 10>, <&apps_smsm 9>;
+                               qcom,smem-state-names = "tx-enable", "tx-rings-empty";
+                       };
+               };
+       };
+};
+
+soc {
+       pronto: pronto {
+               compatible = "qcom,pronto";
+
+               reg = <0xfb204000 0x2000>, <0xfb202000 0x1000>, <0xfb21b000 0x3000>;
+               reg-names = "ccu", "dxe", "pmu";
+       };
+};
index 6dfefa3..1739959 100644 (file)
@@ -578,7 +578,8 @@ dtb-$(CONFIG_ARCH_PRIMA2) += \
 dtb-$(CONFIG_ARCH_OXNAS) += \
        wd-mbwe.dtb
 dtb-$(CONFIG_ARCH_QCOM) += \
-       qcom-apq8064-arrow-db600c.dtb \
+       qcom-apq8060-dragonboard.dtb \
+       qcom-apq8064-arrow-sd-600eval.dtb \
        qcom-apq8064-cm-qs600.dtb \
        qcom-apq8064-ifc6410.dtb \
        qcom-apq8064-sony-xperia-yuga.dtb \
diff --git a/arch/arm/boot/dts/qcom-apq8060-dragonboard.dts b/arch/arm/boot/dts/qcom-apq8060-dragonboard.dts
new file mode 100644 (file)
index 0000000..0abc93e
--- /dev/null
@@ -0,0 +1,626 @@
+/*
+ * Copyright 2016 Linaro Ltd
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
+#include "qcom-msm8660.dtsi"
+
+/ {
+       model = "Qualcomm APQ8060 Dragonboard";
+       compatible = "qcom,apq8060-dragonboard", "qcom,msm8660";
+
+       aliases {
+               serial0 = &gsbi12_serial;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       regulators {
+               compatible = "simple-bus";
+
+               /* Main power of the board: 3.7V */
+               vph: regulator-fixed {
+                       compatible = "regulator-fixed";
+                       regulator-min-microvolt = <3700000>;
+                       regulator-max-microvolt = <3700000>;
+                       regulator-name = "VPH";
+                       regulator-type = "voltage";
+                       regulator-always-on;
+                       regulator-boot-on;
+               };
+
+               /* This is a levelshifter for SDCC5 */
+               dragon_vio_txb: txb0104rgyr {
+                       compatible = "regulator-fixed";
+                       regulator-name = "Dragon SDCC levelshifter";
+                       vin-supply = <&pm8058_l14>;
+                       regulator-always-on;
+               };
+       };
+
+       soc {
+               pinctrl@800000 {
+                       /* eMMMC pins, all 8 data lines connected */
+                       dragon_sdcc1_pins: sdcc1 {
+                               mux {
+                                       pins = "gpio159", "gpio160", "gpio161",
+                                            "gpio162", "gpio163", "gpio164",
+                                            "gpio165", "gpio166", "gpio167",
+                                            "gpio168";
+                                            function = "sdc1";
+                               };
+                               clk {
+                                       pins = "gpio167"; /* SDC5 CLK */
+                                       drive-strength = <16>;
+                                       bias-disable;
+                               };
+                               cmd {
+                                       pins = "gpio168"; /* SDC5 CMD */
+                                       drive-strength = <10>;
+                                       bias-pull-up;
+                               };
+                               data {
+                                       /* SDC5 D0 to D7 */
+                                       pins = "gpio159", "gpio160", "gpio161", "gpio162",
+                                            "gpio163", "gpio164", "gpio165", "gpio166";
+                                       drive-strength = <10>;
+                                       bias-pull-up;
+                               };
+                       };
+
+                       /*
+                        * The SDCC3 pins are hardcoded (non-muxable) but need some pin
+                        * configuration.
+                        */
+                       dragon_sdcc3_pins: sdcc3 {
+                               clk {
+                                       pins = "sdc3_clk";
+                                       drive-strength = <8>;
+                                       bias-disable;
+                               };
+                               cmd {
+                                       pins = "sdc3_cmd";
+                                       drive-strength = <8>;
+                                       bias-pull-up;
+                               };
+                               data {
+                                       pins = "sdc3_data";
+                                       drive-strength = <8>;
+                                       bias-pull-up;
+                               };
+                       };
+
+                       /* Second SD card slot pins */
+                       dragon_sdcc5_pins: sdcc5 {
+                               mux {
+                                       pins = "gpio95", "gpio96", "gpio97",
+                                           "gpio98", "gpio99", "gpio100";
+                                       function = "sdc5";
+                               };
+                               clk {
+                                       pins = "gpio97"; /* SDC5 CLK */
+                                       drive-strength = <16>;
+                                       bias-disable;
+                               };
+                               cmd {
+                                       pins = "gpio95"; /* SDC5 CMD */
+                                       drive-strength = <10>;
+                                       bias-pull-up;
+                               };
+                               data {
+                                       /* SDC5 D0 to D3 */
+                                       pins = "gpio96", "gpio98", "gpio99", "gpio100";
+                                       drive-strength = <10>;
+                                       bias-pull-up;
+                               };
+                       };
+
+                       dragon_gsbi12_i2c_pins: gsbi12_i2c {
+                               mux {
+                                       pins = "gpio115", "gpio116";
+                                       function = "gsbi12";
+                               };
+                               pinconf {
+                                       pins = "gpio115", "gpio116";
+                                       drive-strength = <16>;
+                                       /* These have external pull-up 4.7kOhm to 1.8V */
+                                       bias-disable;
+                               };
+                       };
+
+                       /* Primary serial port uart 0 pins */
+                       dragon_gsbi12_serial_pins: gsbi12_serial {
+                               mux {
+                                       pins = "gpio117", "gpio118";
+                                       function = "gsbi12";
+                               };
+                               tx {
+                                       pins = "gpio117";
+                                       drive-strength = <8>;
+                                       bias-disable;
+                               };
+                               rx {
+                                       pins = "gpio118";
+                                       drive-strength = <2>;
+                                       bias-pull-up;
+                               };
+                       };
+               };
+
+               qcom,ssbi@500000 {
+                       pmic@0 {
+                               keypad@148 {
+                                       linux,keymap = <
+                                       MATRIX_KEY(0, 0, KEY_MENU)
+                                       MATRIX_KEY(0, 2, KEY_1)
+                                       MATRIX_KEY(0, 3, KEY_4)
+                                       MATRIX_KEY(0, 4, KEY_7)
+                                       MATRIX_KEY(1, 0, KEY_UP)
+                                       MATRIX_KEY(1, 1, KEY_LEFT)
+                                       MATRIX_KEY(1, 2, KEY_DOWN)
+                                       MATRIX_KEY(1, 3, KEY_5)
+                                       MATRIX_KEY(1, 3, KEY_8)
+                                       MATRIX_KEY(2, 0, KEY_HOME)
+                                       MATRIX_KEY(2, 1, KEY_REPLY)
+                                       MATRIX_KEY(2, 2, KEY_2)
+                                       MATRIX_KEY(2, 3, KEY_6)
+                                       MATRIX_KEY(3, 0, KEY_VOLUMEUP)
+                                       MATRIX_KEY(3, 1, KEY_RIGHT)
+                                       MATRIX_KEY(3, 2, KEY_3)
+                                       MATRIX_KEY(3, 3, KEY_9)
+                                       MATRIX_KEY(3, 4, KEY_SWITCHVIDEOMODE)
+                                       MATRIX_KEY(4, 0, KEY_VOLUMEDOWN)
+                                       MATRIX_KEY(4, 1, KEY_BACK)
+                                       MATRIX_KEY(4, 2, KEY_CAMERA)
+                                       MATRIX_KEY(4, 3, KEY_KBDILLUMTOGGLE)
+                                       >;
+                                       keypad,num-rows = <6>;
+                                       keypad,num-columns = <5>;
+                               };
+
+                               gpio@150 {
+                                       dragon_bmp085_gpios: bmp085-gpios {
+                                               pinconf {
+                                                       pins = "gpio16";
+                                                       function = "normal";
+                                                       input-enable;
+                                                       bias-disable;
+                                                       power-source = <PM8058_GPIO_S3>;
+                                               };
+                                       };
+                                       dragon_sdcc3_gpios: sdcc3-gpios {
+                                               pinconf {
+                                                       pins = "gpio22";
+                                                       function = "normal";
+                                                       input-enable;
+                                                       bias-disable;
+                                                       power-source = <PM8058_GPIO_S3>;
+                                               };
+                                       };
+                                       dragon_sdcc5_gpios: sdcc5-gpios {
+                                               pinconf {
+                                                       pins = "gpio26";
+                                                       function = "normal";
+                                                       input-enable;
+                                                       bias-pull-up;
+                                                       qcom,pull-up-strength = <PMIC_GPIO_PULL_UP_30>;
+                                                       power-source = <PM8058_GPIO_S3>;
+                                               };
+                                       };
+                                       dragon_ak8975_gpios: ak8975-gpios {
+                                               pinconf {
+                                                       pins = "gpio33";
+                                                       function = "normal";
+                                                       input-enable;
+                                                       bias-disable;
+                                                       power-source = <PM8058_GPIO_S3>;
+                                               };
+                                       };
+                               };
+                       };
+               };
+
+               gsbi@19c00000 {
+                       status = "ok";
+                       qcom,mode = <GSBI_PROT_I2C_UART>;
+
+                       serial@19c40000 {
+                               status = "ok";
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&dragon_gsbi12_serial_pins>;
+                       };
+
+                       i2c@19c80000 {
+                               status = "ok";
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&dragon_gsbi12_i2c_pins>;
+
+                               ak8975@0c {
+                                       compatible = "asahi-kasei,ak8975";
+                                       reg = <0x0c>;
+                                       /* GPIO33 has interrupt 224 on the PM8058 */
+                                       interrupt-parent = <&pm8058_gpio>;
+                                       interrupts = <224 IRQ_TYPE_EDGE_RISING>;
+                                       pinctrl-names = "default";
+                                       pinctrl-0 = <&dragon_ak8975_gpios>;
+                                       vid-supply = <&pm8058_lvs0>; // 1.8V
+                                       vdd-supply = <&pm8058_l14>; // 2.85V
+                               };
+                               bmp085@77 {
+                                       compatible = "bosch,bmp085";
+                                       reg = <0x77>;
+                                       /* GPIO16 has interrupt 207 on the PM8058 */
+                                       interrupt-parent = <&pm8058_gpio>;
+                                       interrupts = <207 IRQ_TYPE_EDGE_RISING>;
+                                       reset-gpios = <&tlmm 86 GPIO_ACTIVE_LOW>;
+                                       pinctrl-names = "default";
+                                       pinctrl-0 = <&dragon_bmp085_gpios>;
+                                       vddd-supply = <&pm8058_lvs0>; // 1.8V
+                                       vdda-supply = <&pm8058_l14>; // 2.85V
+                               };
+                       };
+               };
+
+               rpm@104000 {
+                       /*
+                        * Set up of the PMIC RPM regulators for this board
+                        * PM8901 supplies "preliminary regulators" whatever
+                        * that means
+                        */
+                       pm8901-regulators {
+                               vdd_l0-supply = <&pm8901_s4>;
+                               vdd_l1-supply = <&vph>;
+                               vdd_l2-supply = <&vph>;
+                               vdd_l3-supply = <&vph>;
+                               vdd_l4-supply = <&vph>;
+                               vdd_l5-supply = <&vph>;
+                               vdd_l6-supply = <&vph>;
+                               /* vdd_s0-supply, vdd_s1-supply: SAW regulators */
+                               vdd_s2-supply = <&vph>;
+                               vdd_s3-supply = <&vph>;
+                               vdd_s4-supply = <&vph>;
+                               lvs0_in-supply = <&pm8058_s3>;
+                               lvs1_in-supply = <&pm8901_s4>;
+                               lvs2_in-supply = <&pm8058_l0>;
+                               lvs3_in-supply = <&pm8058_s2>;
+                               mvs_in-supply = <&pm8058_s3>;
+
+                               l0 {
+                                       regulator-min-microvolt = <1200000>;
+                                       regulator-max-microvolt = <1200000>;
+                                       bias-pull-down;
+                               };
+                               l1 {
+                                       regulator-min-microvolt = <3300000>;
+                                       regulator-max-microvolt = <3300000>;
+                                       bias-pull-down;
+                               };
+                               l2 {
+                                       regulator-min-microvolt = <2850000>;
+                                       regulator-max-microvolt = <3300000>;
+                                       bias-pull-down;
+                               };
+                               l3 {
+                                       regulator-min-microvolt = <3300000>;
+                                       regulator-max-microvolt = <3300000>;
+                                       bias-pull-down;
+                               };
+                               l4 {
+                                       regulator-min-microvolt = <2600000>;
+                                       regulator-max-microvolt = <2600000>;
+                                       bias-pull-down;
+                               };
+                               l5 {
+                                       regulator-min-microvolt = <2850000>;
+                                       regulator-max-microvolt = <2850000>;
+                                       bias-pull-down;
+                               };
+                               l6 {
+                                       regulator-min-microvolt = <2200000>;
+                                       regulator-max-microvolt = <2200000>;
+                                       bias-pull-down;
+                               };
+
+                               /* s0 and s1 are SAW regulators controlled over SPM */
+                               s2 {
+                                       regulator-min-microvolt = <1300000>;
+                                       regulator-max-microvolt = <1300000>;
+                                       qcom,switch-mode-frequency = <1600000>;
+                                       bias-pull-down;
+                               };
+                               s3 {
+                                       regulator-min-microvolt = <1100000>;
+                                       regulator-max-microvolt = <1100000>;
+                                       qcom,switch-mode-frequency = <1600000>;
+                                       bias-pull-down;
+                               };
+                               s4 {
+                                       regulator-min-microvolt = <1225000>;
+                                       regulator-max-microvolt = <1225000>;
+                                       qcom,switch-mode-frequency = <1600000>;
+                                       bias-pull-down;
+                               };
+
+                               /* LVS0 thru 3 and mvs0 are just switches */
+                               lvs0 {
+                                       regulator-always-on;
+                               };
+                               lvs1 { };
+                               lvs2 { };
+                               lvs3 { };
+                               mvs0 {};
+
+                       };
+
+                       pm8058-regulators {
+                               vdd_l0_l1_lvs-supply = <&pm8058_s3>;
+                               vdd_l2_l11_l12-supply = <&vph>;
+                               vdd_l3_l4_l5-supply = <&vph>;
+                               vdd_l6_l7-supply = <&vph>;
+                               vdd_l8-supply = <&vph>;
+                               vdd_l9-supply = <&vph>;
+                               vdd_l10-supply = <&vph>;
+                               vdd_l13_l16-supply = <&pm8058_s4>;
+                               vdd_l14_l15-supply = <&vph>;
+                               vdd_l17_l18-supply = <&vph>;
+                               vdd_l19_l20-supply = <&vph>;
+                               vdd_l21-supply = <&pm8058_s3>;
+                               vdd_l22-supply = <&pm8058_s3>;
+                               vdd_l23_l24_l25-supply = <&pm8058_s3>;
+                               vdd_s0-supply = <&vph>;
+                               vdd_s1-supply = <&vph>;
+                               vdd_s2-supply = <&vph>;
+                               vdd_s3-supply = <&vph>;
+                               vdd_s4-supply = <&vph>;
+                               vdd_ncp-supply = <&vph>;
+
+                               l0 {
+                                       regulator-min-microvolt = <1200000>;
+                                       regulator-max-microvolt = <1200000>;
+                                       bias-pull-down;
+                               };
+                               l1 {
+                                       regulator-min-microvolt = <1200000>;
+                                       regulator-max-microvolt = <1200000>;
+                                       bias-pull-down;
+                               };
+                               l2 {
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <2600000>;
+                                       bias-pull-down;
+                               };
+                               l3 {
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       bias-pull-down;
+                               };
+                               l4 {
+                                       regulator-min-microvolt = <2850000>;
+                                       regulator-max-microvolt = <2850000>;
+                                       bias-pull-down;
+                               };
+                               l5 {
+                                       regulator-min-microvolt = <2850000>;
+                                       regulator-max-microvolt = <2850000>;
+                                       bias-pull-down;
+                               };
+                               l6 {
+                                       regulator-min-microvolt = <3000000>;
+                                       regulator-max-microvolt = <3600000>;
+                                       bias-pull-down;
+                               };
+                               l7 {
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       bias-pull-down;
+                               };
+                               l8 {
+                                       regulator-min-microvolt = <2900000>;
+                                       regulator-max-microvolt = <3050000>;
+                                       bias-pull-down;
+                               };
+                               l9 {
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       bias-pull-down;
+                               };
+                               l10 {
+                                       regulator-min-microvolt = <2600000>;
+                                       regulator-max-microvolt = <2600000>;
+                                       bias-pull-down;
+                               };
+                               l11 {
+                                       regulator-min-microvolt = <1500000>;
+                                       regulator-max-microvolt = <1500000>;
+                                       bias-pull-down;
+                               };
+                               l12 {
+                                       regulator-min-microvolt = <2900000>;
+                                       regulator-max-microvolt = <2900000>;
+                                       bias-pull-down;
+                               };
+                               l13 {
+                                       regulator-min-microvolt = <2050000>;
+                                       regulator-max-microvolt = <2050000>;
+                                       bias-pull-down;
+                               };
+                               l14 {
+                                       regulator-min-microvolt = <2850000>;
+                                       regulator-max-microvolt = <2850000>;
+                               };
+                               l15 {
+                                       regulator-min-microvolt = <2850000>;
+                                       regulator-max-microvolt = <2850000>;
+                                       bias-pull-down;
+                               };
+                               l16 {
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       bias-pull-down;
+                                       regulator-always-on;
+                               };
+                               l17 {
+                                       // 1.5V according to schematic
+                                       regulator-min-microvolt = <2600000>;
+                                       regulator-max-microvolt = <2600000>;
+                                       bias-pull-down;
+                               };
+                               l18 {
+                                       regulator-min-microvolt = <2200000>;
+                                       regulator-max-microvolt = <2200000>;
+                                       bias-pull-down;
+                               };
+                               l19 {
+                                       regulator-min-microvolt = <2500000>;
+                                       regulator-max-microvolt = <2500000>;
+                                       bias-pull-down;
+                               };
+                               l20 {
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       bias-pull-down;
+                               };
+                               l21 {
+                                       // 1.1 V according to schematic
+                                       regulator-min-microvolt = <1200000>;
+                                       regulator-max-microvolt = <1200000>;
+                                       bias-pull-down;
+                                       regulator-always-on;
+                               };
+                               l22 {
+                                       // 1.2 V according to schematic
+                                       regulator-min-microvolt = <1150000>;
+                                       regulator-max-microvolt = <1150000>;
+                                       bias-pull-down;
+                               };
+                               l23 {
+                                       // Unused
+                                       regulator-min-microvolt = <1200000>;
+                                       regulator-max-microvolt = <1200000>;
+                                       bias-pull-down;
+                               };
+                               l24 {
+                                       // Unused
+                                       regulator-min-microvolt = <1200000>;
+                                       regulator-max-microvolt = <1200000>;
+                                       bias-pull-down;
+                               };
+                               l25 {
+                                       regulator-min-microvolt = <1200000>;
+                                       regulator-max-microvolt = <1200000>;
+                                       bias-pull-down;
+                               };
+
+                               s0 {
+                                       // regulator-min-microvolt = <500000>;
+                                       // regulator-max-microvolt = <1325000>;
+                                       regulator-min-microvolt = <1100000>;
+                                       regulator-max-microvolt = <1100000>;
+                                       qcom,switch-mode-frequency = <1600000>;
+                                       bias-pull-down;
+                               };
+                               s1 {
+                                       // regulator-min-microvolt = <500000>;
+                                       // regulator-max-microvolt = <1250000>;
+                                       regulator-min-microvolt = <1100000>;
+                                       regulator-max-microvolt = <1100000>;
+                                       qcom,switch-mode-frequency = <1600000>;
+                                       bias-pull-down;
+                               };
+                               s2 {
+                                       // 1.3 V according to schematic
+                                       regulator-min-microvolt = <1200000>;
+                                       regulator-max-microvolt = <1400000>;
+                                       qcom,switch-mode-frequency = <1600000>;
+                                       bias-pull-down;
+                               };
+                               s3 {
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       qcom,switch-mode-frequency = <1600000>;
+                                       regulator-always-on;
+                                       bias-pull-down;
+                               };
+                               s4 {
+                                       regulator-min-microvolt = <2200000>;
+                                       regulator-max-microvolt = <2200000>;
+                                       qcom,switch-mode-frequency = <1600000>;
+                                       regulator-always-on;
+                                       bias-pull-down;
+                               };
+
+                               /* LVS0 and LVS1 are just switches */
+                               lvs0 {
+                                       bias-pull-down;
+                               };
+                               lvs1 {
+                                       bias-pull-down;
+                               };
+
+                               ncp {
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       qcom,switch-mode-frequency = <1600000>;
+                               };
+                       };
+               };
+               amba {
+                       /* Internal 3.69 GiB eMMC */
+                       sdcc@12400000 {
+                               status = "okay";
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&dragon_sdcc1_pins>;
+                               vmmc-supply = <&pm8901_l5>;
+                               vqmmc-supply = <&pm8901_lvs0>;
+                       };
+
+                       /* External micro SD card, directly connected, pulled up to 2.85 V */
+                       sdcc@12180000 {
+                               status = "okay";
+                               /* Enable SSBI GPIO 22 as input, use for card detect */
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&dragon_sdcc3_pins>, <&dragon_sdcc3_gpios>;
+                               cd-gpios = <&pm8058_gpio 22 GPIO_ACTIVE_LOW>;
+                               wp-gpios = <&tlmm 110 GPIO_ACTIVE_HIGH>;
+                               vmmc-supply = <&pm8058_l14>;
+                       };
+
+                       /*
+                        * Second external micro SD card, using two TXB104RGYR levelshifters
+                        * to lift from 1.8 V to 2.85 V
+                        */
+                       sdcc@12200000 {
+                               status = "okay";
+                               /* Enable SSBI GPIO 26 as input, use for card detect */
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&dragon_sdcc5_pins>, <&dragon_sdcc5_gpios>;
+                               cd-gpios = <&pm8058_gpio 26 GPIO_ACTIVE_LOW>;
+                               wp-gpios = <&tlmm 106 GPIO_ACTIVE_HIGH>;
+                               vmmc-supply = <&pm8058_l14>;
+                               vqmmc-supply = <&dragon_vio_txb>;
+                       };
+               };
+       };
+};
diff --git a/arch/arm/boot/dts/qcom-apq8064-arrow-db600c-pins.dtsi b/arch/arm/boot/dts/qcom-apq8064-arrow-db600c-pins.dtsi
deleted file mode 100644 (file)
index a3efb97..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-&tlmm_pinmux {
-       card_detect: card-detect {
-               mux {
-                       pins = "gpio26";
-                       function = "gpio";
-                       bias-disable;
-               };
-       };
-
-       pcie_pins: pcie-pinmux {
-               mux {
-                       pins = "gpio27";
-                       function = "gpio";
-               };
-               conf {
-                       pins = "gpio27";
-                       drive-strength = <12>;
-                       bias-disable;
-               };
-       };
-
-       user_leds: user-leds {
-               mux {
-                       pins = "gpio3", "gpio7", "gpio10", "gpio11";
-                       function = "gpio";
-               };
-
-               conf {
-                       pins = "gpio3", "gpio7", "gpio10", "gpio11";
-                       function = "gpio";
-                       output-low;
-               };
-       };
-
-       magneto_pins: magneto-pins {
-               mux {
-                       pins = "gpio31", "gpio48";
-                       function = "gpio";
-                       bias-disable;
-               };
-       };
-};
-
-&pm8921_mpps {
-       mpp_leds: mpp-leds {
-               pinconf {
-                       pins = "mpp7", "mpp8";
-                       function = "digital";
-                       output-low;
-               };
-       };
-};
diff --git a/arch/arm/boot/dts/qcom-apq8064-arrow-db600c.dts b/arch/arm/boot/dts/qcom-apq8064-arrow-db600c.dts
deleted file mode 100644 (file)
index e01b27e..0000000
+++ /dev/null
@@ -1,349 +0,0 @@
-#include "qcom-apq8064-v2.0.dtsi"
-#include "qcom-apq8064-arrow-db600c-pins.dtsi"
-#include <dt-bindings/gpio/gpio.h>
-
-/ {
-       model = "Arrow Electronics, APQ8064 DB600c";
-       compatible = "arrow,db600c", "qcom,apq8064";
-
-       aliases {
-               serial0 = &gsbi7_serial;
-               serial1 = &gsbi1_serial;
-               i2c0 = &gsbi2_i2c;
-               i2c1 = &gsbi3_i2c;
-               i2c2 = &gsbi4_i2c;
-               i2c3 = &gsbi7_i2c;
-               spi0 = &gsbi5_spi;
-       };
-
-       regulators {
-               compatible = "simple-bus";
-               vph: regulator-fixed@1 {
-                       compatible = "regulator-fixed";
-                       regulator-min-microvolt = <4500000>;
-                       regulator-max-microvolt = <4500000>;
-                       regulator-name = "VPH";
-                       regulator-type = "voltage";
-                       regulator-boot-on;
-               };
-
-               /* on board fixed 3.3v supply */
-               vcc3v3: vcc3v3 {
-                       compatible = "regulator-fixed";
-                       regulator-name = "VCC3V3";
-                       regulator-min-microvolt = <3300000>;
-                       regulator-max-microvolt = <3300000>;
-                       regulator-always-on;
-               };
-
-       };
-
-       soc {
-               rpm@108000 {
-                       regulators {
-                               vdd_s1-supply = <&vph>;
-                               vdd_s2-supply = <&vph>;
-                               vdd_s3-supply = <&vph>;
-                               vdd_s4-supply = <&vph>;
-                               vdd_s5-supply = <&vph>;
-                               vdd_s6-supply = <&vph>;
-                               vdd_s7-supply = <&vph>;
-                               vdd_l1_l2_l12_l18-supply = <&pm8921_s4>;
-                               vdd_l3_l15_l17-supply = <&vph>;
-                               vdd_l4_l14-supply = <&vph>;
-                               vdd_l5_l8_l16-supply = <&vph>;
-                               vdd_l6_l7-supply = <&vph>;
-                               vdd_l9_l11-supply = <&vph>;
-                               vdd_l10_l22-supply = <&vph>;
-                               vdd_l21_l23_l29-supply = <&vph>;
-                               vdd_l24-supply = <&pm8921_s1>;
-                               vdd_l25-supply = <&pm8921_s1>;
-                               vdd_l26-supply = <&pm8921_s7>;
-                               vdd_l27-supply = <&pm8921_s7>;
-                               vdd_l28-supply = <&pm8921_s7>;
-                               vin_lvs1_3_6-supply = <&pm8921_s4>;
-                               vin_lvs2-supply = <&pm8921_s1>;
-                               vin_lvs4_5_7-supply = <&pm8921_s4>;
-
-                               s1 {
-                                       regulator-always-on;
-                                       regulator-min-microvolt = <1225000>;
-                                       regulator-max-microvolt = <1225000>;
-                                       qcom,switch-mode-frequency = <3200000>;
-                                       bias-pull-down;
-                               };
-
-                               s3 {
-                                       regulator-min-microvolt = <1000000>;
-                                       regulator-max-microvolt = <1400000>;
-                                       qcom,switch-mode-frequency = <4800000>;
-                               };
-
-                               s4 {
-                                       regulator-min-microvolt = <1800000>;
-                                       regulator-max-microvolt = <1800000>;
-                                       qcom,switch-mode-frequency = <3200000>;
-                                       bias-pull-down;
-                                       regulator-always-on;
-                               };
-
-                               s7 {
-                                       regulator-min-microvolt = <1300000>;
-                                       regulator-max-microvolt = <1300000>;
-                                       qcom,switch-mode-frequency = <3200000>;
-                                };
-
-                               l3 {
-                                       regulator-min-microvolt = <3050000>;
-                                       regulator-max-microvolt = <3300000>;
-                                       bias-pull-down;
-                               };
-
-                               l4 {
-                                       regulator-min-microvolt = <1000000>;
-                                       regulator-max-microvolt = <1800000>;
-                                       bias-pull-down;
-                               };
-
-                               l5 {
-                                       regulator-min-microvolt = <2750000>;
-                                       regulator-max-microvolt = <3000000>;
-                                       bias-pull-down;
-                                       regulator-boot-on;
-                                       regulator-always-on;
-                               };
-
-                               l6 {
-                                       regulator-min-microvolt = <2950000>;
-                                       regulator-max-microvolt = <2950000>;
-                                       bias-pull-down;
-                               };
-
-                               l23 {
-                                       regulator-min-microvolt = <1700000>;
-                                       regulator-max-microvolt = <1900000>;
-                                       bias-pull-down;
-                               };
-
-                               lvs6 {
-                                       bias-pull-down;
-                               };
-
-                               lvs7 {
-                                       bias-pull-down;
-                               };
-                       };
-               };
-
-               gsbi@12440000 {
-                       status = "okay";
-                       qcom,mode = <GSBI_PROT_UART_W_FC>;
-                       serial@12450000 {
-                               label = "LS-UART1";
-                               status = "okay";
-                               pinctrl-names = "default";
-                               pinctrl-0 = <&gsbi1_uart_4pins>;
-                       };
-               };
-
-               gsbi@12480000 {
-                       status = "okay";
-                       qcom,mode = <GSBI_PROT_I2C>;
-                       i2c@124a0000 {
-                               /* On Low speed expansion and Sensors */
-                               label = "LS-I2C0";
-                               status = "okay";
-                               lis3mdl_mag@1e {
-                                       compatible = "st,lis3mdl-magn";
-                                       reg = <0x1e>;
-                                       vdd-supply = <&vcc3v3>;
-                                       vddio-supply = <&pm8921_s4>;
-                                       pinctrl-names = "default";
-                                       pinctrl-0 = <&magneto_pins>;
-                                       interrupt-parent = <&tlmm_pinmux>;
-
-                                       st,drdy-int-pin = <2>;
-                                       interrupts = <48 IRQ_TYPE_EDGE_RISING>, /* DRDY line */
-                                                    <31 IRQ_TYPE_EDGE_RISING>; /* INT */
-                               };
-                       };
-               };
-
-               gsbi@16200000 {
-                       status = "okay";
-                       qcom,mode = <GSBI_PROT_I2C>;
-                       i2c@16280000 {
-                       /* On Low speed expansion */
-                               status = "okay";
-                               label = "LS-I2C1";
-                               clock-frequency = <200000>;
-                               eeprom@52 {
-                                       compatible = "atmel,24c128";
-                                       reg = <0x52>;
-                                       pagesize = <64>;
-                               };
-                       };
-               };
-
-               gsbi@16300000 {
-                       status = "okay";
-                       qcom,mode = <GSBI_PROT_I2C>;
-                       i2c@16380000 {
-                               /* On High speed expansion */
-                               label = "HS-CAM-I2C3";
-                               status = "okay";
-                       };
-               };
-
-               gsbi@1a200000 {
-                       status = "okay";
-                       spi@1a280000 {
-                               /* On Low speed expansion */
-                               label = "LS-SPI0";
-                               status = "okay";
-                       };
-               };
-
-               /* DEBUG UART  */
-               gsbi@16600000 {
-                       status = "okay";
-                       qcom,mode = <GSBI_PROT_I2C_UART>;
-                       serial@16640000 {
-                               label = "LS-UART0";
-                               status = "okay";
-                               pinctrl-names = "default";
-                               pinctrl-0 = <&gsbi7_uart_2pins>;
-                       };
-
-                       i2c@16680000 {
-                               /* On High speed expansion */
-                               status = "okay";
-                               label = "HS-CAM-I2C2";
-                       };
-               };
-
-               leds {
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&user_leds>, <&mpp_leds>;
-
-                       compatible = "gpio-leds";
-
-                       user-led0 {
-                               label = "user0-led";
-                               gpios = <&tlmm_pinmux 3 GPIO_ACTIVE_HIGH>;
-                               linux,default-trigger = "heartbeat";
-                               default-state = "off";
-                       };
-
-                       user-led1 {
-                               label = "user1-led";
-                               gpios = <&tlmm_pinmux 7 GPIO_ACTIVE_HIGH>;
-                               linux,default-trigger = "mmc0";
-                               default-state = "off";
-                       };
-
-                       user-led2 {
-                               label = "user2-led";
-                               gpios = <&tlmm_pinmux 10 GPIO_ACTIVE_HIGH>;
-                               linux,default-trigger = "mmc1";
-                               default-state = "off";
-                       };
-
-                       user-led3 {
-                               label = "user3-led";
-                               gpios = <&tlmm_pinmux 11 GPIO_ACTIVE_HIGH>;
-                               linux,default-trigger = "none";
-                               default-state = "off";
-                       };
-
-                       wifi-led {
-                               label = "WiFi-led";
-                               gpios = <&pm8921_mpps 7 GPIO_ACTIVE_HIGH>;
-                               default-state = "off";
-                       };
-
-                       bt-led {
-                               label = "BT-led";
-                               gpios = <&pm8921_mpps 8 GPIO_ACTIVE_HIGH>;
-                               default-state = "off";
-                       };
-               };
-
-               pci@1b500000 {
-                       status = "okay";
-                       vdda-supply = <&pm8921_s3>;
-                       vdda_phy-supply = <&pm8921_lvs6>;
-                       vdda_refclk-supply = <&vcc3v3>;
-                       pinctrl-0 = <&pcie_pins>;
-                       pinctrl-names = "default";
-                       perst-gpio = <&tlmm_pinmux 27 GPIO_ACTIVE_LOW>;
-               };
-
-               phy@1b400000 {
-                       status = "okay";
-               };
-
-               sata@29000000 {
-                       status  = "okay";
-                       target-supply   = <&pm8921_lvs7>;
-               };
-
-               /* OTG */
-               phy@12500000 {
-                       status          = "okay";
-                       dr_mode         = "peripheral";
-                       vddcx-supply    = <&pm8921_s3>;
-                       v3p3-supply     = <&pm8921_l3>;
-                       v1p8-supply     = <&pm8921_l4>;
-               };
-
-               phy@12520000 {
-                       status          = "okay";
-                       vddcx-supply    = <&pm8921_s3>;
-                       v3p3-supply     = <&pm8921_l3>;
-                       v1p8-supply     = <&pm8921_l23>;
-               };
-
-               phy@12530000 {
-                       status          = "okay";
-                       vddcx-supply    = <&pm8921_s3>;
-                       v3p3-supply     = <&pm8921_l3>;
-                       v1p8-supply     = <&pm8921_l23>;
-               };
-
-               gadget@12500000 {
-                       status = "okay";
-               };
-
-               /* OTG */
-               usb@12500000 {
-                       status = "okay";
-               };
-
-               usb@12520000 {
-                       status = "okay";
-               };
-
-               usb@12530000 {
-                       status = "okay";
-               };
-
-               amba {
-                       /* eMMC */
-                       sdcc@12400000 {
-                               status = "okay";
-                               vmmc-supply = <&pm8921_l5>;
-                               vqmmc-supply = <&pm8921_s4>;
-                       };
-
-                       /* External micro SD card */
-                       sdcc@12180000 {
-                               status = "okay";
-                               vmmc-supply = <&pm8921_l6>;
-                               pinctrl-names   = "default";
-                               pinctrl-0       = <&card_detect>;
-                               cd-gpios        = <&tlmm_pinmux 26 GPIO_ACTIVE_HIGH>;
-                       };
-               };
-       };
-};
diff --git a/arch/arm/boot/dts/qcom-apq8064-arrow-sd-600eval-pins.dtsi b/arch/arm/boot/dts/qcom-apq8064-arrow-sd-600eval-pins.dtsi
new file mode 100644 (file)
index 0000000..a3efb97
--- /dev/null
@@ -0,0 +1,52 @@
+&tlmm_pinmux {
+       card_detect: card-detect {
+               mux {
+                       pins = "gpio26";
+                       function = "gpio";
+                       bias-disable;
+               };
+       };
+
+       pcie_pins: pcie-pinmux {
+               mux {
+                       pins = "gpio27";
+                       function = "gpio";
+               };
+               conf {
+                       pins = "gpio27";
+                       drive-strength = <12>;
+                       bias-disable;
+               };
+       };
+
+       user_leds: user-leds {
+               mux {
+                       pins = "gpio3", "gpio7", "gpio10", "gpio11";
+                       function = "gpio";
+               };
+
+               conf {
+                       pins = "gpio3", "gpio7", "gpio10", "gpio11";
+                       function = "gpio";
+                       output-low;
+               };
+       };
+
+       magneto_pins: magneto-pins {
+               mux {
+                       pins = "gpio31", "gpio48";
+                       function = "gpio";
+                       bias-disable;
+               };
+       };
+};
+
+&pm8921_mpps {
+       mpp_leds: mpp-leds {
+               pinconf {
+                       pins = "mpp7", "mpp8";
+                       function = "digital";
+                       output-low;
+               };
+       };
+};
diff --git a/arch/arm/boot/dts/qcom-apq8064-arrow-sd-600eval.dts b/arch/arm/boot/dts/qcom-apq8064-arrow-sd-600eval.dts
new file mode 100644 (file)
index 0000000..39ae2bc
--- /dev/null
@@ -0,0 +1,351 @@
+#include "qcom-apq8064-v2.0.dtsi"
+#include "qcom-apq8064-arrow-sd-600eval-pins.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/mfd/qcom-rpm.h>
+
+/ {
+       model = "Arrow Electronics, APQ8064 SD_600eval";
+       compatible = "arrow,sd_600eval", "qcom,apq8064";
+
+       aliases {
+               serial0 = &gsbi7_serial;
+               serial1 = &gsbi1_serial;
+               i2c0 = &gsbi2_i2c;
+               i2c1 = &gsbi3_i2c;
+               i2c2 = &gsbi4_i2c;
+               i2c3 = &gsbi7_i2c;
+               spi0 = &gsbi5_spi;
+       };
+
+       regulators {
+               compatible = "simple-bus";
+               vph: regulator-fixed@1 {
+                       compatible = "regulator-fixed";
+                       regulator-min-microvolt = <4500000>;
+                       regulator-max-microvolt = <4500000>;
+                       regulator-name = "VPH";
+                       regulator-type = "voltage";
+                       regulator-boot-on;
+               };
+
+               /* on board fixed 3.3v supply */
+               vcc3v3: vcc3v3 {
+                       compatible = "regulator-fixed";
+                       regulator-name = "VCC3V3";
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+                       regulator-always-on;
+               };
+
+       };
+
+       soc {
+               rpm@108000 {
+                       regulators {
+                               vdd_s1-supply = <&vph>;
+                               vdd_s2-supply = <&vph>;
+                               vdd_s3-supply = <&vph>;
+                               vdd_s4-supply = <&vph>;
+                               vdd_s5-supply = <&vph>;
+                               vdd_s6-supply = <&vph>;
+                               vdd_s7-supply = <&vph>;
+                               vdd_l1_l2_l12_l18-supply = <&pm8921_s4>;
+                               vdd_l3_l15_l17-supply = <&vph>;
+                               vdd_l4_l14-supply = <&vph>;
+                               vdd_l5_l8_l16-supply = <&vph>;
+                               vdd_l6_l7-supply = <&vph>;
+                               vdd_l9_l11-supply = <&vph>;
+                               vdd_l10_l22-supply = <&vph>;
+                               vdd_l21_l23_l29-supply = <&vph>;
+                               vdd_l24-supply = <&pm8921_s1>;
+                               vdd_l25-supply = <&pm8921_s1>;
+                               vdd_l26-supply = <&pm8921_s7>;
+                               vdd_l27-supply = <&pm8921_s7>;
+                               vdd_l28-supply = <&pm8921_s7>;
+                               vin_lvs1_3_6-supply = <&pm8921_s4>;
+                               vin_lvs2-supply = <&pm8921_s1>;
+                               vin_lvs4_5_7-supply = <&pm8921_s4>;
+
+                               s1 {
+                                       regulator-always-on;
+                                       regulator-min-microvolt = <1225000>;
+                                       regulator-max-microvolt = <1225000>;
+                                       qcom,switch-mode-frequency = <3200000>;
+                                       bias-pull-down;
+                               };
+
+                               s3 {
+                                       regulator-min-microvolt = <1000000>;
+                                       regulator-max-microvolt = <1400000>;
+                                       qcom,switch-mode-frequency = <4800000>;
+                               };
+
+                               s4 {
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       qcom,switch-mode-frequency = <1600000>;
+                                       qcom,force-mode = <QCOM_RPM_FORCE_MODE_AUTO>;
+                                       bias-pull-down;
+                                       regulator-always-on;
+                               };
+
+                               s7 {
+                                       regulator-min-microvolt = <1300000>;
+                                       regulator-max-microvolt = <1300000>;
+                                       qcom,switch-mode-frequency = <3200000>;
+                                };
+
+                               l3 {
+                                       regulator-min-microvolt = <3050000>;
+                                       regulator-max-microvolt = <3300000>;
+                                       bias-pull-down;
+                               };
+
+                               l4 {
+                                       regulator-min-microvolt = <1000000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       bias-pull-down;
+                               };
+
+                               l5 {
+                                       regulator-min-microvolt = <2750000>;
+                                       regulator-max-microvolt = <3000000>;
+                                       bias-pull-down;
+                                       regulator-boot-on;
+                                       regulator-always-on;
+                               };
+
+                               l6 {
+                                       regulator-min-microvolt = <2950000>;
+                                       regulator-max-microvolt = <2950000>;
+                                       bias-pull-down;
+                               };
+
+                               l23 {
+                                       regulator-min-microvolt = <1700000>;
+                                       regulator-max-microvolt = <1900000>;
+                                       bias-pull-down;
+                               };
+
+                               lvs6 {
+                                       bias-pull-down;
+                               };
+
+                               lvs7 {
+                                       bias-pull-down;
+                               };
+                       };
+               };
+
+               gsbi@12440000 {
+                       status = "okay";
+                       qcom,mode = <GSBI_PROT_UART_W_FC>;
+                       serial@12450000 {
+                               label = "LS-UART1";
+                               status = "okay";
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&gsbi1_uart_4pins>;
+                       };
+               };
+
+               gsbi@12480000 {
+                       status = "okay";
+                       qcom,mode = <GSBI_PROT_I2C>;
+                       i2c@124a0000 {
+                               /* On Low speed expansion and Sensors */
+                               label = "LS-I2C0";
+                               status = "okay";
+                               lis3mdl_mag@1e {
+                                       compatible = "st,lis3mdl-magn";
+                                       reg = <0x1e>;
+                                       vdd-supply = <&vcc3v3>;
+                                       vddio-supply = <&pm8921_s4>;
+                                       pinctrl-names = "default";
+                                       pinctrl-0 = <&magneto_pins>;
+                                       interrupt-parent = <&tlmm_pinmux>;
+
+                                       st,drdy-int-pin = <2>;
+                                       interrupts = <48 IRQ_TYPE_EDGE_RISING>, /* DRDY line */
+                                                    <31 IRQ_TYPE_EDGE_RISING>; /* INT */
+                               };
+                       };
+               };
+
+               gsbi@16200000 {
+                       status = "okay";
+                       qcom,mode = <GSBI_PROT_I2C>;
+                       i2c@16280000 {
+                       /* On Low speed expansion */
+                               status = "okay";
+                               label = "LS-I2C1";
+                               clock-frequency = <200000>;
+                               eeprom@52 {
+                                       compatible = "atmel,24c128";
+                                       reg = <0x52>;
+                                       pagesize = <64>;
+                               };
+                       };
+               };
+
+               gsbi@16300000 {
+                       status = "okay";
+                       qcom,mode = <GSBI_PROT_I2C>;
+                       i2c@16380000 {
+                               /* On High speed expansion */
+                               label = "HS-CAM-I2C3";
+                               status = "okay";
+                       };
+               };
+
+               gsbi@1a200000 {
+                       status = "okay";
+                       spi@1a280000 {
+                               /* On Low speed expansion */
+                               label = "LS-SPI0";
+                               status = "okay";
+                       };
+               };
+
+               /* DEBUG UART  */
+               gsbi@16600000 {
+                       status = "okay";
+                       qcom,mode = <GSBI_PROT_I2C_UART>;
+                       serial@16640000 {
+                               label = "LS-UART0";
+                               status = "okay";
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&gsbi7_uart_2pins>;
+                       };
+
+                       i2c@16680000 {
+                               /* On High speed expansion */
+                               status = "okay";
+                               label = "HS-CAM-I2C2";
+                       };
+               };
+
+               leds {
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&user_leds>, <&mpp_leds>;
+
+                       compatible = "gpio-leds";
+
+                       user-led0 {
+                               label = "user0-led";
+                               gpios = <&tlmm_pinmux 3 GPIO_ACTIVE_HIGH>;
+                               linux,default-trigger = "heartbeat";
+                               default-state = "off";
+                       };
+
+                       user-led1 {
+                               label = "user1-led";
+                               gpios = <&tlmm_pinmux 7 GPIO_ACTIVE_HIGH>;
+                               linux,default-trigger = "mmc0";
+                               default-state = "off";
+                       };
+
+                       user-led2 {
+                               label = "user2-led";
+                               gpios = <&tlmm_pinmux 10 GPIO_ACTIVE_HIGH>;
+                               linux,default-trigger = "mmc1";
+                               default-state = "off";
+                       };
+
+                       user-led3 {
+                               label = "user3-led";
+                               gpios = <&tlmm_pinmux 11 GPIO_ACTIVE_HIGH>;
+                               linux,default-trigger = "none";
+                               default-state = "off";
+                       };
+
+                       wifi-led {
+                               label = "WiFi-led";
+                               gpios = <&pm8921_mpps 7 GPIO_ACTIVE_HIGH>;
+                               default-state = "off";
+                       };
+
+                       bt-led {
+                               label = "BT-led";
+                               gpios = <&pm8921_mpps 8 GPIO_ACTIVE_HIGH>;
+                               default-state = "off";
+                       };
+               };
+
+               pci@1b500000 {
+                       status = "okay";
+                       vdda-supply = <&pm8921_s3>;
+                       vdda_phy-supply = <&pm8921_lvs6>;
+                       vdda_refclk-supply = <&vcc3v3>;
+                       pinctrl-0 = <&pcie_pins>;
+                       pinctrl-names = "default";
+                       perst-gpio = <&tlmm_pinmux 27 GPIO_ACTIVE_LOW>;
+               };
+
+               phy@1b400000 {
+                       status = "okay";
+               };
+
+               sata@29000000 {
+                       status  = "okay";
+                       target-supply   = <&pm8921_lvs7>;
+               };
+
+               /* OTG */
+               phy@12500000 {
+                       status          = "okay";
+                       dr_mode         = "peripheral";
+                       vddcx-supply    = <&pm8921_s3>;
+                       v3p3-supply     = <&pm8921_l3>;
+                       v1p8-supply     = <&pm8921_l4>;
+               };
+
+               phy@12520000 {
+                       status          = "okay";
+                       vddcx-supply    = <&pm8921_s3>;
+                       v3p3-supply     = <&pm8921_l3>;
+                       v1p8-supply     = <&pm8921_l23>;
+               };
+
+               phy@12530000 {
+                       status          = "okay";
+                       vddcx-supply    = <&pm8921_s3>;
+                       v3p3-supply     = <&pm8921_l3>;
+                       v1p8-supply     = <&pm8921_l23>;
+               };
+
+               gadget@12500000 {
+                       status = "okay";
+               };
+
+               /* OTG */
+               usb@12500000 {
+                       status = "okay";
+               };
+
+               usb@12520000 {
+                       status = "okay";
+               };
+
+               usb@12530000 {
+                       status = "okay";
+               };
+
+               amba {
+                       /* eMMC */
+                       sdcc@12400000 {
+                               status = "okay";
+                               vmmc-supply = <&pm8921_l5>;
+                               vqmmc-supply = <&pm8921_s4>;
+                       };
+
+                       /* External micro SD card */
+                       sdcc@12180000 {
+                               status = "okay";
+                               vmmc-supply = <&pm8921_l6>;
+                               pinctrl-names   = "default";
+                               pinctrl-0       = <&card_detect>;
+                               cd-gpios        = <&tlmm_pinmux 26 GPIO_ACTIVE_HIGH>;
+                       };
+               };
+       };
+};
index 32fedfa..7b05f07 100644 (file)
 
        gpio-keys {
                compatible = "gpio-keys";
-               power {
-                       label = "Power";
-                       gpios = <&tlmm_pinmux 26 GPIO_ACTIVE_LOW>;
-                       linux,code = <KEY_POWER>;
-                       gpio-key,wakeup;
-               };
                volume_up {
                        label = "Volume Up";
                        gpios = <&pm8921_gpio 4 GPIO_ACTIVE_HIGH>;
index 4102a98..6b801e7 100644 (file)
@@ -7,6 +7,46 @@
                };
        };
 
+       sdcc1_pins: sdcc1-pin-active {
+               clk {
+                       pins = "sdc1_clk";
+                       drive-strengh = <16>;
+                       bias-disable;
+               };
+
+               cmd {
+                       pins = "sdc1_cmd";
+                       drive-strengh = <10>;
+                       bias-pull-up;
+               };
+
+               data {
+                       pins = "sdc1_data";
+                       drive-strengh = <10>;
+                       bias-pull-up;
+               };
+       };
+
+       sdcc3_pins: sdcc3-pin-active {
+               clk {
+                       pins = "sdc3_clk";
+                       drive-strengh = <8>;
+                       bias-disable;
+               };
+
+               cmd {
+                       pins = "sdc3_cmd";
+                       drive-strengh = <8>;
+                       bias-pull-up;
+               };
+
+               data {
+                       pins = "sdc3_data";
+                       drive-strengh = <8>;
+                       bias-pull-up;
+               };
+       };
+
        ps_hold: ps_hold {
                mux {
                        pins = "gpio78";
index 06b3c76..ebd675c 100644 (file)
                                };
                        };
 
-                       sdcc1_pin_a: sdcc1-pin-active {
-                               clk {
-                                       pins = "sdc1_clk";
-                                       drive-strengh = <16>;
-                                       bias-disable;
-                               };
-
-                               cmd {
-                                       pins = "sdc1_cmd";
-                                       drive-strengh = <10>;
-                                       bias-pull-up;
-                               };
-
-                               data {
-                                       pins = "sdc1_data";
-                                       drive-strengh = <10>;
-                                       bias-pull-up;
-                               };
-                       };
-
-                       sdcc3_pin_a: sdcc3-pin-active {
-                               clk {
-                                       pins = "sdc3_clk";
-                                       drive-strengh = <8>;
-                                       bias-disable;
-                               };
-
-                               cmd {
-                                       pins = "sdc3_cmd";
-                                       drive-strengh = <8>;
-                                       bias-pull-up;
-                               };
-
-                               data {
-                                       pins = "sdc3_data";
-                                       drive-strengh = <8>;
-                                       bias-pull-up;
-                               };
-                       };
 
                        sdcc3_cd_pin_a: sdcc3-cd-pin-active {
                                pins = "gpio26";
 
                                vmmc-supply = <&pm8921_l5>;
                                vqmmc-supply = <&pm8921_s4>;
-
-                               pinctrl-names = "default";
-                               pinctrl-0 = <&sdcc1_pin_a>;
                        };
 
                        sdcc3: sdcc@12180000 {
                                cd-gpios = <&tlmm_pinmux 26 GPIO_ACTIVE_LOW>;
 
                                pinctrl-names = "default";
-                               pinctrl-0 = <&sdcc3_pin_a>, <&sdcc3_cd_pin_a>;
+                               pinctrl-0 = <&sdcc3_pins>, <&sdcc3_cd_pin_a>;
                        };
                };
        };
index df96ccd..906bb81 100644 (file)
 
                apps_smsm: apps@0 {
                        reg = <0>;
-                       #qcom,state-cells = <1>;
+                       #qcom,smem-state-cells = <1>;
                };
 
                modem_smsm: modem@1 {
                };
        };
 
+       firmware {
+               scm {
+                       compatible = "qcom,scm-apq8064";
+               };
+       };
+
        soc: soc {
                #address-cells = <1>;
                #size-cells = <1>;
                        sdcc1: sdcc@12400000 {
                                status          = "disabled";
                                compatible      = "arm,pl18x", "arm,primecell";
+                               pinctrl-names   = "default";
+                               pinctrl-0       = <&sdcc1_pins>;
                                arm,primecell-periphid = <0x00051180>;
                                reg             = <0x12400000 0x2000>;
                                interrupts      = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
index c0e2053..ad51df2 100644 (file)
                        bus-width = <8>;
                        non-removable;
                        status = "ok";
+
+                       vmmc-supply = <&pm8941_l20>;
+                       vqmmc-supply = <&pm8941_s3>;
+
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&sdhc1_pin_a>;
                };
 
                sdhci@f98a4900 {
                        cd-gpios = <&msmgpio 62 0x1>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&sdhc2_pin_a>, <&sdhc2_cd_pin_a>;
                        bus-width = <4>;
+                       status = "ok";
+
+                       vmmc-supply = <&pm8941_l21>;
+                       vqmmc-supply = <&pm8941_l13>;
                };
 
 
                                        function = "blsp_spi8";
                                };
                        };
+
+                       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 = <10>;
+                                       bias-disable;
+                               };
+
+                               cmd-data {
+                                       pins = "sdc2_cmd", "sdc2_data";
+                                       drive-strength = <6>;
+                                       bias-pull-up;
+                               };
+                       };
                };
 
                i2c@f9967000 {
                        };
                };
        };
+
+       smd {
+               rpm {
+                       rpm_requests {
+                               pm8841-regulators {
+                                       s1 {
+                                               regulator-min-microvolt = <675000>;
+                                               regulator-max-microvolt = <1050000>;
+                                       };
+
+                                       s2 {
+                                               regulator-min-microvolt = <500000>;
+                                               regulator-max-microvolt = <1050000>;
+                                       };
+
+                                       s3 {
+                                               regulator-min-microvolt = <500000>;
+                                               regulator-max-microvolt = <1050000>;
+                                       };
+
+                                       s4 {
+                                               regulator-min-microvolt = <500000>;
+                                               regulator-max-microvolt = <1050000>;
+                                       };
+                               };
+
+                               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>;
+                                       vin_5vs-supply = <&pm8941_5v>;
+
+                                       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;
+                                       };
+
+                                       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 = <1225000>;
+                                               regulator-max-microvolt = <1225000>;
+                                       };
+
+                                       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>;
+                                       };
+
+                                       l10 {
+                                               regulator-min-microvolt = <1800000>;
+                                               regulator-max-microvolt = <1800000>;
+                                               regulator-always-on;
+                                       };
+
+                                       l11 {
+                                               regulator-min-microvolt = <1300000>;
+                                               regulator-max-microvolt = <1300000>;
+                                       };
+
+                                       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 = <3300000>;
+                                               regulator-max-microvolt = <3300000>;
+                                               regulator-always-on;
+                                       };
+
+                                       l20 {
+                                               regulator-min-microvolt = <2950000>;
+                                               regulator-max-microvolt = <2950000>;
+
+                                               regulator-allow-set-load;
+                                               regulator-boot-on;
+                                               regulator-system-load = <200000>;
+                                       };
+
+                                       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 = <3000000>;
+                                               regulator-max-microvolt = <3000000>;
+                                       };
+
+                                       l24 {
+                                               regulator-min-microvolt = <3075000>;
+                                               regulator-max-microvolt = <3075000>;
+
+                                               regulator-boot-on;
+                                       };
+                               };
+                       };
+               };
+       };
 };
index a33a09f..7c2df06 100644 (file)
                };
        };
 
+       firmware {
+               scm {
+                       compatible = "qcom,scm";
+                       clocks = <&gcc GCC_CE1_CLK> , <&gcc GCC_CE1_AXI_CLK>, <&gcc GCC_CE1_AHB_CLK>;
+                       clock-names = "core", "bus", "iface";
+               };
+       };
+
        cpu-pmu {
                compatible = "qcom,krait-pmu";
                interrupts = <1 7 0xf04>;
index 5c08d19..a520ef5 100644 (file)
                };
        };
 
+       pmu {
+               compatible = "arm,cortex-a7-pmu";
+               interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(4) |
+                                        IRQ_TYPE_LEVEL_HIGH)>;
+       };
+
        clocks {
                sleep_clk: sleep_clk {
                        compatible = "fixed-clock";
index b17f379..23de764 100644 (file)
                        };
                };
 
+               /* Temporary fixed regulator */
+               vsdcc_fixed: vsdcc-regulator {
+                       compatible = "regulator-fixed";
+                       regulator-name = "SDCC Power";
+                       regulator-min-microvolt = <2700000>;
+                       regulator-max-microvolt = <2700000>;
+                       regulator-always-on;
+               };
+
                amba {
                        /* eMMC */
                        sdcc1: sdcc@12400000 {
                                status = "okay";
+                               vmmc-supply = <&vsdcc_fixed>;
                        };
 
                        /* External micro SD card */
                        sdcc3: sdcc@12180000 {
                                status = "okay";
+                               vmmc-supply = <&vsdcc_fixed>;
                        };
                };
        };
index cd21403..acbe71f 100644 (file)
                                compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
                                reg = <0x19c40000 0x1000>,
                                      <0x19c00000 0x1000>;
-                               interrupts = <0 195 0x0>;
+                               interrupts = <0 195 IRQ_TYPE_NONE>;
                                clocks = <&gcc GSBI12_UART_CLK>, <&gcc GSBI12_H_CLK>;
                                clock-names = "core", "iface";
                                status = "disabled";
                        };
+
+                       gsbi12_i2c: i2c@19c80000 {
+                               compatible = "qcom,i2c-qup-v1.1.1";
+                               reg = <0x19c80000 0x1000>;
+                               interrupts = <0 196 IRQ_TYPE_NONE>;
+                               clocks = <&gcc GSBI12_QUP_CLK>, <&gcc GSBI12_H_CLK>;
+                               clock-names = "core", "iface";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
                };
 
                qcom,ssbi@500000 {
                                #address-cells = <1>;
                                #size-cells = <0>;
 
+                               pm8058_gpio: gpio@150 {
+                                       compatible = "qcom,pm8058-gpio",
+                                                    "qcom,ssbi-gpio";
+                                       reg = <0x150>;
+                                       interrupt-parent = <&pmicintc>;
+                                       interrupts = <192 1>, <193 1>, <194 1>,
+                                                    <195 1>, <196 1>, <197 1>,
+                                                    <198 1>, <199 1>, <200 1>,
+                                                    <201 1>, <202 1>, <203 1>,
+                                                    <204 1>, <205 1>, <206 1>,
+                                                    <207 1>, <208 1>, <209 1>,
+                                                    <210 1>, <211 1>, <212 1>,
+                                                    <213 1>, <214 1>, <215 1>,
+                                                    <216 1>, <217 1>, <218 1>,
+                                                    <219 1>, <220 1>, <221 1>,
+                                                    <222 1>, <223 1>, <224 1>,
+                                                    <225 1>, <226 1>, <227 1>,
+                                                    <228 1>, <229 1>, <230 1>,
+                                                    <231 1>, <232 1>, <233 1>,
+                                                    <234 1>, <235 1>;
+                                       gpio-controller;
+                                       #gpio-cells = <2>;
+
+                               };
+
+                               pm8058_mpps: mpps@50 {
+                                       compatible = "qcom,pm8058-mpp",
+                                                    "qcom,ssbi-mpp";
+                                       reg = <0x50>;
+                                       gpio-controller;
+                                       #gpio-cells = <2>;
+                                       interrupt-parent = <&pmicintc>;
+                                       interrupts =
+                                       <128 1>, <129 1>, <130 1>, <131 1>,
+                                       <132 1>, <133 1>, <134 1>, <135 1>,
+                                       <136 1>, <137 1>, <138 1>, <139 1>;
+                               };
+
                                pwrkey@1c {
                                        compatible = "qcom,pm8058-pwrkey";
                                        reg = <0x1c>;
                                        row-hold = <91500>;
                                };
 
-                               rtc@11d {
+                               rtc@1e8 {
                                        compatible = "qcom,pm8058-rtc";
+                                       reg = <0x1e8>;
                                        interrupt-parent = <&pmicintc>;
                                        interrupts = <39 1>;
-                                       reg = <0x11d>;
                                        allow-set-time;
                                };
 
                        };
                };
 
-               /* Temporary fixed regulator */
-               vsdcc_fixed: vsdcc-regulator {
-                       compatible = "regulator-fixed";
-                       regulator-name = "SDCC Power";
-                       regulator-min-microvolt = <2700000>;
-                       regulator-max-microvolt = <2700000>;
-                       regulator-always-on;
+               l2cc: clock-controller@2082000 {
+                       compatible      = "syscon";
+                       reg             = <0x02082000 0x1000>;
+               };
+
+               rpm: rpm@104000 {
+                       compatible      = "qcom,rpm-msm8660";
+                       reg             = <0x00104000 0x1000>;
+                       qcom,ipc        = <&l2cc 0x8 2>;
+
+                       interrupts      = <GIC_SPI 19 IRQ_TYPE_EDGE_RISING>,
+                                         <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>,
+                                         <GIC_SPI 22 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "ack", "err", "wakeup";
+                       clocks = <&gcc RPM_MSG_RAM_H_CLK>;
+                       clock-names = "ram";
+
+                       rpmcc: clock-controller {
+                               compatible      = "qcom,rpmcc-apq8660", "qcom,rpmcc";
+                               #clock-cells = <1>;
+                       };
+
+                       pm8901-regulators {
+                               compatible = "qcom,rpm-pm8901-regulators";
+
+                               pm8901_l0: l0 {};
+                               pm8901_l1: l1 {};
+                               pm8901_l2: l2 {};
+                               pm8901_l3: l3 {};
+                               pm8901_l4: l4 {};
+                               pm8901_l5: l5 {};
+                               pm8901_l6: l6 {};
+
+                               /* S0 and S1 Handled as SAW regulators by SPM */
+                               pm8901_s2: s2 {};
+                               pm8901_s3: s3 {};
+                               pm8901_s4: s4 {};
+
+                               pm8901_lvs0: lvs0 {};
+                               pm8901_lvs1: lvs1 {};
+                               pm8901_lvs2: lvs2 {};
+                               pm8901_lvs3: lvs3 {};
+
+                               pm8901_mvs: mvs {};
+                       };
+
+                       pm8058-regulators {
+                               compatible = "qcom,rpm-pm8058-regulators";
+
+                               pm8058_l0: l0 {};
+                               pm8058_l1: l1 {};
+                               pm8058_l2: l2 {};
+                               pm8058_l3: l3 {};
+                               pm8058_l4: l4 {};
+                               pm8058_l5: l5 {};
+                               pm8058_l6: l6 {};
+                               pm8058_l7: l7 {};
+                               pm8058_l8: l8 {};
+                               pm8058_l9: l9 {};
+                               pm8058_l10: l10 {};
+                               pm8058_l11: l11 {};
+                               pm8058_l12: l12 {};
+                               pm8058_l13: l13 {};
+                               pm8058_l14: l14 {};
+                               pm8058_l15: l15 {};
+                               pm8058_l16: l16 {};
+                               pm8058_l17: l17 {};
+                               pm8058_l18: l18 {};
+                               pm8058_l19: l19 {};
+                               pm8058_l20: l20 {};
+                               pm8058_l21: l21 {};
+                               pm8058_l22: l22 {};
+                               pm8058_l23: l23 {};
+                               pm8058_l24: l24 {};
+                               pm8058_l25: l25 {};
+
+                               pm8058_s0: s0 {};
+                               pm8058_s1: s1 {};
+                               pm8058_s2: s2 {};
+                               pm8058_s3: s3 {};
+                               pm8058_s4: s4 {};
+
+                               pm8058_lvs0: lvs0 {};
+                               pm8058_lvs1: lvs1 {};
+
+                               pm8058_ncp: ncp {};
+                       };
                };
 
                amba {
                                non-removable;
                                cap-sd-highspeed;
                                cap-mmc-highspeed;
-                               vmmc-supply = <&vsdcc_fixed>;
                        };
 
                        sdcc3: sdcc@12180000 {
                                cap-mmc-highspeed;
                                max-frequency   = <48000000>;
                                no-1-8-v;
-                               vmmc-supply = <&vsdcc_fixed>;
+                       };
+
+                       sdcc5: sdcc@12200000 {
+                               compatible      = "arm,pl18x", "arm,primecell";
+                               arm,primecell-periphid = <0x00051180>;
+                               status          = "disabled";
+                               reg             = <0x12200000 0x8000>;
+                               interrupts      = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "cmd_irq";
+                               clocks          = <&gcc SDC5_CLK>, <&gcc SDC5_H_CLK>;
+                               clock-names     = "mclk", "apb_pclk";
+                               bus-width       = <4>;
+                               cap-sd-highspeed;
+                               cap-mmc-highspeed;
+                               max-frequency   = <48000000>;
                        };
                };
 
index a0398b6..3fb4dad 100644 (file)
                };
 
        };
+
+       dma-controller@f9944000 {
+               qcom,controlled-remotely;
+       };
 };
 
 &spmi_bus {
index 6f16426..561d4d1 100644 (file)
@@ -1,6 +1,6 @@
 /dts-v1/;
 
-#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/clock/qcom,gcc-msm8974.h>
 #include "skeleton.dtsi"
 
 
                modem_smp2p_out: master-kernel {
                        qcom,entry-name = "master-kernel";
-                       #qcom,state-cells = <1>;
+                       #qcom,smem-state-cells = <1>;
                };
 
                modem_smp2p_in: slave-kernel {
                wcnss_smp2p_out: master-kernel {
                        qcom,entry-name = "master-kernel";
 
-                       #qcom,state-cells = <1>;
+                       #qcom,smem-state-cells = <1>;
                };
 
                wcnss_smp2p_in: slave-kernel {
                apps_smsm: apps@0 {
                        reg = <0>;
 
-                       #qcom,state-cells = <1>;
+                       #qcom,smem-state-cells = <1>;
                };
 
                modem_smsm: modem@1 {
                };
        };
 
+       firmware {
+               scm {
+                       compatible = "qcom,scm";
+                       clocks = <&gcc GCC_CE1_CLK>, <&gcc GCC_CE1_AXI_CLK>, <&gcc GCC_CE1_AHB_CLK>;
+                       clock-names = "core", "bus", "iface";
+               };
+       };
+
        soc: soc {
                #address-cells = <1>;
                #size-cells = <1>;
                        clock-names = "core", "iface";
                        #address-cells = <1>;
                        #size-cells = <0>;
+                       dmas = <&blsp2_dma 20>, <&blsp2_dma 21>;
+                       dma-names = "tx", "rx";
                };
 
                spmi_bus: spmi@fc4cf000 {
                        interrupt-controller;
                        #interrupt-cells = <4>;
                };
+
+               blsp2_dma: dma-controller@f9944000 {
+                       compatible = "qcom,bam-v1.4.0";
+                       reg = <0xf9944000 0x19000>;
+                       interrupts = <GIC_SPI 239 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP2_AHB_CLK>;
+                       clock-names = "bam_clk";
+                       #dma-cells = <1>;
+                       qcom,ee = <0>;
+               };
        };
 
        smd {
index 4e9bd3f..82d2580 100644 (file)
 
                rtc@6000 {
                        compatible = "qcom,pm8941-rtc";
-                       reg = <0x6000 0x100>,
-                             <0x6100 0x100>;
+                       reg = <0x6000>,
+                             <0x6100>;
                        reg-names = "rtc", "alarm";
                        interrupts = <0x0 0x61 0x1 IRQ_TYPE_EDGE_RISING>;
                };
 
+               pwrkey@800 {
+                       compatible = "qcom,pm8941-pwrkey";
+                       reg = <0x800>;
+                       interrupts = <0x0 0x8 0 IRQ_TYPE_EDGE_BOTH>;
+                       debounce = <15625>;
+                       bias-pull-up;
+               };
+
                pma8084_gpios: gpios@c000 {
                        compatible = "qcom,pma8084-gpio", "qcom,spmi-gpio";
-                       reg = <0xc000 0x1600>;
+                       reg = <0xc000>;
                        gpio-controller;
                        #gpio-cells = <2>;
                        interrupts = <0 0xc0 0 IRQ_TYPE_NONE>,
@@ -49,7 +57,7 @@
 
                pma8084_mpps: mpps@a000 {
                        compatible = "qcom,pma8084-mpp", "qcom,spmi-mpp";
-                       reg = <0xa000 0x800>;
+                       reg = <0xa000>;
                        gpio-controller;
                        #gpio-cells = <2>;
                        interrupts = <0 0xa0 0 IRQ_TYPE_NONE>,
@@ -64,7 +72,7 @@
 
                pma8084_temp: temp-alarm@2400 {
                        compatible = "qcom,spmi-temp-alarm";
-                       reg = <0x2400 0x100>;
+                       reg = <0x2400>;
                        interrupts = <0 0x24 0 IRQ_TYPE_EDGE_RISING>;
                        #thermal-sensor-cells = <0>;
                        io-channels = <&pma8084_vadc VADC_DIE_TEMP>;
@@ -73,7 +81,7 @@
 
                pma8084_vadc: vadc@3100 {
                        compatible = "qcom,spmi-vadc";
-                       reg = <0x3100 0x100>;
+                       reg = <0x3100>;
                        interrupts = <0x0 0x31 0x0 IRQ_TYPE_EDGE_RISING>;
                        #address-cells = <1>;
                        #size-cells = <0>;