Bluetooth: hci_qca: Enable clocks required for BT SOC
Subsystems (5)
PATCH v3 1/2 Bluetooth: hci_qca: Enable clocks required for BT SOC
Instead of relying on other subsytem to turn ON clocks required for BT SoC to operate, voting them from the driver.
---
v3:
*Removed the function qca_setup_clock()
*For enabling and disabling clocks, directly called the functions
clk_prepare_enable and clk_disable_unprepare respectively.
--- drivers/bluetooth/hci_qca.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+)
drivers/bluetooth/hci_qca.c +16 -0
@@ -1755,6 +1755,13 @@ static int qca_regulator_enable(struct qca_serdev *qcadev) power->vregs_on = true; + ret =clk_prepare_enable (qcadev->susclk); +if (ret) { +/* Turn off regulators to overcome power leakage */ +qca_regulator_disable (qcadev); +return ret; + } +return 0 ; }
@@ -1773,6 +1780,9 @@ static void qca_regulator_disable(struct qca_serdev *qcadev)regulator_bulk_disable (power->num_vregs, power->vreg_bulk); power->vregs_on = false; + +if (qcadev->susclk) +clk_disable_unprepare (qcadev->susclk); } static int qca_init_regulators(struct qca_power *qca,
@@ -1839,6 +1849,12 @@ static int qca_serdev_probe(struct serdev_device *serdev) qcadev->bt_power->vregs_on = false; + qcadev->susclk =devm_clk_get_optional (&serdev->dev,NULL ); +if (IS_ERR (qcadev->susclk)) { +dev_err (&serdev->dev,"failed to acquire clk\n" ); +return PTR_ERR (qcadev->susclk); + } +device_property_read_u32 (&serdev->dev,"max-speed" , &qcadev->oper_speed);if (!qcadev->oper_speed)
Signature · 2 lines
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation
PATCH v3 2/2 dt-bindings: net: bluetooth: Add device tree bindings for QTI chip WCN3991
Add compatible string for the Qualcomm WCN3991 Bluetooth controller
---
v3:
*Updated clocks with <&rpmhcc RPMH_RF_CLK2>
--- Documentation/devicetree/bindings/net/qualcomm-bluetooth.txt | 3 +++ 1 file changed, 3 insertions(+)
Documentation/devicetree/bindings/net/qualcomm-bluetooth.txt +3 -0
@@ -11,6 +11,7 @@ Required properties: - compatible: should contain one of the following: * "qcom,qca6174-bt" * "qcom,wcn3990-bt" + * "qcom,wcn3991-bt" * "qcom,wcn3998-bt" Optional properties for compatible string qcom,qca6174-bt:
@@ -30,6 +31,7 @@ Optional properties for compatible string qcom,wcn399x-bt: - max-speed: see Documentation/devicetree/bindings/serial/slave-device.txt - firmware-name: specify the name of nvm firmware to load + - clocks: clock provided to the controller Examples:
@@ -56,5 +58,6 @@ serial@898000 { vddch0-supply = <&vreg_l25a_3p3>; max-speed = <3200000>; firmware-name = "crnv21.bin"; + clocks = <&rpmhcc RPMH_RF_CLK2>; }; };
Signature · 2 lines
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation
Marcel Holtmann
maintainerRe: [PATCH v3 2/2] dt-bindings: net: bluetooth: Add device tree bindings for QTI chip WCN3991
Hi Venkata,
Quoted 9 lines
Add compatible string for the Qualcomm WCN3991 Bluetooth controller
Signed-off-by Venkata Lakshmi Narayana Gubba <[email protected]>---
v3:
*Updated clocks with <&rpmhccRPMH_RF_CLK2>
---Documentation/devicetree/bindings/net/qualcomm-bluetooth.txt| 3 +++1 file changed, 3 insertions(+)
patch has been applied to bluetooth-next tree.
Regards
Marcel
Marcel Holtmann
maintainerHi Venkata,
Quoted 10 lines
Instead of relying on other subsytem to turn ON clocks required for BT SoC to operate, voting them from the driver.
Signed-off-by Venkata Lakshmi Narayana Gubba <[email protected]>---
v3:
*Removed the functionqca_setup_clock()
*For enabling and disabling clocks, directly called the functions
clk_prepare_enableandclk_disable_unpreparerespectively.
Quoted 3 lines
---
drivers/bluetooth/hci_qca.c| 16 ++++++++++++++++1 file changed, 16 insertions(+)
patch has been applied to bluetooth-next tree.
Regards
Marcel