Lines Matching refs:qcadev
230 static int qca_regulator_enable(struct qca_serdev *qcadev);
231 static void qca_regulator_disable(struct qca_serdev *qcadev);
561 struct qca_serdev *qcadev; in qca_open() local
606 qcadev = serdev_device_get_drvdata(hu->serdev); in qca_open()
608 if (qca_is_wcn399x(qcadev->btsoc_type) || in qca_open()
609 qca_is_wcn6750(qcadev->btsoc_type)) in qca_open()
610 hu->init_speed = qcadev->init_speed; in qca_open()
612 if (qcadev->oper_speed) in qca_open()
613 hu->oper_speed = qcadev->oper_speed; in qca_open()
1597 struct qca_serdev *qcadev; in qca_regulator_init() local
1604 qcadev = serdev_device_get_drvdata(hu->serdev); in qca_regulator_init()
1605 if (!qcadev->bt_power->vregs_on) { in qca_regulator_init()
1607 ret = qca_regulator_enable(qcadev); in qca_regulator_init()
1627 if (qcadev->bt_en) { in qca_regulator_init()
1628 gpiod_set_value_cansleep(qcadev->bt_en, 0); in qca_regulator_init()
1630 gpiod_set_value_cansleep(qcadev->bt_en, 1); in qca_regulator_init()
1632 if (qcadev->sw_ctrl) { in qca_regulator_init()
1633 sw_ctrl_state = gpiod_get_value_cansleep(qcadev->sw_ctrl); in qca_regulator_init()
1667 struct qca_serdev *qcadev; in qca_power_on() local
1681 qcadev = serdev_device_get_drvdata(hu->serdev); in qca_power_on()
1682 if (qcadev->bt_en) { in qca_power_on()
1683 gpiod_set_value_cansleep(qcadev->bt_en, 1); in qca_power_on()
1880 struct qca_serdev *qcadev; in qca_power_shutdown() local
1901 qcadev = serdev_device_get_drvdata(hu->serdev); in qca_power_shutdown()
1906 qca_regulator_disable(qcadev); in qca_power_shutdown()
1908 gpiod_set_value_cansleep(qcadev->bt_en, 0); in qca_power_shutdown()
1910 qca_regulator_disable(qcadev); in qca_power_shutdown()
1911 if (qcadev->sw_ctrl) { in qca_power_shutdown()
1912 sw_ctrl_state = gpiod_get_value_cansleep(qcadev->sw_ctrl); in qca_power_shutdown()
1915 } else if (qcadev->bt_en) { in qca_power_shutdown()
1916 gpiod_set_value_cansleep(qcadev->bt_en, 0); in qca_power_shutdown()
1945 static int qca_regulator_enable(struct qca_serdev *qcadev) in qca_regulator_enable() argument
1947 struct qca_power *power = qcadev->bt_power; in qca_regulator_enable()
1962 ret = clk_prepare_enable(qcadev->susclk); in qca_regulator_enable()
1964 qca_regulator_disable(qcadev); in qca_regulator_enable()
1969 static void qca_regulator_disable(struct qca_serdev *qcadev) in qca_regulator_disable() argument
1973 if (!qcadev) in qca_regulator_disable()
1976 power = qcadev->bt_power; in qca_regulator_disable()
1985 clk_disable_unprepare(qcadev->susclk); in qca_regulator_disable()
2020 struct qca_serdev *qcadev; in qca_serdev_probe() local
2026 qcadev = devm_kzalloc(&serdev->dev, sizeof(*qcadev), GFP_KERNEL); in qca_serdev_probe()
2027 if (!qcadev) in qca_serdev_probe()
2030 qcadev->serdev_hu.serdev = serdev; in qca_serdev_probe()
2032 serdev_device_set_drvdata(serdev, qcadev); in qca_serdev_probe()
2034 &qcadev->firmware_name); in qca_serdev_probe()
2036 &qcadev->oper_speed); in qca_serdev_probe()
2037 if (!qcadev->oper_speed) in qca_serdev_probe()
2043 qcadev->btsoc_type = data->soc_type; in qca_serdev_probe()
2044 qcadev->bt_power = devm_kzalloc(&serdev->dev, in qca_serdev_probe()
2047 if (!qcadev->bt_power) in qca_serdev_probe()
2050 qcadev->bt_power->dev = &serdev->dev; in qca_serdev_probe()
2051 err = qca_init_regulators(qcadev->bt_power, data->vregs, in qca_serdev_probe()
2058 qcadev->bt_power->vregs_on = false; in qca_serdev_probe()
2060 qcadev->bt_en = devm_gpiod_get_optional(&serdev->dev, "enable", in qca_serdev_probe()
2062 if (IS_ERR_OR_NULL(qcadev->bt_en) && data->soc_type == QCA_WCN6750) { in qca_serdev_probe()
2067 qcadev->sw_ctrl = devm_gpiod_get_optional(&serdev->dev, "swctrl", in qca_serdev_probe()
2069 if (IS_ERR_OR_NULL(qcadev->sw_ctrl) && data->soc_type == QCA_WCN6750) in qca_serdev_probe()
2072 qcadev->susclk = devm_clk_get_optional(&serdev->dev, NULL); in qca_serdev_probe()
2073 if (IS_ERR(qcadev->susclk)) { in qca_serdev_probe()
2075 return PTR_ERR(qcadev->susclk); in qca_serdev_probe()
2078 err = hci_uart_register_device(&qcadev->serdev_hu, &qca_proto); in qca_serdev_probe()
2085 qcadev->btsoc_type = data->soc_type; in qca_serdev_probe()
2087 qcadev->btsoc_type = QCA_ROME; in qca_serdev_probe()
2089 qcadev->bt_en = devm_gpiod_get_optional(&serdev->dev, "enable", in qca_serdev_probe()
2091 if (IS_ERR_OR_NULL(qcadev->bt_en)) { in qca_serdev_probe()
2096 qcadev->susclk = devm_clk_get_optional(&serdev->dev, NULL); in qca_serdev_probe()
2097 if (IS_ERR(qcadev->susclk)) { in qca_serdev_probe()
2099 return PTR_ERR(qcadev->susclk); in qca_serdev_probe()
2101 err = clk_set_rate(qcadev->susclk, SUSCLK_RATE_32KHZ); in qca_serdev_probe()
2105 err = clk_prepare_enable(qcadev->susclk); in qca_serdev_probe()
2109 err = hci_uart_register_device(&qcadev->serdev_hu, &qca_proto); in qca_serdev_probe()
2112 clk_disable_unprepare(qcadev->susclk); in qca_serdev_probe()
2117 hdev = qcadev->serdev_hu.hdev; in qca_serdev_probe()
2141 struct qca_serdev *qcadev = serdev_device_get_drvdata(serdev); in qca_serdev_remove() local
2142 struct qca_power *power = qcadev->bt_power; in qca_serdev_remove()
2144 if ((qca_is_wcn399x(qcadev->btsoc_type) || in qca_serdev_remove()
2145 qca_is_wcn6750(qcadev->btsoc_type)) && in qca_serdev_remove()
2147 qca_power_shutdown(&qcadev->serdev_hu); in qca_serdev_remove()
2148 else if (qcadev->susclk) in qca_serdev_remove()
2149 clk_disable_unprepare(qcadev->susclk); in qca_serdev_remove()
2151 hci_uart_unregister_device(&qcadev->serdev_hu); in qca_serdev_remove()
2159 struct qca_serdev *qcadev = serdev_device_get_drvdata(serdev); in qca_serdev_shutdown() local
2163 if (qcadev->btsoc_type == QCA_QCA6390) { in qca_serdev_shutdown()
2189 struct qca_serdev *qcadev = serdev_device_get_drvdata(serdev); in qca_suspend() local
2190 struct hci_uart *hu = &qcadev->serdev_hu; in qca_suspend()
2303 struct qca_serdev *qcadev = serdev_device_get_drvdata(serdev); in qca_resume() local
2304 struct hci_uart *hu = &qcadev->serdev_hu; in qca_resume()