2023-12-05 11:09:28

by Bartosz Golaszewski

[permalink] [raw]
Subject: [PATCH 1/2] Bluetooth: qca: add regulators for QCA6390

From: Bartosz Golaszewski <[email protected]>

Add regulators for the QCA6390 module present on the Qualcomm RB5 board.

Signed-off-by: Bartosz Golaszewski <[email protected]>
---
drivers/bluetooth/hci_qca.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c
index 35f74f209d1f..7f25931a946e 100644
--- a/drivers/bluetooth/hci_qca.c
+++ b/drivers/bluetooth/hci_qca.c
@@ -2044,7 +2044,15 @@ static const struct qca_device_data qca_soc_data_qca2066 __maybe_unused = {

static const struct qca_device_data qca_soc_data_qca6390 __maybe_unused = {
.soc_type = QCA_QCA6390,
- .num_vregs = 0,
+ .vregs = (struct qca_vreg []) {
+ { "vddio", 20000 },
+ { "vddaon", 100000 },
+ { "vddpmu", 1250000 },
+ { "vddrfa1", 200000 },
+ { "vddrfa2", 400000 },
+ { "vddrfa3", 400000 },
+ },
+ .num_vregs = 6,
};

static const struct qca_device_data qca_soc_data_wcn6750 __maybe_unused = {
--
2.40.1



2023-12-05 11:09:30

by Bartosz Golaszewski

[permalink] [raw]
Subject: [PATCH 2/2] Bluetooth: qca: run the power-on/off sequence for QCA6390 too

From: Bartosz Golaszewski <[email protected]>

The Bluetooth module on QCA6390 needs to be powered-on by enabling the
relevant regulators and driving the enable GPIO high. We can reuse the
power sequence for the WNC models.

Signed-off-by: Bartosz Golaszewski <[email protected]>
---
drivers/bluetooth/hci_qca.c | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c
index 7f25931a946e..351ba904c8c2 100644
--- a/drivers/bluetooth/hci_qca.c
+++ b/drivers/bluetooth/hci_qca.c
@@ -1788,6 +1788,7 @@ static int qca_power_on(struct hci_dev *hdev)
case QCA_WCN6750:
case QCA_WCN6855:
case QCA_WCN7850:
+ case QCA_QCA6390:
ret = qca_regulator_init(hu);
break;

@@ -2137,6 +2138,7 @@ static void qca_power_shutdown(struct hci_uart *hu)

case QCA_WCN6750:
case QCA_WCN6855:
+ case QCA_QCA6390:
gpiod_set_value_cansleep(qcadev->bt_en, 0);
msleep(100);
qca_regulator_disable(qcadev);
@@ -2284,6 +2286,7 @@ static int qca_serdev_probe(struct serdev_device *serdev)
case QCA_WCN6750:
case QCA_WCN6855:
case QCA_WCN7850:
+ case QCA_QCA6390:
qcadev->bt_power = devm_kzalloc(&serdev->dev,
sizeof(struct qca_power),
GFP_KERNEL);
@@ -2394,6 +2397,7 @@ static void qca_serdev_remove(struct serdev_device *serdev)
case QCA_WCN6750:
case QCA_WCN6855:
case QCA_WCN7850:
+ case QCA_QCA6390:
if (power->vregs_on) {
qca_power_shutdown(&qcadev->serdev_hu);
break;
--
2.40.1


2023-12-05 11:47:04

by Johan Hovold

[permalink] [raw]
Subject: Re: [PATCH 2/2] Bluetooth: qca: run the power-on/off sequence for QCA6390 too

On Tue, Dec 05, 2023 at 12:09:03PM +0100, Bartosz Golaszewski wrote:
> From: Bartosz Golaszewski <[email protected]>
>
> The Bluetooth module on QCA6390 needs to be powered-on by enabling the
> relevant regulators and driving the enable GPIO high. We can reuse the
> power sequence for the WNC models.
>
> Signed-off-by: Bartosz Golaszewski <[email protected]>
> ---
> drivers/bluetooth/hci_qca.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c
> index 7f25931a946e..351ba904c8c2 100644
> --- a/drivers/bluetooth/hci_qca.c
> +++ b/drivers/bluetooth/hci_qca.c
> @@ -1788,6 +1788,7 @@ static int qca_power_on(struct hci_dev *hdev)
> case QCA_WCN6750:
> case QCA_WCN6855:
> case QCA_WCN7850:
> + case QCA_QCA6390:
> ret = qca_regulator_init(hu);
> break;
>
> @@ -2137,6 +2138,7 @@ static void qca_power_shutdown(struct hci_uart *hu)
>
> case QCA_WCN6750:
> case QCA_WCN6855:
> + case QCA_QCA6390:
> gpiod_set_value_cansleep(qcadev->bt_en, 0);
> msleep(100);
> qca_regulator_disable(qcadev);
> @@ -2284,6 +2286,7 @@ static int qca_serdev_probe(struct serdev_device *serdev)
> case QCA_WCN6750:
> case QCA_WCN6855:
> case QCA_WCN7850:
> + case QCA_QCA6390:
> qcadev->bt_power = devm_kzalloc(&serdev->dev,
> sizeof(struct qca_power),
> GFP_KERNEL);
> @@ -2394,6 +2397,7 @@ static void qca_serdev_remove(struct serdev_device *serdev)
> case QCA_WCN6750:
> case QCA_WCN6855:
> case QCA_WCN7850:
> + case QCA_QCA6390:
> if (power->vregs_on) {
> qca_power_shutdown(&qcadev->serdev_hu);
> break;

These two patches should also be squashed into one. Makes no sense to
separate them.

Johan

2023-12-05 11:57:24

by bluez.test.bot

[permalink] [raw]
Subject: RE: [1/2] Bluetooth: qca: add regulators for QCA6390

This is automated email and please do not reply to this email!

Dear submitter,

Thank you for submitting the patches to the linux bluetooth mailing list.
This is a CI test results with your patch series:
PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=806985

---Test result---

Test Summary:
CheckPatch PASS 0.96 seconds
GitLint PASS 0.46 seconds
SubjectPrefix PASS 0.17 seconds
BuildKernel PASS 27.72 seconds
CheckAllWarning PASS 30.13 seconds
CheckSparse PASS 35.27 seconds
CheckSmatch PASS 100.73 seconds
BuildKernel32 PASS 26.72 seconds
TestRunnerSetup PASS 418.81 seconds
TestRunner_l2cap-tester PASS 22.99 seconds
TestRunner_iso-tester PASS 46.47 seconds
TestRunner_bnep-tester PASS 6.96 seconds
TestRunner_mgmt-tester PASS 162.23 seconds
TestRunner_rfcomm-tester PASS 10.84 seconds
TestRunner_sco-tester PASS 14.47 seconds
TestRunner_ioctl-tester PASS 12.11 seconds
TestRunner_mesh-tester PASS 8.85 seconds
TestRunner_smp-tester PASS 9.76 seconds
TestRunner_userchan-tester PASS 7.34 seconds
IncrementalBuild PASS 30.36 seconds



---
Regards,
Linux Bluetooth