Lines Matching +full:rfkill +full:- +full:gpio
1 // SPDX-License-Identifier: GPL-2.0-only
3 * Bluetooth built-in chip control
11 #include <linux/gpio.h>
13 #include <linux/rfkill.h>
19 gpio_set_value(data->gpio_reset, 0); in tosa_bt_on()
20 gpio_set_value(data->gpio_pwr, 1); in tosa_bt_on()
21 gpio_set_value(data->gpio_reset, 1); in tosa_bt_on()
23 gpio_set_value(data->gpio_reset, 0); in tosa_bt_on()
28 gpio_set_value(data->gpio_reset, 1); in tosa_bt_off()
30 gpio_set_value(data->gpio_pwr, 0); in tosa_bt_off()
31 gpio_set_value(data->gpio_reset, 0); in tosa_bt_off()
56 struct rfkill *rfk; in tosa_bt_probe()
58 struct tosa_bt_data *data = dev->dev.platform_data; in tosa_bt_probe()
60 rc = gpio_request(data->gpio_reset, "Bluetooth reset"); in tosa_bt_probe()
63 rc = gpio_direction_output(data->gpio_reset, 0); in tosa_bt_probe()
66 rc = gpio_request(data->gpio_pwr, "Bluetooth power"); in tosa_bt_probe()
69 rc = gpio_direction_output(data->gpio_pwr, 0); in tosa_bt_probe()
73 rfk = rfkill_alloc("tosa-bt", &dev->dev, RFKILL_TYPE_BLUETOOTH, in tosa_bt_probe()
76 rc = -ENOMEM; in tosa_bt_probe()
93 gpio_free(data->gpio_pwr); in tosa_bt_probe()
96 gpio_free(data->gpio_reset); in tosa_bt_probe()
103 struct tosa_bt_data *data = dev->dev.platform_data; in tosa_bt_remove()
104 struct rfkill *rfk = platform_get_drvdata(dev); in tosa_bt_remove()
116 gpio_free(data->gpio_pwr); in tosa_bt_remove()
117 gpio_free(data->gpio_reset); in tosa_bt_remove()
127 .name = "tosa-bt",
134 MODULE_DESCRIPTION("Bluetooth built-in chip control");