0001 // SPDX-License-Identifier: GPL-2.0
0002 // Copyright (c) 2018, Linaro Limited
0003
0004 #include <dt-bindings/gpio/gpio.h>
0005 #include "qcs404.dtsi"
0006 #include "pms405.dtsi"
0007 #include <dt-bindings/gpio/gpio.h>
0008 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
0009
0010 / {
0011 aliases {
0012 serial0 = &blsp1_uart2;
0013 serial1 = &blsp1_uart3;
0014 };
0015
0016 chosen {
0017 stdout-path = "serial0";
0018 };
0019
0020 vph_pwr: vph-pwr-regulator {
0021 compatible = "regulator-fixed";
0022 regulator-name = "vph_pwr";
0023 regulator-always-on;
0024 regulator-boot-on;
0025 };
0026
0027 vdd_ch0_3p3:
0028 vdd_esmps3_3p3: vdd-esmps3-3p3-regulator {
0029 compatible = "regulator-fixed";
0030 regulator-name = "eSMPS3_3P3";
0031
0032 regulator-min-microvolt = <3300000>;
0033 regulator-max-microvolt = <3300000>;
0034 regulator-always-on;
0035 };
0036
0037 usb3_vbus_reg: regulator-usb3-vbus {
0038 compatible = "regulator-fixed";
0039 regulator-name = "VBUS_BOOST_5V";
0040 regulator-min-microvolt = <5000000>;
0041 regulator-max-microvolt = <5000000>;
0042 gpio = <&pms405_gpios 3 GPIO_ACTIVE_HIGH>;
0043 pinctrl-names = "default";
0044 pinctrl-0 = <&usb_vbus_boost_pin>;
0045 vin-supply = <&vph_pwr>;
0046 enable-active-high;
0047
0048 /* TODO: Drop this when introducing role switching */
0049 regulator-always-on;
0050 };
0051 };
0052
0053 &blsp1_uart3 {
0054 status = "okay";
0055
0056 bluetooth {
0057 compatible = "qcom,wcn3990-bt";
0058 vddio-supply = <&vreg_l6_1p8>;
0059 vddxo-supply = <&vreg_l5_1p8>;
0060 vddrf-supply = <&vreg_l1_1p3>;
0061 vddch0-supply = <&vdd_ch0_3p3>;
0062
0063 local-bd-address = [ 02 00 00 00 5a ad ];
0064
0065 max-speed = <3200000>;
0066 };
0067 };
0068
0069 &blsp1_dma {
0070 qcom,controlled-remotely;
0071 };
0072
0073 &blsp2_dma {
0074 qcom,controlled-remotely;
0075 };
0076
0077 &gcc {
0078 protected-clocks = <GCC_BIMC_CDSP_CLK>,
0079 <GCC_CDSP_CFG_AHB_CLK>,
0080 <GCC_CDSP_BIMC_CLK_SRC>,
0081 <GCC_CDSP_TBU_CLK>,
0082 <141>, /* GCC_WCSS_Q6_AHB_CLK */
0083 <142>; /* GCC_WCSS_Q6_AXIM_CLK */
0084 };
0085
0086 &pms405_spmi_regulators {
0087 vdd_s3-supply = <&vph_pwr>;
0088
0089 pms405_s3: s3 {
0090 regulator-always-on;
0091 regulator-boot-on;
0092 regulator-name = "vdd_apc";
0093 regulator-initial-mode = <1>;
0094 regulator-min-microvolt = <1048000>;
0095 regulator-max-microvolt = <1384000>;
0096 };
0097 };
0098
0099 &pcie {
0100 status = "okay";
0101
0102 perst-gpio = <&tlmm 43 GPIO_ACTIVE_LOW>;
0103
0104 pinctrl-names = "default";
0105 pinctrl-0 = <&perst_state>;
0106 };
0107
0108 &pcie_phy {
0109 status = "okay";
0110
0111 vdda-vp-supply = <&vreg_l3_1p05>;
0112 vdda-vph-supply = <&vreg_l5_1p8>;
0113 };
0114
0115 &remoteproc_adsp {
0116 status = "okay";
0117 };
0118
0119 &remoteproc_cdsp {
0120 status = "okay";
0121 };
0122
0123 &remoteproc_wcss {
0124 status = "okay";
0125 };
0126
0127 &rpm_requests {
0128 pms405-regulators {
0129 compatible = "qcom,rpm-pms405-regulators";
0130
0131 vdd_s1-supply = <&vph_pwr>;
0132 vdd_s2-supply = <&vph_pwr>;
0133 vdd_s3-supply = <&vph_pwr>;
0134 vdd_s4-supply = <&vph_pwr>;
0135 vdd_s5-supply = <&vph_pwr>;
0136 vdd_l1_l2-supply = <&vreg_s5_1p35>;
0137 vdd_l3_l8-supply = <&vreg_s5_1p35>;
0138 vdd_l4-supply = <&vreg_s5_1p35>;
0139 vdd_l5_l6-supply = <&vreg_s4_1p8>;
0140 vdd_l7-supply = <&vph_pwr>;
0141 vdd_l9-supply = <&vreg_s5_1p35>;
0142 vdd_l10_l11_l12_l13-supply = <&vph_pwr>;
0143
0144 vreg_s4_1p8: s4 {
0145 regulator-min-microvolt = <1728000>;
0146 regulator-max-microvolt = <1920000>;
0147 };
0148
0149 vreg_s5_1p35: s5 {
0150 regulator-min-microvolt = <1352000>;
0151 regulator-max-microvolt = <1352000>;
0152 };
0153
0154 vreg_l1_1p3: l1 {
0155 regulator-min-microvolt = <1240000>;
0156 regulator-max-microvolt = <1352000>;
0157 };
0158
0159 vreg_l2_1p275: l2 {
0160 regulator-min-microvolt = <1048000>;
0161 regulator-max-microvolt = <1280000>;
0162 };
0163
0164 vreg_l3_1p05: l3 {
0165 regulator-min-microvolt = <1048000>;
0166 regulator-max-microvolt = <1160000>;
0167 };
0168
0169 vreg_l4_1p2: l4 {
0170 regulator-min-microvolt = <1144000>;
0171 regulator-max-microvolt = <1256000>;
0172 };
0173
0174 vreg_l5_1p8: l5 {
0175 regulator-min-microvolt = <1800000>;
0176 regulator-max-microvolt = <1800000>;
0177 };
0178
0179 vreg_l6_1p8: l6 {
0180 regulator-min-microvolt = <1800000>;
0181 regulator-max-microvolt = <1800000>;
0182 regulator-always-on;
0183 };
0184
0185 vreg_l7_1p8: l7 {
0186 regulator-min-microvolt = <1616000>;
0187 regulator-max-microvolt = <3000000>;
0188 };
0189
0190 vreg_l8_1p2: l8 {
0191 regulator-min-microvolt = <1136000>;
0192 regulator-max-microvolt = <1352000>;
0193 };
0194
0195 vreg_l10_3p3: l10 {
0196 regulator-min-microvolt = <2936000>;
0197 regulator-max-microvolt = <3088000>;
0198 };
0199
0200 vreg_l11_sdc2: l11 {
0201 regulator-min-microvolt = <2696000>;
0202 regulator-max-microvolt = <3304000>;
0203 };
0204
0205 vreg_l12_3p3: l12 {
0206 regulator-min-microvolt = <3050000>;
0207 regulator-max-microvolt = <3300000>;
0208 };
0209
0210 vreg_l13_3p3: l13 {
0211 regulator-min-microvolt = <3000000>;
0212 regulator-max-microvolt = <3300000>;
0213 };
0214 };
0215 };
0216
0217 &sdcc1 {
0218 status = "okay";
0219
0220 supports-cqe;
0221 mmc-ddr-1_8v;
0222 mmc-hs400-1_8v;
0223 bus-width = <8>;
0224 non-removable;
0225
0226 pinctrl-names = "default", "sleep";
0227 pinctrl-0 = <&sdc1_on>;
0228 pinctrl-1 = <&sdc1_off>;
0229 };
0230
0231 &tlmm {
0232 perst_state: perst {
0233 pins = "gpio43";
0234 function = "gpio";
0235
0236 drive-strength = <2>;
0237 bias-disable;
0238 output-low;
0239 };
0240
0241 sdc1_on: sdc1-on {
0242 clk {
0243 pins = "sdc1_clk";
0244 bias-disable;
0245 drive-strength = <16>;
0246 };
0247
0248 cmd {
0249 pins = "sdc1_cmd";
0250 bias-pull-up;
0251 drive-strength = <10>;
0252 };
0253
0254 data {
0255 pins = "sdc1_data";
0256 bias-pull-up;
0257 drive-strength = <10>;
0258 };
0259
0260 rclk {
0261 pins = "sdc1_rclk";
0262 bias-pull-down;
0263 };
0264 };
0265
0266 sdc1_off: sdc1-off {
0267 clk {
0268 pins = "sdc1_clk";
0269 bias-disable;
0270 drive-strength = <2>;
0271 };
0272
0273 cmd {
0274 pins = "sdc1_cmd";
0275 bias-pull-up;
0276 drive-strength = <2>;
0277 };
0278
0279 data {
0280 pins = "sdc1_data";
0281 bias-pull-up;
0282 drive-strength = <2>;
0283 };
0284
0285 rclk {
0286 pins = "sdc1_rclk";
0287 bias-pull-down;
0288 };
0289 };
0290
0291 usb3_id_pin: usb3-id-pin {
0292 pinmux {
0293 pins = "gpio116";
0294 function = "gpio";
0295 };
0296
0297 pinconf {
0298 pins = "gpio116";
0299 drive-strength = <2>;
0300 bias-pull-up;
0301 input-enable;
0302 };
0303 };
0304 };
0305
0306 &pms405_gpios {
0307 usb_vbus_boost_pin: usb-vbus-boost-state {
0308 pinconf {
0309 pins = "gpio3";
0310 function = PMIC_GPIO_FUNC_NORMAL;
0311 output-low;
0312 power-source = <1>;
0313 };
0314 };
0315 usb3_vbus_pin: usb3-vbus-state {
0316 pinconf {
0317 pins = "gpio12";
0318 function = PMIC_GPIO_FUNC_NORMAL;
0319 input-enable;
0320 bias-pull-down;
0321 power-source = <1>;
0322 };
0323 };
0324 };
0325
0326 &usb2 {
0327 status = "okay";
0328 };
0329
0330 &usb2_phy_sec {
0331 vdd-supply = <&vreg_l4_1p2>;
0332 vdda1p8-supply = <&vreg_l5_1p8>;
0333 vdda3p3-supply = <&vreg_l12_3p3>;
0334 status = "okay";
0335 };
0336
0337 &usb3 {
0338 status = "okay";
0339
0340 };
0341
0342 &usb3_dwc3 {
0343 dr_mode = "host";
0344 };
0345
0346 &usb2_phy_prim {
0347 vdd-supply = <&vreg_l4_1p2>;
0348 vdda1p8-supply = <&vreg_l5_1p8>;
0349 vdda3p3-supply = <&vreg_l12_3p3>;
0350 status = "okay";
0351 };
0352
0353 &usb3_phy {
0354 vdd-supply = <&vreg_l3_1p05>;
0355 vdda1p8-supply = <&vreg_l5_1p8>;
0356 status = "okay";
0357 };
0358
0359 &wifi {
0360 status = "okay";
0361 vdd-0.8-cx-mx-supply = <&vreg_l2_1p275>;
0362 vdd-1.8-xo-supply = <&vreg_l5_1p8>;
0363 vdd-1.3-rfa-supply = <&vreg_l1_1p3>;
0364 };
0365
0366 /* PINCTRL - additions to nodes defined in qcs404.dtsi */
0367
0368 &blsp1_uart2_default {
0369 rx {
0370 drive-strength = <2>;
0371 bias-disable;
0372 };
0373
0374 tx {
0375 drive-strength = <2>;
0376 bias-disable;
0377 };
0378 };
0379
0380 &blsp1_uart3_default {
0381 cts {
0382 pins = "gpio84";
0383 bias-disable;
0384 };
0385
0386 rts-tx {
0387 pins = "gpio85", "gpio82";
0388 drive-strength = <2>;
0389 bias-disable;
0390 };
0391
0392 rx {
0393 pins = "gpio83";
0394 bias-pull-up;
0395 };
0396 };