Lines Matching refs:qcadev

224 static int qca_regulator_enable(struct qca_serdev *qcadev);
225 static void qca_regulator_disable(struct qca_serdev *qcadev);
555 struct qca_serdev *qcadev; in qca_open() local
600 qcadev = serdev_device_get_drvdata(hu->serdev); in qca_open()
602 if (qca_is_wcn399x(qcadev->btsoc_type)) in qca_open()
603 hu->init_speed = qcadev->init_speed; in qca_open()
605 if (qcadev->oper_speed) in qca_open()
606 hu->oper_speed = qcadev->oper_speed; in qca_open()
1571 struct qca_serdev *qcadev; in qca_wcn3990_init() local
1577 qcadev = serdev_device_get_drvdata(hu->serdev); in qca_wcn3990_init()
1578 if (!qcadev->bt_power->vregs_on) { in qca_wcn3990_init()
1580 ret = qca_regulator_enable(qcadev); in qca_wcn3990_init()
1623 struct qca_serdev *qcadev; in qca_power_on() local
1635 qcadev = serdev_device_get_drvdata(hu->serdev); in qca_power_on()
1636 if (qcadev->bt_en) { in qca_power_on()
1637 gpiod_set_value_cansleep(qcadev->bt_en, 1); in qca_power_on()
1807 struct qca_serdev *qcadev; in qca_power_shutdown() local
1827 qcadev = serdev_device_get_drvdata(hu->serdev); in qca_power_shutdown()
1832 qca_regulator_disable(qcadev); in qca_power_shutdown()
1833 } else if (qcadev->bt_en) { in qca_power_shutdown()
1834 gpiod_set_value_cansleep(qcadev->bt_en, 0); in qca_power_shutdown()
1861 static int qca_regulator_enable(struct qca_serdev *qcadev) in qca_regulator_enable() argument
1863 struct qca_power *power = qcadev->bt_power; in qca_regulator_enable()
1878 ret = clk_prepare_enable(qcadev->susclk); in qca_regulator_enable()
1880 qca_regulator_disable(qcadev); in qca_regulator_enable()
1885 static void qca_regulator_disable(struct qca_serdev *qcadev) in qca_regulator_disable() argument
1889 if (!qcadev) in qca_regulator_disable()
1892 power = qcadev->bt_power; in qca_regulator_disable()
1901 clk_disable_unprepare(qcadev->susclk); in qca_regulator_disable()
1936 struct qca_serdev *qcadev; in qca_serdev_probe() local
1942 qcadev = devm_kzalloc(&serdev->dev, sizeof(*qcadev), GFP_KERNEL); in qca_serdev_probe()
1943 if (!qcadev) in qca_serdev_probe()
1946 qcadev->serdev_hu.serdev = serdev; in qca_serdev_probe()
1948 serdev_device_set_drvdata(serdev, qcadev); in qca_serdev_probe()
1950 &qcadev->firmware_name); in qca_serdev_probe()
1952 &qcadev->oper_speed); in qca_serdev_probe()
1953 if (!qcadev->oper_speed) in qca_serdev_probe()
1957 qcadev->btsoc_type = data->soc_type; in qca_serdev_probe()
1958 qcadev->bt_power = devm_kzalloc(&serdev->dev, in qca_serdev_probe()
1961 if (!qcadev->bt_power) in qca_serdev_probe()
1964 qcadev->bt_power->dev = &serdev->dev; in qca_serdev_probe()
1965 err = qca_init_regulators(qcadev->bt_power, data->vregs, in qca_serdev_probe()
1972 qcadev->bt_power->vregs_on = false; in qca_serdev_probe()
1974 qcadev->susclk = devm_clk_get_optional(&serdev->dev, NULL); in qca_serdev_probe()
1975 if (IS_ERR(qcadev->susclk)) { in qca_serdev_probe()
1977 return PTR_ERR(qcadev->susclk); in qca_serdev_probe()
1980 err = hci_uart_register_device(&qcadev->serdev_hu, &qca_proto); in qca_serdev_probe()
1987 qcadev->btsoc_type = data->soc_type; in qca_serdev_probe()
1989 qcadev->btsoc_type = QCA_ROME; in qca_serdev_probe()
1991 qcadev->bt_en = devm_gpiod_get_optional(&serdev->dev, "enable", in qca_serdev_probe()
1993 if (IS_ERR_OR_NULL(qcadev->bt_en)) { in qca_serdev_probe()
1998 qcadev->susclk = devm_clk_get_optional(&serdev->dev, NULL); in qca_serdev_probe()
1999 if (IS_ERR(qcadev->susclk)) { in qca_serdev_probe()
2001 return PTR_ERR(qcadev->susclk); in qca_serdev_probe()
2003 err = clk_set_rate(qcadev->susclk, SUSCLK_RATE_32KHZ); in qca_serdev_probe()
2007 err = clk_prepare_enable(qcadev->susclk); in qca_serdev_probe()
2011 err = hci_uart_register_device(&qcadev->serdev_hu, &qca_proto); in qca_serdev_probe()
2014 clk_disable_unprepare(qcadev->susclk); in qca_serdev_probe()
2019 hdev = qcadev->serdev_hu.hdev; in qca_serdev_probe()
2043 struct qca_serdev *qcadev = serdev_device_get_drvdata(serdev); in qca_serdev_remove() local
2044 struct qca_power *power = qcadev->bt_power; in qca_serdev_remove()
2046 if (qca_is_wcn399x(qcadev->btsoc_type) && power->vregs_on) in qca_serdev_remove()
2047 qca_power_shutdown(&qcadev->serdev_hu); in qca_serdev_remove()
2048 else if (qcadev->susclk) in qca_serdev_remove()
2049 clk_disable_unprepare(qcadev->susclk); in qca_serdev_remove()
2051 hci_uart_unregister_device(&qcadev->serdev_hu); in qca_serdev_remove()
2059 struct qca_serdev *qcadev = serdev_device_get_drvdata(serdev); in qca_serdev_shutdown() local
2063 if (qcadev->btsoc_type == QCA_QCA6390) { in qca_serdev_shutdown()
2089 struct qca_serdev *qcadev = serdev_device_get_drvdata(serdev); in qca_suspend() local
2090 struct hci_uart *hu = &qcadev->serdev_hu; in qca_suspend()
2172 struct qca_serdev *qcadev = serdev_device_get_drvdata(serdev); in qca_resume() local
2173 struct hci_uart *hu = &qcadev->serdev_hu; in qca_resume()