Skip to content

Commit 5dcc6b1

Browse files
authored
Merge pull request #259 from quicjathot/qcom-6.18.y
FROMLIST: arm64: dts: qcom: qcm6490-idp: add and enable BT node
2 parents 0cf570b + 9244aa2 commit 5dcc6b1

1 file changed

Lines changed: 169 additions & 0 deletions

File tree

arch/arm64/boot/dts/qcom/qcm6490-idp.dts

Lines changed: 169 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636

3737
aliases {
3838
serial0 = &uart5;
39+
serial1 = &uart7;
3940
};
4041

4142
pm8350c_pwm_backlight: backlight {
@@ -194,6 +195,63 @@
194195

195196
#sound-dai-cells = <1>;
196197
};
198+
199+
wcn6750-pmu {
200+
compatible = "qcom,wcn6750-pmu";
201+
pinctrl-0 = <&bt_en>;
202+
pinctrl-names = "default";
203+
vddaon-supply = <&vreg_s7b_0p972>;
204+
vddasd-supply = <&vreg_l11c_2p8>;
205+
vddpmu-supply = <&vreg_s7b_0p972>;
206+
vddrfa0p8-supply = <&vreg_s7b_0p972>;
207+
vddrfa1p2-supply = <&vreg_s8b_1p272>;
208+
vddrfa1p7-supply = <&vreg_s1b_1p872>;
209+
vddrfa2p2-supply = <&vreg_s1c_2p19>;
210+
211+
bt-enable-gpios = <&tlmm 85 GPIO_ACTIVE_HIGH>;
212+
213+
regulators {
214+
vreg_pmu_rfa_cmn: ldo0 {
215+
regulator-name = "vreg_pmu_rfa_cmn";
216+
};
217+
218+
vreg_pmu_aon_0p59: ldo1 {
219+
regulator-name = "vreg_pmu_aon_0p59";
220+
};
221+
222+
vreg_pmu_wlcx_0p8: ldo2 {
223+
regulator-name = "vreg_pmu_wlcx_0p8";
224+
};
225+
226+
vreg_pmu_wlmx_0p85: ldo3 {
227+
regulator-name = "vreg_pmu_wlmx_0p85";
228+
};
229+
230+
vreg_pmu_btcmx_0p85: ldo4 {
231+
regulator-name = "vreg_pmu_btcmx_0p85";
232+
};
233+
234+
vreg_pmu_rfa_0p8: ldo5 {
235+
regulator-name = "vreg_pmu_rfa_0p8";
236+
};
237+
238+
vreg_pmu_rfa_1p2: ldo6 {
239+
regulator-name = "vreg_pmu_rfa_1p2";
240+
};
241+
242+
vreg_pmu_rfa_1p7: ldo7 {
243+
regulator-name = "vreg_pmu_rfa_1p7";
244+
};
245+
246+
vreg_pmu_pcie_0p9: ldo8 {
247+
regulator-name = "vreg_pmu_pcie_0p9";
248+
};
249+
250+
vreg_pmu_pcie_1p8: ldo9 {
251+
regulator-name = "vreg_pmu_pcie_1p8";
252+
};
253+
};
254+
};
197255
};
198256

199257
&apps_rsc {
@@ -702,6 +760,39 @@
702760
};
703761
};
704762

763+
&qup_uart7_cts {
764+
/*
765+
* Configure a bias-bus-hold on CTS to lower power
766+
* usage when Bluetooth is turned off. Bus hold will
767+
* maintain a low power state regardless of whether
768+
* the Bluetooth module drives the pin in either
769+
* direction or leaves the pin fully unpowered.
770+
*/
771+
bias-bus-hold;
772+
};
773+
774+
&qup_uart7_rts {
775+
/* We'll drive RTS, so no pull */
776+
drive-strength = <2>;
777+
bias-disable;
778+
};
779+
780+
&qup_uart7_rx {
781+
/*
782+
* Configure a pull-up on RX. This is needed to avoid
783+
* garbage data when the TX pin of the Bluetooth module is
784+
* in tri-state (module powered off or not driving the
785+
* signal yet).
786+
*/
787+
bias-pull-up;
788+
};
789+
790+
&qup_uart7_tx {
791+
/* We'll drive TX, so no pull */
792+
drive-strength = <2>;
793+
bias-disable;
794+
};
795+
705796
&qupv3_id_0 {
706797
status = "okay";
707798
};
@@ -927,6 +1018,59 @@
9271018
gpio-reserved-ranges = <32 2>, /* ADSP */
9281019
<48 4>; /* NFC */
9291020

