Files
kernel_xiaomi_raphael/arch/arm64/boot/dts/qcom/qcs610-iot.dtsi
Avaneesh Kumar Dwivedi 32483be0f4 ARM: dts: msm: Bring all board specific changes to common file for QCS610
For supporting device tree overlay on QCS610, need to align overlay device
tree with normal device tree changes, hence bringing non SoC specific
changes to common file.

Change-Id: I3632a6a50665e2e399a11ee65813c6d96cf44308
Signed-off-by: Avaneesh Kumar Dwivedi <akdwived@codeaurora.org>
Signed-off-by: Anurag Chouhan <achouhan@codeaurora.org>
2020-06-17 11:26:53 -07:00

471 lines
11 KiB
Plaintext

/* Copyright (c) 2019-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.
*/
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/iio/qcom,spmi-vadc.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/clock/qcom,rpmh.h>
#include <dt-bindings/clock/qcom,gcc-sm6150.h>
#include <dt-bindings/clock/qcom,camcc-sm6150.h>
#include <dt-bindings/clock/qcom,cpucc-sm8150.h>
#include <dt-bindings/clock/qcom,dispcc-sm6150.h>
#include <dt-bindings/clock/qcom,gpucc-sm6150.h>
#include "sm6150-sde.dtsi"
#include "sm6150-sde-pll.dtsi"
#include "sm6150-sde-display.dtsi"
#include "qcs610-camera-sensor-idp.dtsi"
/ {
model = "Qualcomm Technologies, Inc. QCS610 IOT";
compatible = "qcom,qcs610-iot", "qcom,qcs610", "qcom,iot";
qcom,board-id = <32 0>;
};
&soc {
qcom,rmnet-ipa {
status="disabled";
};
};
&ipa_hw {
status="disabled";
};
&sm6150_snd {
/delete-property/ fsa4480-i2c-handle;
};
&qupv3_se3_i2c {
status = "ok";
#include "smb1390.dtsi"
};
&fsa4480 {
status = "disabled";
};
&pm6150l_gpios {
key_vol_up {
key_vol_up_default: key_vol_up_default {
pins = "gpio2";
function = "normal";
input-enable;
bias-pull-up;
power-source = <0>;
};
};
irled {
irled_pwm: irled_pwm_default {
pins = "gpio6";
function = "func1";
qcom,drive-strength = <2>;
power-source = <0>;
bias-disable;
output-low;
};
};
};
&soc {
gpio_keys {
compatible = "gpio-keys";
label = "gpio-keys";
pinctrl-names = "default";
pinctrl-0 = <&key_vol_up_default>;
vol_up {
label = "volume_up";
gpios = <&pm6150l_gpios 2 GPIO_ACTIVE_LOW>;
linux,input-type = <1>;
linux,code = <KEY_VOLUMEUP>;
linux,can-disable;
debounce-interval = <15>;
gpio-key,wakeup;
};
};
mtp_batterydata: qcom,battery-data {
qcom,batt-id-range-pct = <15>;
#include "qg-batterydata-alium-3600mah.dtsi"
#include "qg-batterydata-mlp356477-2800mah.dtsi"
};
emac_hw: qcom,emac@20000 {
compatible = "qcom,emac-dwc-eqos";
qcom,arm-smmu;
reg = <0x20000 0x10000>,
<0x36000 0x100>;
reg-names = "emac-base", "rgmii-base";
dma-bit-mask = <32>;
emac-core-version = <7>;
interrupts-extended = <&pdc 0 660 4>, <&pdc 0 661 4>,
<&tlmm 76 2>, <&pdc 0 651 4>,
<&pdc 0 652 4>, <&pdc 0 653 4>,
<&pdc 0 654 4>, <&pdc 0 655 4>,
<&pdc 0 656 4>, <&pdc 0 657 4>,
<&pdc 0 658 4>, <&pdc 0 659 4>,
<&pdc 0 668 4>, <&pdc 0 669 4>;
interrupt-names = "sbd-intr", "lpi-intr",
"phy-intr", "tx-ch0-intr",
"tx-ch1-intr", "tx-ch2-intr",
"tx-ch3-intr", "tx-ch4-intr",
"rx-ch0-intr", "rx-ch1-intr",
"rx-ch2-intr", "rx-ch3-intr",
"ptp_pps_irq_0","ptp_pps_irq_1";
qcom,msm-bus,name = "emac";
qcom,msm-bus,num-cases = <4>;
qcom,msm-bus,num-paths = <2>;
qcom,msm-bus,vectors-KBps =
<98 512 0 0>, <1 781 0 0>, /* No vote */
<98 512 1250 0>, <1 781 0 40000>, /* 10Mbps vote */
<98 512 12500 0>, <1 781 0 40000>, /* 100Mbps vote */
<98 512 125000 0>, <1 781 0 40000>; /* 1000Mbps vote */
qcom,bus-vector-names = "0", "10", "100", "1000";
clocks = <&clock_gcc GCC_EMAC_AXI_CLK>,
<&clock_gcc GCC_EMAC_PTP_CLK>,
<&clock_gcc GCC_EMAC_RGMII_CLK>,
<&clock_gcc GCC_EMAC_SLV_AHB_CLK>;
clock-names = "eth_axi_clk", "eth_ptp_clk",
"eth_rgmii_clk", "eth_slave_ahb_clk";
qcom,phy-reset = <&tlmm 36 GPIO_ACTIVE_HIGH>;
qcom,phy-reset-delay-msecs = <10 50>;
qcom,phy-intr-redirect = <&tlmm 76 GPIO_ACTIVE_LOW>;
gdsc_emac-supply = <&emac_gdsc>;
pinctrl-names = "dev-emac-mdc", "dev-emac-mdio",
"dev-emac-rgmii_txd0_state", "dev-emac-rgmii_txd1_state",
"dev-emac-rgmii_txd2_state", "dev-emac-rgmii_txd3_state",
"dev-emac-rgmii_txc_state", "dev-emac-rgmii_tx_ctl_state",
"dev-emac-rgmii_rxd0_state", "dev-emac-rgmii_rxd1_state",
"dev-emac-rgmii_rxd2_state", "dev-emac-rgmii_rxd3_state",
"dev-emac-rgmii_rxc_state", "dev-emac-rgmii_rx_ctl_state",
"dev-emac-phy_intr", "dev-emac-phy_reset_state",
"dev-emac_pin_pps_0";
pinctrl-0 = <&emac_mdc>;
pinctrl-1 = <&emac_mdio>;
pinctrl-2 = <&emac_rgmii_txd0>;
pinctrl-3 = <&emac_rgmii_txd1>;
pinctrl-4 = <&emac_rgmii_txd2>;
pinctrl-5 = <&emac_rgmii_txd3>;
pinctrl-6 = <&emac_rgmii_txc>;
pinctrl-7 = <&emac_rgmii_tx_ctl>;
pinctrl-8 = <&emac_rgmii_rxd0>;
pinctrl-9 = <&emac_rgmii_rxd1>;
pinctrl-10 = <&emac_rgmii_rxd2>;
pinctrl-11 = <&emac_rgmii_rxd3>;
pinctrl-12 = <&emac_rgmii_rxc>;
pinctrl-13 = <&emac_rgmii_rx_ctl>;
pinctrl-14 = <&emac_phy_intr>;
pinctrl-15 = <&emac_phy_reset_state>;
pinctrl-16 = <&emac_pin_pps_0>;
vreg_emac_phy-supply = <&L19A>;
qcom,phyad_change;
io-macro-info {
io-macro-bypass-mode = <0>;
io-interface = "rgmii";
};
emac_emb_smmu: emac_emb_smmu {
compatible = "qcom,emac-smmu-embedded";
iommus = <&apps_smmu 0x1C0 0x0>;
qcom,iova-mapping = <0x80000000 0x40000000>;
};
};
};
&emac_phy_intr {
mux {
pins = "gpio76";
function = "gpio";
};
config {
pins = "gpio76";
bias-disable; /* NO pull */
drive-strength = <2>;
};
};
&emac_phy_reset_state {
mux {
pins = "gpio36";
function = "gpio";
};
config {
pins = "gpio36";
bias-pull-up;
drive-strength = <16>;
};
};
&pm6150l_wled {
qcom,string-cfg= <3>;
qcom,leds-per-string = <7>;
status = "ok";
};
&pm6150l_lcdb {
status = "ok";
};
&pm6150l_pwm_1 {
status = "okay";
};
&pm6150_qg {
qcom,battery-data = <&mtp_batterydata>;
qcom,qg-iterm-ma = <100>;
qcom,hold-soc-while-full;
qcom,linearize-soc;
qcom,cl-feedback-on;
};
&pm6150_charger {
io-channels = <&pm6150_vadc ADC_USB_IN_V_16>,
<&pm6150_vadc ADC_USB_IN_I>,
<&pm6150_vadc ADC_CHG_TEMP>,
<&pm6150_vadc ADC_DIE_TEMP>,
<&pm6150_vadc ADC_AMUX_THM4_PU2>,
<&pm6150_vadc ADC_SBUx>,
<&pm6150_vadc ADC_VPH_PWR>;
io-channel-names = "usb_in_voltage",
"usb_in_current",
"chg_temp",
"die_temp",
"conn_temp",
"sbux_res",
"vph_voltage";
qcom,battery-data = <&mtp_batterydata>;
qcom,auto-recharge-soc = <98>;
qcom,step-charging-enable;
qcom,sw-jeita-enable;
qcom,fcc-stepping-enable;
qcom,suspend-input-on-debug-batt;
qcom,sec-charger-config = <3>;
qcom,thermal-mitigation = <4200000 3500000 3000000
2500000 2000000 1500000 1000000 500000>;
dpdm-supply = <&qusb_phy0>;
qcom,charger-temp-max = <800>;
qcom,smb-temp-max = <800>;
};
&smb1390 {
/delete-property/ interrupts;
interrupts = <0x0 0xc2 0x0 IRQ_TYPE_LEVEL_LOW>;
pinctrl-names = "default";
pinctrl-0 = <&smb_stat_default>;
status = "ok";
};
&smb1390_charger {
/delete-property/ compatible;
compatible = "qcom,smb1390-charger-psy";
io-channels = <&pm6150_vadc ADC_AMUX_THM3>;
io-channel-names = "cp_die_temp";
status = "ok";
};
&qupv3_se0_2uart {
status = "ok";
};
&qupv3_se7_4uart {
status = "ok";
};
&pil_camera_mem {
reg = <0 0x8f800000 0 0x500000>;
};
&pil_modem_mem {
reg = <0 0x8fd00000 0 0x3100000>;
};
&sdhc_1 {
vdd-supply = <&pm6150l_l11>;
qcom,vdd-voltage-level = <2950000 2950000>;
qcom,vdd-current-level = <0 570000>;
vdd-io-supply = <&pm6150_l12>;
qcom,vdd-io-always-on;
qcom,vdd-io-lpm-sup;
qcom,vdd-io-voltage-level = <1800000 1800000>;
qcom,vdd-io-current-level = <0 325000>;
pinctrl-names = "active", "sleep";
pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on &sdc1_rclk_on>;
pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off &sdc1_rclk_off>;
status = "ok";
};
&sdhc_2 {
vdd-supply = <&pm6150l_l9>;
qcom,vdd-voltage-level = <2950000 2950000>;
qcom,vdd-current-level = <0 800000>;
vdd-io-supply = <&pm6150l_l6>;
qcom,vdd-io-voltage-level = <1800000 3100000>;
qcom,vdd-io-current-level = <0 22000>;
pinctrl-names = "active", "sleep";
pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>;
pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;
cd-gpios = <&tlmm 99 GPIO_ACTIVE_LOW>;
status = "ok";
};
&L16A {
regulator-max-microvolt = <3304000>;
};
&L19A {
regulator-max-microvolt = <3304000>;
};
&L4C {
regulator-max-microvolt = <2912000>;
};
&L5C {
regulator-max-microvolt = <2912000>;
};
&sde_dp {
status="disabled";
};
&mdss_dp_pll {
status="disabled";
};
&mdss_mdp {
connectors = <&sde_rscc &sde_wb &sde_dsi>;
};
&qupv3_se1_i2c {
status = "ok";
lt9611: lt,lt9611@3b {
compatible = "lt,lt9611";
reg = <0x3b>;
interrupt-parent = <&tlmm>;
interrupts = <26 0>;
interrupt-names = "lt_irq";
lt,irq-gpio = <&tlmm 26 0x0>;
lt,reset-gpio = <&tlmm 20 0x0>;
lt,hdmi-en-gpio = <&tlmm 79 0x0>;
instance_id = <0>;
lt,non-pluggable;
lt,preferred-mode = "1920x1080";
pinctrl-names = "default";
pinctrl-0 = <&lt9611_pins>;
vdd-supply = <&pm6150_l13>;
vcc-supply = <&pm6150_l16>;
lt,supply-entries {
#address-cells = <1>;
#size-cells = <0>;
lt,supply-entry@0 {
reg = <0>;
lt,supply-name = "vdd";
lt,supply-min-voltage = <1800000>;
lt,supply-max-voltage = <1800000>;
lt,supply-enable-load = <200000>;
lt,supply-post-on-sleep = <50>;
};
lt,supply-entry@1 {
reg = <1>;
lt,supply-name = "vcc";
lt,supply-min-voltage = <3304000>;
lt,supply-max-voltage = <3304000>;
lt,supply-enable-load = <200000>;
lt,supply-post-on-sleep = <50>;
};
};
lt,customize-modes {
lt,customize-mode-id@0 {
lt,mode-h-active = <1920>;
lt,mode-h-front-porch = <88>;
lt,mode-h-pulse-width = <44>;
lt,mode-h-back-porch = <148>;
lt,mode-h-active-high;
lt,mode-v-active = <1080>;
lt,mode-v-front-porch = <4>;
lt,mode-v-pulse-width = <5>;
lt,mode-v-back-porch = <36>;
lt,mode-v-active-high;
lt,mode-refresh-rate = <60>;
lt,mode-clock-in-khz = <148500>;
};
};
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
lt9611_in: endpoint {
remote-endpoint = <&ext_dsi_out>;
};
};
};
};
};
&dsi_ext_bridge_hdmi_1080p {
qcom,mdss-dsi-ext-bridge = <0>;
};
&soc {
ext_dsi_bridge_display: qcom,dsi-display@50 {
label = "ext_dsi_bridge_display hdmi 1080p";
qcom,dsi-display-active;
qcom,display-type = "primary";
qcom,dsi-ctrl-num = <0>;
qcom,dsi-phy-num = <0>;
qcom,dsi-select-clocks = "mux_byte_clk0", "mux_pixel_clk0";
qcom,dsi-panel = <&dsi_ext_bridge_hdmi_1080p>;
};
};
&sde_dsi {
qcom,dsi-display-list = <&ext_dsi_bridge_display>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
ext_dsi_out: endpoint {
remote-endpoint = <&lt9611_in>;
};
};
};
};