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
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJXcarRAAoJEFKiBbHx2RXVWsMQAJuNe5NNiNQlbI2oqT1sjanu
 CUq0Wlt1JxDJd/TZM7/Mb47JCUus6jWZsjuH6G4h8EnIHJqiRfgtW0QBL8pIE6Sh
 qZkFZgnXkdIr2paW8Ut0Pt6Dg+23tAM5+LxO6ouYAsQy8iDPhyqqUTI/KOCFsQte
 j0JjoiSsC9OwCYfU3M5gVxInS6TeWF5k9+NJ0EFc0MC/ta1hKuHu1j3XVzBB7Ncv
 CS+rneijpNRdCELvCaRMzmfNoK9rPNO4Z2E8OB+qjm5aXOk2REFAEYBSk7T8leLI
 NUGQiXfYfKwO0Y+MqORtCTmJ5AGkCqlTRglZROsQ2mVcgSvpbscJaauQLSn4r1w7
 JRHC+T6LqxaAAqZcw1uYDgO5GHKHJ8nLC9+1oXmc5Ztx8mmeuNHAOgsiIrgyBjOu
 oXcZmrgp/iLFTVWHCqOGusXoN2J85TcsHvzXH0p0gG/SK0SOS+l/z8dZ+gqYq5TA
 KMzx6yNm4d9f4NoGjdlwRyVLB2+4UrEz2aiVlitizMNWfN9kWxTQxFpeSm+pstzy
 YtyuVo1t4MmaUZVeqFh5DwlHe6POnJ1chU2XwTTJyiYit4rKYkGNSdAVn4EP1b3H
 bHJTQgrbt6wG6H/FAFzxVp8+t41/VIPqslidVUDVhyInQnpbBsa6uQr2J42Yi7L5
 G+O0abSwLiPBy7XLBZS8
 =WKcG
 -----END PGP SIGNATURE-----

Merge tag 'qcom-dt-for-4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux into next/dt

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>
This commit is contained in:
Olof Johansson 2016-07-04 22:38:25 -07:00
commit 24cf731637
18 changed files with 1296 additions and 77 deletions

View file

@ -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";
};
};

View file

@ -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";
};
};

View 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 \

View file

@ -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>;
};
};
};
};

View file

@ -1,10 +1,11 @@
#include "qcom-apq8064-v2.0.dtsi"
#include "qcom-apq8064-arrow-db600c-pins.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 DB600c";
compatible = "arrow,db600c", "qcom,apq8064";
model = "Arrow Electronics, APQ8064 SD_600eval";
compatible = "arrow,sd_600eval", "qcom,apq8064";
aliases {
serial0 = &gsbi7_serial;
@ -82,7 +83,8 @@ s3 {
s4 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
qcom,switch-mode-frequency = <3200000>;
qcom,switch-mode-frequency = <1600000>;
qcom,force-mode = <QCOM_RPM_FORCE_MODE_AUTO>;
bias-pull-down;
regulator-always-on;
};

View file

@ -29,12 +29,6 @@ ext_3p3v: regulator-fixed@1 {
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>;

View file

@ -7,6 +7,46 @@ pios {
};
};
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";

View file

@ -70,45 +70,6 @@ tx {
};
};
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";
@ -417,9 +378,6 @@ sdcc1: sdcc@12400000 {
vmmc-supply = <&pm8921_l5>;
vqmmc-supply = <&pm8921_s4>;
pinctrl-names = "default";
pinctrl-0 = <&sdcc1_pin_a>;
};
sdcc3: sdcc@12180000 {
@ -429,7 +387,7 @@ 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>;
};
};
};

View file

@ -177,7 +177,7 @@ smsm {
apps_smsm: apps@0 {
reg = <0>;
#qcom,state-cells = <1>;
#qcom,smem-state-cells = <1>;
};
modem_smsm: modem@1 {
@ -213,6 +213,12 @@ dsps_smsm: dsps@4 {
};
};
firmware {
scm {
compatible = "qcom,scm-apq8064";
};
};
soc: soc {
#address-cells = <1>;
#size-cells = <1>;
@ -853,6 +859,8 @@ amba {
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>;

View file

@ -25,11 +25,23 @@ sdhci@f9824900 {
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>;
};
@ -59,6 +71,42 @@ clk {
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 {
@ -75,4 +123,203 @@ eeprom: eeprom@52 {
};
};
};
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;
};
};
};
};
};
};

View file

@ -86,6 +86,14 @@ CPU_SPC: spc {
};
};
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>;

View file

@ -84,6 +84,12 @@ cpu@3 {
};
};
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";

View file

@ -23,15 +23,26 @@ serial@19c40000 {
};
};
/* 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>;
};
};
};

View file

@ -122,11 +122,22 @@ gsbi12_serial: serial@19c40000 {
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 {
@ -143,6 +154,44 @@ pmicintc: pmic@0 {
#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>;
@ -162,11 +211,11 @@ keypad@148 {
row-hold = <91500>;
};
rtc@11d {
rtc@1e8 {
compatible = "qcom,pm8058-rtc";
reg = <0x1e8>;
interrupt-parent = <&pmicintc>;
interrupts = <39 1>;
reg = <0x11d>;
allow-set-time;
};
@ -177,13 +226,93 @@ vibrator@4a {
};
};
/* 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 {
@ -205,7 +334,6 @@ sdcc1: sdcc@12400000 {
non-removable;
cap-sd-highspeed;
cap-mmc-highspeed;
vmmc-supply = <&vsdcc_fixed>;
};
sdcc3: sdcc@12180000 {
@ -222,7 +350,21 @@ 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>;
};
};

View file

@ -367,6 +367,10 @@ cmd-data {
};
};
dma-controller@f9944000 {
qcom,controlled-remotely;
};
};
&spmi_bus {

View 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"
@ -182,7 +182,7 @@ smp2p-modem {
modem_smp2p_out: master-kernel {
qcom,entry-name = "master-kernel";
#qcom,state-cells = <1>;
#qcom,smem-state-cells = <1>;
};
modem_smp2p_in: slave-kernel {
@ -208,7 +208,7 @@ smp2p-wcnss {
wcnss_smp2p_out: master-kernel {
qcom,entry-name = "master-kernel";
#qcom,state-cells = <1>;
#qcom,smem-state-cells = <1>;
};
wcnss_smp2p_in: slave-kernel {
@ -232,7 +232,7 @@ smsm {
apps_smsm: apps@0 {
reg = <0>;
#qcom,state-cells = <1>;
#qcom,smem-state-cells = <1>;
};
modem_smsm: modem@1 {
@ -260,6 +260,14 @@ wcnss_smsm: wcnss@7 {
};
};
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>;
@ -501,6 +509,8 @@ blsp_i2c11: i2c@f9967000 {
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 {
@ -518,6 +528,16 @@ 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 {

View file

@ -12,15 +12,23 @@ pma8084_0: pma8084@0 {
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_gpios: gpios@c000 {
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_mpps: mpps@a000 {
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_temp: temp-alarm@2400 {
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>;