1021+
bt_en: bt-en-state {
1022+
pins = "gpio85";
1023+
function = "gpio";
1024+
output-low;
1025+
bias-disable;
1026+
};
1027+
1028+
qup_uart7_sleep_cts: qup-uart7-sleep-cts-state {
1029+
pins = "gpio28";
1030+
function = "gpio";
1031+
/*
1032+
* Configure a bias-bus-hold on CTS to lower power
1033+
* usage when Bluetooth is turned off. Bus hold will
1034+
* maintain a low power state regardless of whether
1035+
* the Bluetooth module drives the pin in either
1036+
* direction or leaves the pin fully unpowered.
1037+
*/
1038+
bias-bus-hold;
1039+
};
1040+
1041+
qup_uart7_sleep_rts: qup-uart7-sleep-rts-state {
1042+
pins = "gpio29";
1043+
function = "gpio";
1044+
/*
1045+
* Configure pull-down on RTS. As RTS is active low
1046+
* signal, pull it low to indicate the BT SoC that it
1047+
* can wakeup the system anytime from suspend state by
1048+
* pulling RX low (by sending wakeup bytes).
1049+
*/
1050+
bias-pull-down;
1051+
};
1052+
1053+
qup_uart7_sleep_rx: qup-uart7-sleep-rx-state {
1054+
pins = "gpio31";
1055+
function = "gpio";
1056+
/*
1057+
* Configure a pull-up on RX. This is needed to avoid
1058+
* garbage data when the TX pin of the Bluetooth module
1059+
* is floating which may cause spurious wakeups.
1060+
*/
1061+
bias-pull-up;
1062+
};
1063+
1064+
qup_uart7_sleep_tx: qup-uart7-sleep-tx-state {
1065+
pins = "gpio30";
1066+
function = "gpio";
1067+
/*
1068+
* Configure pull-up on TX when it isn't actively driven
1069+
* to prevent BT SoC from receiving garbage during sleep.
1070+
*/
1071+
bias-pull-up;
1072+
};
1073+
9301074
sd_cd: sd-cd-state {
9311075
pins = "gpio91";
9321076
function = "gpio";
@@ -945,6 +1089,31 @@
9451089
status = "okay";
9461090
};
9471091

1092+
&uart7 {
1093+
/delete-property/ interrupts;
1094+
interrupts-extended = <&intc GIC_SPI 608 IRQ_TYPE_LEVEL_HIGH>,
1095+
<&tlmm 31 IRQ_TYPE_EDGE_FALLING>;
1096+
pinctrl-1 = <&qup_uart7_sleep_cts>,
1097+
<&qup_uart7_sleep_rts>,
1098+
<&qup_uart7_sleep_tx>,
1099+
<&qup_uart7_sleep_rx>;
1100+
pinctrl-names = "default",
1101+
"sleep";
1102+
1103+
status = "okay";
1104+
1105+
bluetooth: bluetooth {
1106+
compatible = "qcom,wcn6750-bt";
1107+
vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
1108+
vddaon-supply = <&vreg_pmu_aon_0p59>;
1109+
vddbtcmx-supply = <&vreg_pmu_btcmx_0p85>;
1110+
vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
1111+
vddrfa1p7-supply = <&vreg_pmu_rfa_1p7>;
1112+
vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
1113+
max-speed = <3200000>;
1114+
};
1115+
};
1116+
9481117
&ufs_mem_hc {
9491118
reset-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>;
9501119
vcc-supply = <&vreg_l7b_2p952>;

0 commit comments

Comments
 (0)