/* 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 "sdxprairie-mtp.dtsi" &soc { /delete-node/ qcom,battery-data; codec_vreg: regulator-codec-tlv320aic3x { compatible = "regulator-fixed"; regulator-name = "codec_vreg"; startup-delay-us = <100>; gpio = <&tlmm 23 GPIO_ACTIVE_HIGH>; enable-active-high; }; snd_tlv3x: sound-auto { compatible = "qcom,sdx-asoc-snd-auto"; qcom,model = "sdx-auto-i2s-snd-card"; qcom,prim_mi2s_aux_master = <&prim_master>; qcom,prim_mi2s_aux_slave = <&prim_slave>; qcom,sec_mi2s_aux_master = <&sec_master>; qcom,sec_mi2s_aux_slave = <&sec_slave>; pinctrl-names = "default"; pinctrl-0 = <&a2b_cdc_sel_default>, <&i2s_mclk_active>; asoc-platform = <&pcm0>, <&pcm1>, <&voip>, <&voice>, <&loopback>, <&hostless>, <&afe>, <&routing>, <&pcm_dtmf>, <&host_pcm>, <&compress>; asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1", "msm-voip-dsp", "msm-pcm-voice", "msm-pcm-loopback", "msm-pcm-hostless", "msm-pcm-afe", "msm-pcm-routing", "msm-pcm-dtmf", "msm-voice-host-pcm", "msm-compress-dsp"; asoc-cpu = <&dai_pri_auxpcm>, <&mi2s_prim>, <&mi2s_sec>, <&dtmf_tx>, <&rx_capture_tx>, <&rx_playback_rx>, <&tx_capture_tx>, <&tx_playback_rx>, <&afe_pcm_rx>, <&afe_pcm_tx>, <&afe_proxy_rx>, <&afe_proxy_tx>, <&incall_record_rx>, <&incall_record_tx>, <&incall_music_rx>, <&dai_pri_tdm_rx_0>, <&dai_pri_tdm_tx_0>, <&dai_pri_tdm_rx_1>, <&dai_pri_tdm_tx_1>, <&dai_sec_tdm_rx_0>, <&dai_sec_tdm_tx_0>, <&dai_sec_tdm_rx_1>, <&dai_sec_tdm_tx_1>, <&dai_sec_auxpcm>, <&incall2_record_rx>, <&incall_music_2_rx>, <&incall_music_dl_rx>; asoc-cpu-names = "msm-dai-q6-auxpcm.1", "msm-dai-q6-mi2s.0", "msm-dai-q6-mi2s.1", "msm-dai-stub-dev.4", "msm-dai-stub-dev.5", "msm-dai-stub-dev.6", "msm-dai-stub-dev.7", "msm-dai-stub-dev.8", "msm-dai-q6-dev.224", "msm-dai-q6-dev.225", "msm-dai-q6-dev.241", "msm-dai-q6-dev.240", "msm-dai-q6-dev.32771", "msm-dai-q6-dev.32772", "msm-dai-q6-dev.32773", "msm-dai-q6-tdm.36864", "msm-dai-q6-tdm.36865", "msm-dai-q6-tdm.36866", "msm-dai-q6-tdm.36867", "msm-dai-q6-tdm.36880", "msm-dai-q6-tdm.36881", "msm-dai-q6-tdm.36882", "msm-dai-q6-tdm.36883", "msm-dai-q6-auxpcm.2", "msm-dai-q6-dev.32769", "msm-dai-q6-dev.32770", "msm-dai-q6-dev.32774"; asoc-codec = <&tlv320aic3x_codec>, <&stub_codec>; asoc-codec-names = "tlv320aic3x-codec", "msm-stub-codec.1"; qcom,msm_audio_ssr_devs = <&audio_apr>, <&q6core>; }; pps { compatible = "pps-gpio"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_pps>; gpios = <&tlmm 32 GPIO_ACTIVE_HIGH>; status = "okay"; }; qmi-tmd-devices { modem { modem_v2x: modem_v2x { qcom,qmi-dev-name = "modem_v2x"; #cooling-cells = <2>; }; }; }; }; &mpss_adsp_mem { reg = <0x90800000 0xf800000>; }; /* delete pm8150b nodes */ &thermal_zones { /delete-node/ pm8150b-wp-therm; /delete-node/ pm8150b_tz; /delete-node/ pm8150b-ibat-lvl0; /delete-node/ pm8150b-ibat-lvl1; /delete-node/ pm8150b-vbat-lvl0; /delete-node/ pm8150b-vbat-lvl1; /delete-node/ pm8150b-vbat-lvl2; /delete-node/ pm8150b-bcl-lvl0; /delete-node/ pm8150b-bcl-lvl1; /delete-node/ pm8150b-bcl-lvl2; /delete-node/ soc; /* update Tj thresholds */ mdm-core-0-step { trips { active-config0 { temperature = <95000>; hysteresis = <5000>; }; active-config1 { temperature = <100000>; hysteresis = <5000>; }; active-config2 { temperature = <105000>; hysteresis = <5000>; }; }; }; mdm-core-0-v2x-step { polling-delay-passive = <0>; polling-delay = <0>; thermal-sensors = <&tsens0 6>; thermal-governor = "step_wise"; wake-capable-sensor; trips { tj_v2x_config0: active-config0 { temperature = <105000>; hysteresis = <5000>; type = "passive"; }; tj_v2x_config1: active-config1 { temperature = <110000>; hysteresis = <5000>; type = "passive"; }; tj_v2x_config2: active-config2 { temperature = <115000>; hysteresis = <5000>; type = "passive"; }; }; cooling-maps { modem_tj0_v2x_cdev { trip = <&tj_v2x_config0>; cooling-device = <&modem_v2x 1 1>; }; modem_tj1_v2x_cdev { trip = <&tj_v2x_config1>; cooling-device = <&modem_v2x 2 2>; }; modem_tj2_v2x_cdev { trip = <&tj_v2x_config2>; cooling-device = <&modem_v2x 3 3>; }; }; }; }; &usb { extcon = <&vbus_detect>; }; &spmi_bus { /delete-node/ qpnp,fg; /delete-node/ bcl@1d00; /delete-node/ qcom,usb-pdphy@1700; /delete-node/ qcom,qpnp-smb5; /delete-node/ adc_tm@3500; /delete-node/ vadc@3100; /delete-node/ qcom,pm8150b@2; /delete-node/ qcom,pm8150b@3; }; &qnand_1 { status = "ok"; }; &blsp1_uart2b_hs { status = "okay"; }; &vbus_detect { status = "okay"; }; &snd_934x { status = "disabled"; }; &wcd9xxx_intc { status = "disabled"; }; &clock_audio_up { status = "disabled"; }; &wcd_rst_gpio { status = "disabled"; }; &wcd934x_cdc { status = "disabled"; }; &spi_2 { status = "okay"; can-controller@0 { compatible = "qcom,nxp,mpc5746c"; reg = <0>; interrupt-parent = <&tlmm>; interrupts = <103 0>; spi-max-frequency = <5000000>; qcom,clk-freq-mhz = <40000000>; qcom,max-can-channels = <2>; qcom,bits-per-word = <8>; qcom,support-can-fd; }; }; &i2c_3 { tlv320aic3x_codec: tlv320aic3x@18 { compatible = "ti,tlv320aic3x"; reg = <0x18>; gpio-reset = <&tlmm 92 0>; reset-inverted; AVDD-supply = <&codec_vreg>; IOVDD-supply = <&codec_vreg>; ai3x-ocmv = <1>; }; eeprom@52 { compatible = "atmel,24c128"; reg = <0x52>; pagesize = <32>; }; }; &i2c_4 { status = "okay"; smi130_gyro@68 { compatible = "smi130_gyro"; reg = <0x68>; pinctrl-names = "default"; pinctrl-0 = <&sensor_int1_default>; interrupt-parent = <&tlmm>; interrupts = <84 IRQ_TYPE_EDGE_RISING>; smi130_gyro,gpio_irq = <&tlmm 84 IRQ_TYPE_EDGE_RISING>; }; smi130_acc@18 { compatible = "smi130_acc"; reg = <0x18>; pinctrl-names = "default"; pinctrl-0 = <&sensor_int2_default>; interrupt-parent = <&tlmm>; interrupts = <85 IRQ_TYPE_EDGE_RISING>; }; iam20680@69 { compatible = "inven,iam20680"; reg = <0x69>; pinctrl-names = "default"; pinctrl-0 = <&sensor_int1_default>; interrupt-parent = <&tlmm>; interrupts = <84 IRQ_TYPE_EDGE_RISING>; axis_map_x = <1>; axis_map_y = <0>; axis_map_z = <2>; negate_x = <1>; negate_y = <0>; negate_z = <0>; inven,secondary_type = "none"; inven,aux_type = "none"; inven,read_only_slave_type = "none"; }; asm330@6b { compatible = "st,asm330lhh"; reg = <0x6b>; pinctrl-names = "default"; pinctrl-0 = <&sensor_int1_default>,<&sensor_enable_default>; asm330-enable-gpio = <&tlmm 87 0x1>; interrupt-parent = <&tlmm>; interrupts = <84 IRQ_TYPE_EDGE_RISING>; st,drdy-int-pin= <2>; qcom,regulator_check = <0>; /* 0:Disable 1:Enable */ qcom,asm330_hrtimer; }; }; &emac_hw { /delete-property/ vreg_rgmii-supply; pinctrl-names = "default"; pinctrl-0 = <&vreg_rgmii_off_default>; qcom,phy-reset-delay-msecs = <10>; }; ðqos_hw { /delete-property/ vreg_rgmii-supply; pinctrl-names = "default", "dev-emac_pin_pps_0", "dev-emac_pin_pps_1"; pinctrl-0 = <&vreg_rgmii_off_default>; pinctrl-1 = <&emac_pin_pps_0>; pinctrl-2 = <&emac_pin_pps_1>; qcom,phy-reset-delay-msecs = <10>; ipa-dma-rx-desc-cnt = <512>; ipa-dma-tx-desc-cnt = <512>; }; &vreg_rgmii_io_pads { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; }; &cnss_qca6390 { status = "disabled"; }; &soc { bluetooth: bt_qca6390 { compatible = "qca,qca6390"; qca,bt-reset-gpio = <&pmxprairie_gpios 6 0>; /* PWR_CTR1_VDD_PA */ qca,bt-vdd-pa-supply = <&vreg_conn_pa>; /* PWR_CTR2_VDD_1P8 */ qca,bt-chip-pwd-supply = <&vreg_conn_1p8>; qca,bt-vdd-vl-supply = <&pmxprairie_s3>; qca,bt-vdd-vm-supply = <&pmxprairie_s2>; qca,bt-vdd-vh-supply = <&pmxprairie_s4>; qca,bt-vdd-vl-voltage-level = <1000000 1000000>; qca,bt-vdd-vm-voltage-level = <1370000 1370000>; qca,bt-vdd-vh-voltage-level = <1904000 1904000>; qca,bt-vdd-vl-current-level = <0>; qca,bt-vdd-vm-current-level = <0>; qca,bt-vdd-vh-current-level = <450000>; }; }; &mhi_dev_qrtr { status = "disabled"; }; &soc { cnss_pcie: qcom,cnss-qca-converged{ compatible = "qcom,cnss-qca-converged"; qcom,converged-dt; qcom,wlan-rc-num = <0>; qcom,bus-type=<0>; qcom,notify-modem-status; qcom,msm-bus,name = "msm-cnss"; qcom,msm-bus,num-cases = <6>; qcom,msm-bus,num-paths = <1>; qcom,msm-bus,vectors-KBps = /* no vote */ , /* idle: 0-18 Mbps, ddr freq: 100 MHz */ , /* low: 18-60 Mbps, ddr freq: 200 MHz*/ , /* medium: 60-240 Mbps, ddr freq: 451.2 MHz */ , /* high: 240 - 800 Mbps, ddr freq: 451.2 MHz */ , /* very high: 800 - 1400 Mbps, ddr freq: 1555.2 MHz */ ; #address-cells=<1>; #size-cells=<1>; ranges = <0xa0000000 0xa0000000 0x10000000>, <0xb0000000 0xb0000000 0x10000>; vdd-wlan-ctrl1-supply = <&vreg_conn_pa>; vdd-wlan-ctrl2-supply = <&vreg_conn_1p8>; vdd-wlan-aon-supply = <&pmxprairie_s3>; vdd-wlan-rfa1-supply = <&pmxprairie_s2>; vdd-wlan-rfa3-supply = <&pmxprairie_s4>; wlan_vregs = "vdd-wlan-ctrl1", "vdd-wlan-ctrl2"; qcom,vdd-wlan-ctrl1-info = <0 0 0 0>; qcom,vdd-wlan-ctrl2-info = <0 0 0 0>; wlan-en-gpio = <&tlmm 52 0>; pinctrl-names = "wlan_en_active", "wlan_en_sleep"; pinctrl-0 = <&cnss_wlan_en_active>; pinctrl-1 = <&cnss_wlan_en_sleep>; chip_cfg@0 { reg = <0xa0000000 0x10000000>, <0xb0000000 0x10000>; reg-names = "smmu_iova_base", "smmu_iova_ipa"; supported-ids = <0x003e>; wlan_vregs = "vdd-wlan"; qcom,vdd-wlan-info = <0 0 0 10>; qcom,smmu-s1-enable; qcom,wlan-ramdump-dynamic = <0x200000>; }; chip_cfg@1 { reg = <0xa0000000 0x10000000>, <0xb0000000 0x10000>; reg-names = "smmu_iova_base", "smmu_iova_ipa"; supported-ids = <0x1101>; wlan_vregs = "vdd-wlan-aon", "vdd-wlan-rfa1", "vdd-wlan-rfa3"; qcom,vdd-wlan-aon-info = <1000000 1000000 0 0>; qcom,vdd-wlan-rfa1-info = <1370000 1370000 0 0>; qcom,vdd-wlan-rfa3-info = <1904000 1904000 450000 0>; qcom,wlan-ramdump-dynamic = <0x400000>; mhi,max-channels = <30>; mhi,timeout = <10000>; qcom,smmu-s1-enable; mhi_channels { #address-cells = <1>; #size-cells = <0>; mhi_chan@0 { reg = <0>; label = "LOOPBACK"; mhi,num-elements = <32>; mhi,event-ring = <1>; mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <0x14>; }; mhi_chan@1 { reg = <1>; label = "LOOPBACK"; mhi,num-elements = <32>; mhi,event-ring = <1>; mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <0x14>; }; mhi_chan@4 { reg = <4>; label = "DIAG"; mhi,num-elements = <32>; mhi,event-ring = <1>; mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <0x14>; }; mhi_chan@5 { reg = <5>; label = "DIAG"; mhi,num-elements = <32>; mhi,event-ring = <1>; mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <0x14>; }; mhi_chan@20 { reg = <20>; label = "IPCR"; mhi,num-elements = <32>; mhi,event-ring = <1>; mhi,chan-dir = <1>; mhi,data-type = <1>; mhi,doorbell-mode = <2>; mhi,ee = <0x14>; mhi,auto-start; }; mhi_chan@21 { reg = <21>; label = "IPCR"; mhi,num-elements = <32>; mhi,event-ring = <1>; mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <0x14>; mhi,auto-queue; mhi,auto-start; }; }; mhi_events { mhi_event@0 { mhi,num-elements = <32>; mhi,intmod = <1>; mhi,msi = <1>; mhi,priority = <1>; mhi,brstmode = <2>; mhi,data-type = <1>; }; mhi_event@1 { mhi,num-elements = <256>; mhi,intmod = <1>; mhi,msi = <2>; mhi,priority = <1>; mhi,brstmode = <2>; }; }; }; chip_cfg@2 { reg = <0xa0000000 0x10000000>, <0xb0000000 0x10000>; reg-names = "smmu_iova_base", "smmu_iova_ipa"; qcom,smmu-s1-enable; supported-ids = <0x1102>; wlan_vregs = "vdd-wlan-aon", "vdd-wlan-rfa1", "vdd-wlan-rfa3"; qcom,vdd-wlan-aon-info = <1000000 1000000 0 0>; qcom,vdd-wlan-rfa1-info = <1370000 1370000 0 0>; qcom,vdd-wlan-rfa3-info = <1904000 1904000 0 0>; qcom,wlan-ramdump-dynamic = <0x300000>; mhi,max-channels = <30>; mhi,timeout = <10000>; mhi,ee = <0x3>, <0x4>; mhi,ee-names = "SBL", "RDDM"; mhi,bhie-offset = <0x0324>; mhi_channels { mhi_chan@0 { reg = <0>; label = "LOOPBACK"; mhi,num-elements = <32>; mhi,event-ring = <1>; mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <0x14>; }; mhi_chan@1 { reg = <1>; label = "LOOPBACK"; mhi,num-elements = <32>; mhi,event-ring = <1>; mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <0x14>; }; mhi_chan@4 { reg = <4>; label = "DIAG"; mhi,num-elements = <32>; mhi,event-ring = <1>; mhi,chan-dir = <1>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <0x14>; }; mhi_chan@5 { reg = <5>; label = "DIAG"; mhi,num-elements = <32>; mhi,event-ring = <1>; mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <0x14>; }; mhi_chan@16 { reg = <16>; label = "IPCR"; mhi,num-elements = <32>; mhi,event-ring = <1>; mhi,chan-dir = <1>; mhi,data-type = <1>; mhi,doorbell-mode = <2>; mhi,ee = <0x14>; mhi,auto-start; }; mhi_chan@17 { reg = <17>; label = "IPCR"; mhi,num-elements = <32>; mhi,event-ring = <1>; mhi,chan-dir = <2>; mhi,data-type = <0>; mhi,doorbell-mode = <2>; mhi,ee = <0x14>; mhi,auto-queue; mhi,auto-start; }; }; mhi_events { mhi_event@0 { mhi,num-elements = <32>; mhi,intmod = <1>; mhi,msi = <1>; mhi,priority = <1>; mhi,brstmode = <2>; mhi,data-type = <1>; }; mhi_event@1 { mhi,num-elements = <256>; mhi,intmod = <1>; mhi,msi = <2>; mhi,priority = <1>; mhi,brstmode = <2>; }; }; }; }; }; &tlmm { wakeup_gpio_default: wakeup_gpio_default { mux { pins = "gpio96"; function = "gpio"; }; config { pins = "gpio96"; drive-strength = <2>; bias-pull-down; }; }; };