Bluetooth: qca: enable pwrseq support for WCN39xx devices
The WCN39xx family of WiFi/BT chips incorporates a simple PMU, spreading voltages over internal rails. Implement support for using powersequencer for this family of QCA devices in addition to using regulators. Reviewed-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>master
parent
15a315e417
commit
9f168e4de5
|
|
@ -2241,6 +2241,18 @@ static void qca_power_off(struct hci_uart *hu)
|
|||
qcadev = serdev_device_get_drvdata(hu->serdev);
|
||||
power = qcadev->bt_power;
|
||||
|
||||
switch (soc_type) {
|
||||
case QCA_WCN3988:
|
||||
case QCA_WCN3990:
|
||||
case QCA_WCN3991:
|
||||
case QCA_WCN3998:
|
||||
host_set_baudrate(hu, 2400);
|
||||
qca_send_power_pulse(hu, false);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (power && power->pwrseq) {
|
||||
pwrseq_power_off(power->pwrseq);
|
||||
set_bit(QCA_BT_OFF, &qca->flags);
|
||||
|
|
@ -2252,8 +2264,6 @@ static void qca_power_off(struct hci_uart *hu)
|
|||
case QCA_WCN3990:
|
||||
case QCA_WCN3991:
|
||||
case QCA_WCN3998:
|
||||
host_set_baudrate(hu, 2400);
|
||||
qca_send_power_pulse(hu, false);
|
||||
qca_regulator_disable(qcadev);
|
||||
break;
|
||||
|
||||
|
|
@ -2425,6 +2435,11 @@ static int qca_serdev_probe(struct serdev_device *serdev)
|
|||
}
|
||||
|
||||
switch (qcadev->btsoc_type) {
|
||||
case QCA_WCN3950:
|
||||
case QCA_WCN3988:
|
||||
case QCA_WCN3990:
|
||||
case QCA_WCN3991:
|
||||
case QCA_WCN3998:
|
||||
case QCA_WCN6750:
|
||||
case QCA_WCN6855:
|
||||
case QCA_WCN7850:
|
||||
|
|
@ -2449,12 +2464,7 @@ static int qca_serdev_probe(struct serdev_device *serdev)
|
|||
else
|
||||
break;
|
||||
}
|
||||
fallthrough;
|
||||
case QCA_WCN3950:
|
||||
case QCA_WCN3988:
|
||||
case QCA_WCN3990:
|
||||
case QCA_WCN3991:
|
||||
case QCA_WCN3998:
|
||||
|
||||
qcadev->bt_power->dev = &serdev->dev;
|
||||
err = qca_init_regulators(qcadev->bt_power, data->vregs,
|
||||
data->num_vregs);
|
||||
|
|
|
|||
Loading…
Reference in New Issue