blob: 26ce6075189aff3db46a79a60cf0e8c7f9c0a3ba [file] [log] [blame]
/*
* Copyright (c) 2018-2020, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
/dts-v1/;
#include "msm8909-mtp.dtsi"
#include "8909-pm8916.dtsi"
#include "msm8909-pm8916-mtp.dtsi"
#include "apq8009-audio-external_codec.dtsi"
#include "msm8909-pm8916-camera.dtsi"
#include "msm8909-pm8916-camera-sensor-robot-som.dtsi"
#include "dsi-panel-ili9806e-fwvga-video.dtsi"
/ {
model = "Qualcomm Technologies, Inc. APQ8009 Robot SOM refboard";
compatible = "qcom,apq8009-mtp", "qcom,apq8009", "qcom,mtp";
qcom,msm-id = <265 2>;
qcom,board-id = <8 0x15>;
};
&audio_codec_mtp {
status = "disabled";
};
&i2c_4 {
status= "okay";
};
&pm8916_gpios {
wcd_vdd_en { /* GPIO 4 */
wcd_vdd_en_active: wcd_vdd_en_active {
status = "ok";
pins = "gpio4";
function = "normal";
output-high;
qcom,drive-strength = <2>;
};
wcd_vdd_en_sleep: wcd_vdd_en_sleep {
status = "ok";
pins = "gpio4";
function = "normal";
output-low;
qcom,drive-strength = <2>;
};
};
};
&soc {
ext_codec: sound-9335 {
compatible = "qcom,apq8009-audio-i2s-codec";
qcom,audio-routing =
"AIF4 VI", "MCLK",
"RX_BIAS", "MCLK",
"MADINPUT", "MCLK",
"AMIC2", "MIC BIAS2",
"MIC BIAS2", "Headset Mic",
"DMIC0", "MIC BIAS1",
"MIC BIAS1", "Digital Mic0",
"DMIC1", "MIC BIAS1",
"MIC BIAS1", "Digital Mic1",
"DMIC2", "MIC BIAS3",
"MIC BIAS3", "Digital Mic2",
"DMIC3", "MIC BIAS3",
"MIC BIAS3", "Digital Mic3",
"SpkrLeft IN", "SPK1 OUT",
"SpkrRight IN", "SPK2 OUT";
qcom,pdm-i2s-switch-enable = <&msm_gpio 88 0>;
qcom,pri-mi2s-gpios = <&cdc_pri_mi2s_gpios>;
qcom,quat-mi2s-gpios = <&cdc_quat_tdm_gpios>;
};
clock_audio: audio_ext_clk {
compatible = "qcom,audio-ref-clk";
qcom,codec-mclk-clk-freq = <9600000>;
qcom,lpass-clock = <1>;
reg = <0x07702004 0x4>;
pinctrl-names = "sleep", "active";
pinctrl-0 = <&i2s_mclk_sleep>;
pinctrl-1 = <&i2s_mclk_active>;
#clock-cells = <1>;
};
i2c@78b8000 {
wcd9xxx_codec@d {
status = "okay";
compatible = "qcom,tasha-i2c-pgd";
reg = <0x0d>;
interrupt-parent = <&wcd9xxx_intc>;
interrupts = <0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
17 18 19 20 21 22 23 24 25 26 27 28 29
30>;
qcom,wcd-rst-gpio-node = <&wcd_rst_gpio>;
qcom,has-buck-vsel-gpio;
qcom,buck-vsel-gpio-node = <&wcd_vdd_gpio>;
swr_master {
compatible = "qcom,swr-wcd";
qcom,swr-num-dev = <2>;
#address-cells = <2>;
#size-cells = <0>;
wsa881x_211:wsa881x@21170211 {
compatible = "qcom,wsa881x";
reg = <0x00 0x21170211>;
qcom,spkr-sd-n-node = <&wsa_spkr>;
};
wsa881x_212:wsa881x@21170212 {
compatible = "qcom,wsa881x";
reg = <0x00 0x21170212>;
qcom,spkr-sd-n-node = <&wsa_spkr>;
};
wsa881x_213:wsa881x@21170213 {
compatible = "qcom,wsa881x";
reg = <0x00 0x21170213>;
qcom,spkr-sd-n-node = <&wsa_spkr>;
};
wsa881x_214:wsa881x@21170214 {
compatible = "qcom,wsa881x";
reg = <0x00 0x21170214>;
qcom,spkr-sd-n-node = <&wsa_spkr>;
};
};
};
};
cdc_pri_mi2s_gpios: msm_cdc_pinctrl_pri {
compatible = "qcom,msm-cdc-pinctrl";
pinctrl-names = "aud_active", "aud_sleep";
pinctrl-0 = <&pri_mi2s_active &pri_mi2s_ws_active
&pri_mi2s_dout_active &pri_mi2s_din_active>;
pinctrl-1 = <&pri_mi2s_sleep &pri_mi2s_ws_sleep
&pri_mi2s_dout_sleep &pri_mi2s_din_sleep>;
};
cdc_quat_tdm_gpios: msm_cdc_pinctrl_quat {
compatible = "qcom,msm-cdc-pinctrl";
pinctrl-names = "aud_active", "aud_sleep";
pinctrl-0 = <&quat_mi2s_active &quat_mi2s_din_active>;
pinctrl-1 = <&quat_mi2s_sleep &quat_mi2s_din_sleep>;
};
wcd_rst_gpio: wcd_gpio_ctrl {
compatible = "qcom,msm-cdc-pinctrl";
pinctrl-names = "aud_active", "aud_sleep";
pinctrl-0 = <&cdc_reset1_active>;
pinctrl-1 = <&cdc_reset1_sleep>;
};
wcd_vdd_gpio: wcd_vdd_gpio_ctrl {
compatible = "qcom,msm-cdc-pinctrl";
pinctrl-names = "aud_active", "aud_sleep";
pinctrl-0 = <&wcd_vdd_en_active>;
pinctrl-1 = <&wcd_vdd_en_sleep>;
};
wsa_spkr: msm_cdc_pinctrll {
compatible = "qcom,msm-cdc-pinctrl";
pinctrl-names = "aud_active", "aud_sleep";
pinctrl-0 = <&spkr_en_active>;
pinctrl-1 = <&spkr_en_sleep>;
};
vph_pwr_vreg: vph_pwr_vreg {
compatible = "regulator-fixed";
status = "ok";
regulator-name = "vph_pwr";
regulator-always-on;
};
otg_vreg_5p0: otg_vreg_5p0 {
compatible = "regulator-fixed";
regulator-name = "sbc_vreg_5p0";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
status = "ok";
enable-active-low;
vin-supply = <&vph_pwr_vreg>;
};
vbus_otg_vreg: vbus_otg_vreg {
compatible = "regulator-fixed";
regulator-name = "vbus_otg_vreg";
gpio = <&msm_gpio 74 0>;
vin-supply = <&otg_vreg_5p0>;
};
bluetooth: bt_qca9379 {
compatible = "qca,qca9379";
qca,bt-reset-gpio = <&msm_gpio 47 0>; /* BT_EN */
};
cnss_sdio: qcom,cnss_sdio {
compatible = "qcom,cnss_sdio";
subsys-name = "AR6320";
/**
* There is no vdd-wlan on board and this is not for DSRC.
* IO and XTAL share the same vreg.
*/
vdd-wlan-io-supply = <&pm8916_l5>;
qcom,cap-tsf-gpio = <&msm_gpio 42 1>;
qcom,wlan-ramdump-dynamic = <0x200000>;
qcom,msm-bus,name = "msm-cnss";
qcom,msm-bus,num-cases = <4>;
qcom,msm-bus,num-paths = <1>;
qcom,msm-bus,vectors-KBps =
<79 512 0 0>, /* No vote */
<79 512 6250 200000>, /* 50 Mbps */
<79 512 25000 200000>, /* 200 Mbps */
<79 512 2048000 4096000>; /* MAX */
};
gpio_keys {
status = "disable";
};
spi@78ba000 {
reg = <0x78ba000 0x600>;
spi-max-frequency = <50000000>;
status = "okay";
spi@0 {
compatible = "qcom,spi-msm-slave";
reg = <0>;
spi-max-frequency = <50000000>;
};
};
};
&i2c_1 {
status = "okay";
icm20602@68 {
compatible = "invensense,icm20602";
reg = <0x68>;
interrupt-parent = <&msm_gpio>;
interrupts = <12 0>;
invensense,icm20602-gpio = <&msm_gpio 12 0x0>;
vdd-ldo-supply = <&pm8916_l6>;
interrupt-names = "icm20602_irq";
pinctrl-names = "imu_active","imu_suspend";
pinctrl-0 = <&imu_int_active>;
pinctrl-1 = <&imu_int_suspend>;
status = "ok";
};
vl53l0x@29 {
compatible = "st,stmvl53l0";
reg = <0x29>;
status = "ok";
tof-id = <2>;
};
};
&wcnss {
status = "disabled";
};
&msm_gpio {
sdc2_wlan_gpio_on: sdc2_wlan_gpio_on {
mux {
pins = "gpio43";
function = "gpio";
};
config {
pins = "gpio43";
drive-strength = <10>;
bias-pull-up;
output-high;
};
};
sdc2_wlan_gpio_off: sdc2_wlan_gpio_off {
mux {
pins = "gpio43";
function = "gpio";
};
config {
pins = "gpio43";
drive-strength = <2>;
bias-disable;
output-low;
};
};
};
&sdhc_2 {
/delete-property/cd-gpios;
#address-cells = <0>;
interrupt-parent = <&sdhc_2>;
interrupts = <0 1 2>;
#interrupt-cells = <1>;
interrupt-map-mask = <0xffffffff>;
interrupt-map = <0 &intc 0 125 0
1 &intc 0 221 0
2 &msm_gpio 40 0x1>;
interrupt-names = "hc_irq", "pwr_irq", "sdiowakeup_irq";
qcom,vdd-voltage-level = <1800000 2950000>;
qcom,vdd-current-level = <15000 400000>;
qcom,vdd-io-voltage-level = <1800000 1800000>;
qcom,vdd-io-current-level = <200 50000>;
qcom,clk-rates = <400000 25000000 50000000 100000000 200000000>;
qcom,bus-speed-mode = "SDR12", "SDR25", "SDR50", "DDR50", "SDR104";
pinctrl-names = "active", "sleep";
pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on
&sdc2_wlan_gpio_on>;
pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off
&sdc2_wlan_gpio_off>;
qcom,nonremovable;
qcom,core_3_0v_support;
status = "ok";
};
&usb_otg {
interrupts = <0 134 0>,<0 140 0>,<0 136 0>;
interrupt-names = "core_irq", "async_irq", "phy_irq";
qcom,hsusb-otg-mode = <3>;
qcom,switch-vbus-w-id;
qcom,phy-id-high-as-peripheral;
vbus_otg-supply = <&vbus_otg_vreg>;
};
&external_image_mem {
reg = <0x0 0x87900000 0x0 0x0700000>;
};
&modem_adsp_mem {
reg = <0x0 0x88000000 0x0 0x01e00000>;
};
&peripheral_mem {
status = "disabled";
};
&pm8916_chg {
status = "ok";
};
&pm8916_bms {
status = "ok";
};
&blsp1_uart2_hs {
status = "ok";
};
&i2c_3 {
vl53l0x@52 {
compatible = "st,stmvl53l0";
reg = <0x29>;
status = "ok";
tof-id = <1>;
};
};
&wcd_rst_gpio {
status = "okay";
};
&ext_codec {
status = "okay";
};
&rpm_bus {
rpm-regulator-ldoa4 {
status = "okay";
pm8916_l4: regulator-l4 {
regulator-min-microvolt = <2050000>;
regulator-max-microvolt = <2050000>;
qcom,init-voltage = <2050000>;
regulator-always-on;
status = "okay";
};
};
};
&mdss_dsi0_pll {
status = "okay";
};
&mdss_fb0 {
/delete-node/ qcom,cont-splash-memory;
};
&mdss_mdp {
qcom,mdss-pref-prim-intf = "dsi";
status = "okay";
};
&dsi_ili9806e_fwvga_video {
qcom,mdss-dsi-pwm-gpio = <&pm8916_mpps 4 0>;
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-dsi-panel-timings-phy-v2 = [
1E 1A 04 05 02 03 04 a0
1E 1A 04 05 02 03 04 a0
1E 1A 04 05 02 03 04 a0
1E 1A 04 05 02 03 04 a0
1E 0B 03 04 02 03 04 a0];
};
&pmx_mdss {
mdss_dsi_active: mdss_dsi_active {
mux {
pins = "gpio28", "gpio37";
};
};
mdss_dsi_suspend: mdss_dsi_suspend {
mux {
pins = "gpio28", "gpio37";
};
};
};
&mdss_dsi0 {
qcom,dsi-pref-prim-pan = <&dsi_ili9806e_fwvga_video>;
pinctrl-names = "mdss_default", "mdss_sleep";
pinctrl-0 = <&mdss_dsi_active &mdss_dsi_select_gpio>;
pinctrl-1 = <&mdss_dsi_suspend &mdss_dsi_select_gpio>;
qcom,platform-te-gpio = <&msm_gpio 24 0>;
qcom,platform-reset-gpio = <&msm_gpio 28 0>;
qcom,platform-bklight-en-gpio = <&msm_gpio 37 0>;
/delete-property/ qcom,platform-enable-gpio;
vdd-supply = <&pm8916_l17>;
vddio-supply = <&pm8916_l6>;
status = "okay";
};
&pm8916_mpps {
pinctrl-names = "default";
pinctrl-0 = <&ext_fep_wled_pwr_en_default>;
ext_fep_wled_pwr_en_default: ext_fep_wled_pwr_en_default {
pins = "mpp4"; /* MPP_4 */
function = "digital"; /* Digital */
output-high; /* Output */
power-source = <1>;
status = "okay";
};
};
/delete-node/ &cont_splash_mem;