Lines Matching refs:qcadev
231 static int qca_regulator_enable(struct qca_serdev *qcadev);
232 static void qca_regulator_disable(struct qca_serdev *qcadev);
563 struct qca_serdev *qcadev; in qca_open() local
608 qcadev = serdev_device_get_drvdata(hu->serdev); in qca_open()
610 switch (qcadev->btsoc_type) { in qca_open()
616 hu->init_speed = qcadev->init_speed; in qca_open()
623 if (qcadev->oper_speed) in qca_open()
624 hu->oper_speed = qcadev->oper_speed; in qca_open()
1687 struct qca_serdev *qcadev; in qca_regulator_init() local
1694 qcadev = serdev_device_get_drvdata(hu->serdev); in qca_regulator_init()
1695 if (!qcadev->bt_power->vregs_on) { in qca_regulator_init()
1697 ret = qca_regulator_enable(qcadev); in qca_regulator_init()
1725 if (qcadev->bt_en) { in qca_regulator_init()
1726 gpiod_set_value_cansleep(qcadev->bt_en, 0); in qca_regulator_init()
1728 gpiod_set_value_cansleep(qcadev->bt_en, 1); in qca_regulator_init()
1730 if (qcadev->sw_ctrl) { in qca_regulator_init()
1731 sw_ctrl_state = gpiod_get_value_cansleep(qcadev->sw_ctrl); in qca_regulator_init()
1773 struct qca_serdev *qcadev; in qca_power_on() local
1795 qcadev = serdev_device_get_drvdata(hu->serdev); in qca_power_on()
1796 if (qcadev->bt_en) { in qca_power_on()
1797 gpiod_set_value_cansleep(qcadev->bt_en, 1); in qca_power_on()
2087 struct qca_serdev *qcadev; in qca_power_shutdown() local
2108 qcadev = serdev_device_get_drvdata(hu->serdev); in qca_power_shutdown()
2117 qca_regulator_disable(qcadev); in qca_power_shutdown()
2122 gpiod_set_value_cansleep(qcadev->bt_en, 0); in qca_power_shutdown()
2124 qca_regulator_disable(qcadev); in qca_power_shutdown()
2125 if (qcadev->sw_ctrl) { in qca_power_shutdown()
2126 sw_ctrl_state = gpiod_get_value_cansleep(qcadev->sw_ctrl); in qca_power_shutdown()
2132 gpiod_set_value_cansleep(qcadev->bt_en, 0); in qca_power_shutdown()
2161 static int qca_regulator_enable(struct qca_serdev *qcadev) in qca_regulator_enable() argument
2163 struct qca_power *power = qcadev->bt_power; in qca_regulator_enable()
2178 ret = clk_prepare_enable(qcadev->susclk); in qca_regulator_enable()
2180 qca_regulator_disable(qcadev); in qca_regulator_enable()
2185 static void qca_regulator_disable(struct qca_serdev *qcadev) in qca_regulator_disable() argument
2189 if (!qcadev) in qca_regulator_disable()
2192 power = qcadev->bt_power; in qca_regulator_disable()
2201 clk_disable_unprepare(qcadev->susclk); in qca_regulator_disable()
2236 struct qca_serdev *qcadev; in qca_serdev_probe() local
2242 qcadev = devm_kzalloc(&serdev->dev, sizeof(*qcadev), GFP_KERNEL); in qca_serdev_probe()
2243 if (!qcadev) in qca_serdev_probe()
2246 qcadev->serdev_hu.serdev = serdev; in qca_serdev_probe()
2248 serdev_device_set_drvdata(serdev, qcadev); in qca_serdev_probe()
2250 &qcadev->firmware_name); in qca_serdev_probe()
2252 &qcadev->oper_speed); in qca_serdev_probe()
2253 if (!qcadev->oper_speed) in qca_serdev_probe()
2257 qcadev->btsoc_type = data->soc_type; in qca_serdev_probe()
2259 qcadev->btsoc_type = QCA_ROME; in qca_serdev_probe()
2261 switch (qcadev->btsoc_type) { in qca_serdev_probe()
2269 qcadev->bt_power = devm_kzalloc(&serdev->dev, in qca_serdev_probe()
2272 if (!qcadev->bt_power) in qca_serdev_probe()
2275 qcadev->bt_power->dev = &serdev->dev; in qca_serdev_probe()
2276 err = qca_init_regulators(qcadev->bt_power, data->vregs, in qca_serdev_probe()
2283 qcadev->bt_power->vregs_on = false; in qca_serdev_probe()
2285 qcadev->bt_en = devm_gpiod_get_optional(&serdev->dev, "enable", in qca_serdev_probe()
2287 if (IS_ERR_OR_NULL(qcadev->bt_en) && in qca_serdev_probe()
2294 qcadev->sw_ctrl = devm_gpiod_get_optional(&serdev->dev, "swctrl", in qca_serdev_probe()
2296 if (IS_ERR_OR_NULL(qcadev->sw_ctrl) && in qca_serdev_probe()
2302 qcadev->susclk = devm_clk_get_optional(&serdev->dev, NULL); in qca_serdev_probe()
2303 if (IS_ERR(qcadev->susclk)) { in qca_serdev_probe()
2305 return PTR_ERR(qcadev->susclk); in qca_serdev_probe()
2308 err = hci_uart_register_device(&qcadev->serdev_hu, &qca_proto); in qca_serdev_probe()
2316 qcadev->bt_en = devm_gpiod_get_optional(&serdev->dev, "enable", in qca_serdev_probe()
2318 if (IS_ERR_OR_NULL(qcadev->bt_en)) { in qca_serdev_probe()
2323 qcadev->susclk = devm_clk_get_optional(&serdev->dev, NULL); in qca_serdev_probe()
2324 if (IS_ERR(qcadev->susclk)) { in qca_serdev_probe()
2326 return PTR_ERR(qcadev->susclk); in qca_serdev_probe()
2328 err = clk_set_rate(qcadev->susclk, SUSCLK_RATE_32KHZ); in qca_serdev_probe()
2332 err = clk_prepare_enable(qcadev->susclk); in qca_serdev_probe()
2336 err = hci_uart_register_device(&qcadev->serdev_hu, &qca_proto); in qca_serdev_probe()
2339 clk_disable_unprepare(qcadev->susclk); in qca_serdev_probe()
2344 hdev = qcadev->serdev_hu.hdev; in qca_serdev_probe()
2368 struct qca_serdev *qcadev = serdev_device_get_drvdata(serdev); in qca_serdev_remove() local
2369 struct qca_power *power = qcadev->bt_power; in qca_serdev_remove()
2371 switch (qcadev->btsoc_type) { in qca_serdev_remove()
2380 qca_power_shutdown(&qcadev->serdev_hu); in qca_serdev_remove()
2386 if (qcadev->susclk) in qca_serdev_remove()
2387 clk_disable_unprepare(qcadev->susclk); in qca_serdev_remove()
2390 hci_uart_unregister_device(&qcadev->serdev_hu); in qca_serdev_remove()
2398 struct qca_serdev *qcadev = serdev_device_get_drvdata(serdev); in qca_serdev_shutdown() local
2399 struct hci_uart *hu = &qcadev->serdev_hu; in qca_serdev_shutdown()
2405 if (qcadev->btsoc_type == QCA_QCA6390) { in qca_serdev_shutdown()
2435 struct qca_serdev *qcadev = serdev_device_get_drvdata(serdev); in qca_suspend() local
2436 struct hci_uart *hu = &qcadev->serdev_hu; in qca_suspend()
2549 struct qca_serdev *qcadev = serdev_device_get_drvdata(serdev); in qca_resume() local
2550 struct hci_uart *hu = &qcadev->serdev_hu; in qca_resume()
2592 struct qca_serdev *qcadev = serdev_device_get_drvdata(serdev); in hciqca_coredump() local
2593 struct hci_uart *hu = &qcadev->serdev_hu; in hciqca_coredump()