1 | - Patch 1/4 Add description of the PMU of the WCN6750 module. | 1 | Resending the below reviewed patches after fixing the regulator warnings in v7 P1. |
---|---|---|---|
2 | - Patch 2/4 add and enable BT node for qcs6490-rb3gen board. | 2 | - Patch 1/2 Add and enable BT node for qcs6490-rb3gen board. |
3 | - Patch 3/4 use the power sequencer for wcn6750. | 3 | - Patch 2/2 Use the power sequencer for wcn6750. |
4 | - Patch 4/4 add support for the WCN6750 PMU. | ||
5 | 4 | ||
6 | ---- | 5 | ---- |
6 | Changes from v7: | ||
7 | * updated P1 & P2 with tag: Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> | ||
8 | * Link to v7: https://lore.kernel.org/lkml/20250107134157.211702-1-quic_janathot@quicinc.com/#t | ||
9 | |||
10 | Changes from v6: | ||
11 | * Elaborated the commit message with more information. | ||
12 | * Link to v6: https://lore.kernel.org/lkml/20241223135700.22660-1-quic_janathot@quicinc.com/ | ||
13 | |||
14 | Changes from v5: | ||
15 | * Update the wcn6750 required properties in bindings. | ||
16 | * Link to v5: https://lore.kernel.org/linux-arm-msm/20241209103455.9675-1-quic_janathot@quicinc.com/ | ||
17 | |||
18 | Changes from v4: | ||
19 | * Added reviewed tag by Krzysztof in p1 | ||
20 | * Updated the p2 commit message with sw_ctrl and wifi-enable are | ||
21 | handled in wifi FW. | ||
22 | * Added blank line between the nodes in p2 | ||
23 | * Placed the structures in proper order in p4 | ||
24 | * Link to v4: https://lore.kernel.org/all/20241204131706.20791-1-quic_janathot@quicinc.com/ | ||
25 | |||
7 | Changes from v3: | 26 | Changes from v3: |
8 | * Defined the PMU node and used the its output to power up BT | 27 | * Defined the PMU node and used the its output to power up BT |
9 | * Used power sequencer for wcn wcn6750 module | 28 | * Used power sequencer for wcn wcn6750 module |
10 | * Split the patch to multiple as per subtree | 29 | * Split the patch to multiple as per subtree |
11 | * Add description of the PMU of the WCN6750 module | 30 | * Add description of the PMU of the WCN6750 module |
12 | * Include separate UART state node for sleep pin configuarion | 31 | * Include separate UART state node for sleep pin configuarion |
13 | * Link to v3: https://lore.kernel.org/linux-arm-msm/20241022104600.3228-1-quic_janathot@quicinc.com/ | 32 | * Link to v3: https://lore.kernel.org/linux-arm-msm/20241022104600.3228-1-quic_janathot@quicinc.com/ |
33 | |||
14 | Changes from v2: | 34 | Changes from v2: |
15 | * Sorted nodes alphabetically | 35 | * Sorted nodes alphabetically |
16 | * Link to v2: https://lore.kernel.org/linux-arm-msm/20241010105107.30118-1-quic_janathot@quicinc.com/ | 36 | * Link to v2: https://lore.kernel.org/linux-arm-msm/20241010105107.30118-1-quic_janathot@quicinc.com/ |
37 | |||
17 | Changes from v1: | 38 | Changes from v1: |
18 | * Corrected the board name in subject | 39 | * Corrected the board name in subject |
19 | * Link to v1: https://lore.kernel.org/linux-arm-msm/20241009111436.23473-1-quic_janathot@quicinc.com/ | 40 | * Link to v1: https://lore.kernel.org/linux-arm-msm/20241009111436.23473-1-quic_janathot@quicinc.com/ |
20 | Janaki Ramaiah Thota (4): | 41 | Janaki Ramaiah Thota (2): |
21 | regulator:·dt-bindings:·qcom,qca6390-pmu:·document wcn6750-pmu | ||
22 | arm64: dts: qcom: qcs6490-rb3gen: add and enable BT node | 42 | arm64: dts: qcom: qcs6490-rb3gen: add and enable BT node |
23 | Bluetooth: hci_qca: use the power sequencer for wcn6750 | 43 | Bluetooth: hci_qca: use the power sequencer for wcn6750 |
24 | power: sequencing: qcom-wcn: add support for the WCN6750 PMU | ||
25 | 44 | ||
26 | .../bindings/regulator/qcom,qca6390-pmu.yaml | 27 +++ | 45 | arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts | 168 ++++++++++++++++++- |
27 | arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts | 165 +++++++++++++++++- | 46 | drivers/bluetooth/hci_qca.c | 2 +- |
28 | drivers/bluetooth/hci_qca.c | 2 +- | 47 | 2 files changed, 168 insertions(+), 2 deletions(-) |
29 | drivers/power/sequencing/pwrseq-qcom-wcn.c | 22 +++ | ||
30 | 4 files changed, 214 insertions(+), 2 deletions(-) | ||
31 | 48 | ||
32 | -- | 49 | -- |
33 | The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, | ||
34 | a Linux Foundation Collaborative Project | ||
35 | diff view generated by jsdifflib |
Deleted patch | |||
---|---|---|---|
1 | Add description of the PMU of the WCN6750 module. | ||
2 | 1 | ||
3 | Signed-off-by: Janaki Ramaiah Thota <quic_janathot@quicinc.com> | ||
4 | --- | ||
5 | .../bindings/regulator/qcom,qca6390-pmu.yaml | 27 +++++++++++++++++++ | ||
6 | 1 file changed, 27 insertions(+) | ||
7 | |||
8 | diff --git a/Documentation/devicetree/bindings/regulator/qcom,qca6390-pmu.yaml b/Documentation/devicetree/bindings/regulator/qcom,qca6390-pmu.yaml | ||
9 | index XXXXXXX..XXXXXXX 100644 | ||
10 | --- a/Documentation/devicetree/bindings/regulator/qcom,qca6390-pmu.yaml | ||
11 | +++ b/Documentation/devicetree/bindings/regulator/qcom,qca6390-pmu.yaml | ||
12 | @@ -XXX,XX +XXX,XX @@ properties: | ||
13 | compatible: | ||
14 | enum: | ||
15 | - qcom,qca6390-pmu | ||
16 | + - qcom,wcn6750-pmu | ||
17 | - qcom,wcn6855-pmu | ||
18 | - qcom,wcn7850-pmu | ||
19 | |||
20 | @@ -XXX,XX +XXX,XX @@ properties: | ||
21 | vddaon-supply: | ||
22 | description: VDD_AON supply regulator handle | ||
23 | |||
24 | + vddasd-supply: | ||
25 | + description: VDD_ASD supply regulator handle | ||
26 | + | ||
27 | vdddig-supply: | ||
28 | description: VDD_DIG supply regulator handle | ||
29 | |||
30 | @@ -XXX,XX +XXX,XX @@ properties: | ||
31 | vddio1p2-supply: | ||
32 | description: VDD_IO_1P2 supply regulator handle | ||
33 | |||
34 | + vddrfa0p8-supply: | ||
35 | + description: VDD_RFA_0P8 supply regulator handle | ||
36 | + | ||
37 | vddrfa0p95-supply: | ||
38 | description: VDD_RFA_0P95 supply regulator handle | ||
39 | |||
40 | @@ -XXX,XX +XXX,XX @@ properties: | ||
41 | vddrfa1p3-supply: | ||
42 | description: VDD_RFA_1P3 supply regulator handle | ||
43 | |||
44 | + vddrfa1p7-supply: | ||
45 | + description: VDD_RFA_1P7 supply regulator handle | ||
46 | + | ||
47 | vddrfa1p8-supply: | ||
48 | description: VDD_RFA_1P8 supply regulator handle | ||
49 | |||
50 | vddrfa1p9-supply: | ||
51 | description: VDD_RFA_1P9 supply regulator handle | ||
52 | |||
53 | + vddrfa2p2-supply: | ||
54 | + description: VDD_RFA_2P2 supply regulator handle | ||
55 | + | ||
56 | vddpcie1p3-supply: | ||
57 | description: VDD_PCIE_1P3 supply regulator handle | ||
58 | |||
59 | @@ -XXX,XX +XXX,XX @@ allOf: | ||
60 | - vddpcie1p3-supply | ||
61 | - vddpcie1p9-supply | ||
62 | - vddio-supply | ||
63 | + - if: | ||
64 | + properties: | ||
65 | + compatible: | ||
66 | + contains: | ||
67 | + const: qcom,wcn6750-pmu | ||
68 | + then: | ||
69 | + required: | ||
70 | + - vddaon-supply | ||
71 | + - vddasd-supply | ||
72 | + - vddpmu-supply | ||
73 | + - vddrfa0p8-supply | ||
74 | + - vddrfa1p2-supply | ||
75 | + - vddrfa1p7-supply | ||
76 | + - vddrfa2p2-supply | ||
77 | - if: | ||
78 | properties: | ||
79 | compatible: | ||
80 | -- | ||
81 | The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, | ||
82 | a Linux Foundation Collaborative Project | diff view generated by jsdifflib |
1 | Add a node for the PMU module of the WCN6750 present on the | 1 | Add the PMU node for WCN6750 present on the qcs6490-rb3gen |
---|---|---|---|
2 | qcs6490-rb3gen board and assign its power outputs to the Bluetooth | 2 | board and assign its power outputs to the Bluetooth module. |
3 | module. | 3 | |
4 | In WCN6750 module sw_ctrl and wifi-enable pins are handled | ||
5 | in the wifi controller firmware. Therefore, it is not required | ||
6 | to have those pins' entries in the PMU node. | ||
4 | 7 | ||
5 | Signed-off-by: Janaki Ramaiah Thota <quic_janathot@quicinc.com> | 8 | Signed-off-by: Janaki Ramaiah Thota <quic_janathot@quicinc.com> |
9 | Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> | ||
6 | --- | 10 | --- |
7 | arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts | 165 ++++++++++++++++++- | 11 | arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts | 168 ++++++++++++++++++- |
8 | 1 file changed, 164 insertions(+), 1 deletion(-) | 12 | 1 file changed, 167 insertions(+), 1 deletion(-) |
9 | 13 | ||
10 | diff --git a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts | 14 | diff --git a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts |
11 | index XXXXXXX..XXXXXXX 100644 | 15 | index XXXXXXX..XXXXXXX 100644 |
12 | --- a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts | 16 | --- a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts |
13 | +++ b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts | 17 | +++ b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts |
... | ... | ||
17 | - * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved. | 21 | - * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved. |
18 | + * Copyright (c) 2023-2024 Qualcomm Innovation Center, Inc. All rights reserved. | 22 | + * Copyright (c) 2023-2024 Qualcomm Innovation Center, Inc. All rights reserved. |
19 | */ | 23 | */ |
20 | 24 | ||
21 | /dts-v1/; | 25 | /dts-v1/; |
22 | @@ -XXX,XX +XXX,XX @@ | 26 | @@ -XXX,XX +XXX,XX @@ / { |
23 | 27 | ||
24 | aliases { | 28 | aliases { |
25 | serial0 = &uart5; | 29 | serial0 = &uart5; |
26 | + serial1 = &uart7; | 30 | + serial1 = &uart7; |
27 | }; | 31 | }; |
28 | 32 | ||
29 | chosen { | 33 | chosen { |
30 | @@ -XXX,XX +XXX,XX @@ | 34 | @@ -XXX,XX +XXX,XX @@ vph_pwr: vph-pwr-regulator { |
31 | regulator-min-microvolt = <3700000>; | 35 | regulator-min-microvolt = <3700000>; |
32 | regulator-max-microvolt = <3700000>; | 36 | regulator-max-microvolt = <3700000>; |
33 | }; | 37 | }; |
34 | + | 38 | + |
35 | + wcn6750-pmu { | 39 | + wcn6750-pmu { |
... | ... | ||
89 | + }; | 93 | + }; |
90 | + }; | 94 | + }; |
91 | }; | 95 | }; |
92 | 96 | ||
93 | &apps_rsc { | 97 | &apps_rsc { |
94 | @@ -XXX,XX +XXX,XX @@ | 98 | @@ -XXX,XX +XXX,XX @@ &pon_resin { |
95 | status = "okay"; | 99 | status = "okay"; |
96 | }; | 100 | }; |
97 | 101 | ||
98 | +&qup_uart7_cts { | 102 | +&qup_uart7_cts { |
99 | + /* | 103 | + /* |
100 | + * Configure a bias-bus-hold on CTS to lower power | 104 | + * Configure a bias-bus-hold on CTS to lower power |
101 | + * usage when Bluetooth is turned off. Bus hold will | 105 | + * usage when Bluetooth is turned off. Bus hold will |
... | ... | ||
129 | +}; | 133 | +}; |
130 | + | 134 | + |
131 | &qupv3_id_0 { | 135 | &qupv3_id_0 { |
132 | status = "okay"; | 136 | status = "okay"; |
133 | }; | 137 | }; |
134 | @@ -XXX,XX +XXX,XX @@ | 138 | @@ -XXX,XX +XXX,XX @@ &sdhc_2 { |
135 | &tlmm { | 139 | &tlmm { |
136 | gpio-reserved-ranges = <32 2>, /* ADSP */ | 140 | gpio-reserved-ranges = <32 2>, /* ADSP */ |
137 | <48 4>; /* NFC */ | 141 | <48 4>; /* NFC */ |
142 | + | ||
138 | + bt_en: bt-en-state { | 143 | + bt_en: bt-en-state { |
139 | + pins = "gpio85"; | 144 | + pins = "gpio85"; |
140 | + function = "gpio"; | 145 | + function = "gpio"; |
141 | + output-low; | 146 | + output-low; |
142 | + bias-disable; | 147 | + bias-disable; |
143 | + }; | 148 | + }; |
149 | + | ||
144 | + qup_uart7_sleep: qup_uart7_sleep { | 150 | + qup_uart7_sleep: qup_uart7_sleep { |
145 | + qup_uart7_sleep_cts: qup-uart7-sleep-cts-state { | 151 | + qup_uart7_sleep_cts: qup-uart7-sleep-cts-state { |
146 | + pins = "gpio28"; | 152 | + pins = "gpio28"; |
147 | + function = "gpio"; | 153 | + function = "gpio"; |
148 | + /* | 154 | + /* |
... | ... | ||
199 | + interrupts-extended = <&intc GIC_SPI 608 IRQ_TYPE_LEVEL_HIGH>, | 205 | + interrupts-extended = <&intc GIC_SPI 608 IRQ_TYPE_LEVEL_HIGH>, |
200 | + <&tlmm 31 IRQ_TYPE_EDGE_FALLING>; | 206 | + <&tlmm 31 IRQ_TYPE_EDGE_FALLING>; |
201 | + pinctrl-1 = <&qup_uart7_sleep>; | 207 | + pinctrl-1 = <&qup_uart7_sleep>; |
202 | + pinctrl-names = "default", "sleep"; | 208 | + pinctrl-names = "default", "sleep"; |
203 | + status = "okay"; | 209 | + status = "okay"; |
210 | + | ||
204 | + bluetooth: bluetooth { | 211 | + bluetooth: bluetooth { |
205 | + compatible = "qcom,wcn6750-bt"; | 212 | + compatible = "qcom,wcn6750-bt"; |
206 | + vddrfacmn-supply = <&vreg_pmu_rfa_cmn>; | 213 | + vddrfacmn-supply = <&vreg_pmu_rfa_cmn>; |
207 | + vddaon-supply = <&vreg_pmu_aon_0p59>; | 214 | + vddaon-supply = <&vreg_pmu_aon_0p59>; |
208 | + vddbtcmx-supply = <&vreg_pmu_btcmx_0p85>; | 215 | + vddbtcmx-supply = <&vreg_pmu_btcmx_0p85>; |
... | ... | diff view generated by jsdifflib |
1 | Older boards are having entry "enable-gpios" in dts, we can safely assume | 1 | Older boards are having entry "enable-gpios" in dts, we can safely assume |
---|---|---|---|
2 | latest boards which are supporting PMU node enrty will support power | 2 | latest boards which are supporting PMU node enrty will support power |
3 | sequencer. | 3 | sequencer. |
4 | 4 | ||
5 | Signed-off-by: Janaki Ramaiah Thota <quic_janathot@quicinc.com> | 5 | Signed-off-by: Janaki Ramaiah Thota <quic_janathot@quicinc.com> |
6 | Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> | ||
6 | --- | 7 | --- |
7 | drivers/bluetooth/hci_qca.c | 2 +- | 8 | drivers/bluetooth/hci_qca.c | 2 +- |
8 | 1 file changed, 1 insertion(+), 1 deletion(-) | 9 | 1 file changed, 1 insertion(+), 1 deletion(-) |
9 | 10 | ||
10 | diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c | 11 | diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c |
... | ... | diff view generated by jsdifflib |
Deleted patch | |||
---|---|---|---|
1 | Enable support for controlling the power-up sequence of the PMU inside | ||
2 | the WCN6750 model. | ||
3 | 1 | ||
4 | Signed-off-by: Janaki Ramaiah Thota <quic_janathot@quicinc.com> | ||
5 | --- | ||
6 | drivers/power/sequencing/pwrseq-qcom-wcn.c | 22 ++++++++++++++++++++++ | ||
7 | 1 file changed, 22 insertions(+) | ||
8 | |||
9 | diff --git a/drivers/power/sequencing/pwrseq-qcom-wcn.c b/drivers/power/sequencing/pwrseq-qcom-wcn.c | ||
10 | index XXXXXXX..XXXXXXX 100644 | ||
11 | --- a/drivers/power/sequencing/pwrseq-qcom-wcn.c | ||
12 | +++ b/drivers/power/sequencing/pwrseq-qcom-wcn.c | ||
13 | @@ -XXX,XX +XXX,XX @@ static const struct pwrseq_qcom_wcn_pdata pwrseq_wcn6855_of_data = { | ||
14 | .targets = pwrseq_qcom_wcn6855_targets, | ||
15 | }; | ||
16 | |||
17 | +static const char *const pwrseq_wcn6750_vregs[] = { | ||
18 | + "vddaon", | ||
19 | + "vddasd", | ||
20 | + "vddpmu", | ||
21 | + "vddrfa0p8", | ||
22 | + "vddrfa1p2", | ||
23 | + "vddrfa1p7", | ||
24 | + "vddrfa2p2", | ||
25 | +}; | ||
26 | + | ||
27 | +static const struct pwrseq_qcom_wcn_pdata pwrseq_wcn6750_of_data = { | ||
28 | + .vregs = pwrseq_wcn6750_vregs, | ||
29 | + .num_vregs = ARRAY_SIZE(pwrseq_wcn6750_vregs), | ||
30 | + .pwup_delay_ms = 50, | ||
31 | + .gpio_enable_delay_ms = 5, | ||
32 | + .targets = pwrseq_qcom_wcn_targets, | ||
33 | +}; | ||
34 | + | ||
35 | static const char *const pwrseq_wcn7850_vregs[] = { | ||
36 | "vdd", | ||
37 | "vddio", | ||
38 | @@ -XXX,XX +XXX,XX @@ static const struct of_device_id pwrseq_qcom_wcn_of_match[] = { | ||
39 | .compatible = "qcom,wcn7850-pmu", | ||
40 | .data = &pwrseq_wcn7850_of_data, | ||
41 | }, | ||
42 | + { | ||
43 | + .compatible = "qcom,wcn6750-pmu", | ||
44 | + .data = &pwrseq_wcn6750_of_data, | ||
45 | + }, | ||
46 | { } | ||
47 | }; | ||
48 | MODULE_DEVICE_TABLE(of, pwrseq_qcom_wcn_of_match); | ||
49 | -- | ||
50 | The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, | ||
51 | a Linux Foundation Collaborative Project | diff view generated by jsdifflib |