Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

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>

authored by

Dmitry Baryshkov and committed by
Luiz Augusto von Dentz
9f168e4d 15a315e4

+18 -8
+18 -8
drivers/bluetooth/hci_qca.c
··· 2241 2241 qcadev = serdev_device_get_drvdata(hu->serdev); 2242 2242 power = qcadev->bt_power; 2243 2243 2244 + switch (soc_type) { 2245 + case QCA_WCN3988: 2246 + case QCA_WCN3990: 2247 + case QCA_WCN3991: 2248 + case QCA_WCN3998: 2249 + host_set_baudrate(hu, 2400); 2250 + qca_send_power_pulse(hu, false); 2251 + break; 2252 + default: 2253 + break; 2254 + } 2255 + 2244 2256 if (power && power->pwrseq) { 2245 2257 pwrseq_power_off(power->pwrseq); 2246 2258 set_bit(QCA_BT_OFF, &qca->flags); ··· 2264 2252 case QCA_WCN3990: 2265 2253 case QCA_WCN3991: 2266 2254 case QCA_WCN3998: 2267 - host_set_baudrate(hu, 2400); 2268 - qca_send_power_pulse(hu, false); 2269 2255 qca_regulator_disable(qcadev); 2270 2256 break; 2271 2257 ··· 2435 2425 } 2436 2426 2437 2427 switch (qcadev->btsoc_type) { 2428 + case QCA_WCN3950: 2429 + case QCA_WCN3988: 2430 + case QCA_WCN3990: 2431 + case QCA_WCN3991: 2432 + case QCA_WCN3998: 2438 2433 case QCA_WCN6750: 2439 2434 case QCA_WCN6855: 2440 2435 case QCA_WCN7850: ··· 2464 2449 else 2465 2450 break; 2466 2451 } 2467 - fallthrough; 2468 - case QCA_WCN3950: 2469 - case QCA_WCN3988: 2470 - case QCA_WCN3990: 2471 - case QCA_WCN3991: 2472 - case QCA_WCN3998: 2452 + 2473 2453 qcadev->bt_power->dev = &serdev->dev; 2474 2454 err = qca_init_regulators(qcadev->bt_power, data->vregs, 2475 2455 data->num_vregs);