mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-10 12:57:06 +09:00
BT: introduce power_down_disable property in DT
PD#163673: BT: introduce power_down_disable property in DT introduce a power_down_disable property in the DT file, we need to keep power on for the ap62x8 in order to pass the vts test Change-Id: I1984ded1e7f96732630b4e94a97bbb2705a8fbd6 Signed-off-by: Kuibao Zhang <kuibao.zhang@amlogic.com>
This commit is contained in:
@@ -603,6 +603,7 @@
|
||||
compatible = "amlogic, bt-dev";
|
||||
dev_name = "bt-dev";
|
||||
status = "okay";
|
||||
power_down_disable = <1>;
|
||||
gpio_reset = <&gpio_ao GPIOAO_13 GPIO_ACTIVE_HIGH>;
|
||||
//gpio_en = <&gpio_ao GPIOAO_5 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
@@ -612,6 +612,7 @@
|
||||
compatible = "amlogic, bt-dev";
|
||||
dev_name = "bt-dev";
|
||||
status = "okay";
|
||||
power_down_disable = <1>;
|
||||
gpio_reset = <&gpio_ao GPIOAO_8 GPIO_ACTIVE_HIGH>;
|
||||
//gpio_en = <&gpio_ao GPIOAO_5 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
@@ -85,25 +85,26 @@ static void bt_device_deinit(struct bt_dev_data *pdata)
|
||||
|
||||
static void bt_device_on(struct bt_dev_data *pdata)
|
||||
{
|
||||
if (pdata->gpio_reset > 0) {
|
||||
|
||||
if ((pdata->power_on_pin_OD) && (pdata->power_low_level)) {
|
||||
gpio_direction_input(pdata->gpio_reset);
|
||||
} else {
|
||||
gpio_direction_output(pdata->gpio_reset,
|
||||
pdata->power_low_level);
|
||||
if (pdata->power_down_disable == 0) {
|
||||
if (pdata->gpio_reset > 0) {
|
||||
if ((pdata->power_on_pin_OD)
|
||||
&& (pdata->power_low_level)) {
|
||||
gpio_direction_input(pdata->gpio_reset);
|
||||
} else {
|
||||
gpio_direction_output(pdata->gpio_reset,
|
||||
pdata->power_low_level);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (pdata->gpio_en > 0) {
|
||||
|
||||
if ((pdata->power_on_pin_OD)
|
||||
&& (pdata->power_low_level)) {
|
||||
gpio_direction_input(pdata->gpio_en);
|
||||
} else {
|
||||
set_usb_bt_power(0);
|
||||
if (pdata->gpio_en > 0) {
|
||||
if ((pdata->power_on_pin_OD)
|
||||
&& (pdata->power_low_level)) {
|
||||
gpio_direction_input(pdata->gpio_en);
|
||||
} else {
|
||||
set_usb_bt_power(0);
|
||||
}
|
||||
}
|
||||
msleep(200);
|
||||
}
|
||||
msleep(200);
|
||||
if (pdata->gpio_reset > 0) {
|
||||
|
||||
if ((pdata->power_on_pin_OD)
|
||||
@@ -128,25 +129,27 @@ static void bt_device_on(struct bt_dev_data *pdata)
|
||||
|
||||
static void bt_device_off(struct bt_dev_data *pdata)
|
||||
{
|
||||
if (pdata->power_off_flag > 0) { /*bt rc wakeup by bcm.set it by dts*/
|
||||
if (pdata->gpio_reset > 0) {
|
||||
if ((pdata->power_on_pin_OD)
|
||||
&& (pdata->power_low_level)) {
|
||||
gpio_direction_input(pdata->gpio_reset);
|
||||
} else {
|
||||
gpio_direction_output(pdata->gpio_reset,
|
||||
if (pdata->power_down_disable == 0) {
|
||||
if (pdata->power_off_flag > 0) { /*bt rc wakeup flag for bcm.*/
|
||||
if (pdata->gpio_reset > 0) {
|
||||
if ((pdata->power_on_pin_OD)
|
||||
&& (pdata->power_low_level)) {
|
||||
gpio_direction_input(pdata->gpio_reset);
|
||||
} else {
|
||||
gpio_direction_output(pdata->gpio_reset,
|
||||
pdata->power_low_level);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (pdata->gpio_en > 0) {
|
||||
if ((pdata->power_on_pin_OD)
|
||||
&& (pdata->power_low_level)) {
|
||||
gpio_direction_input(pdata->gpio_en);
|
||||
} else {
|
||||
set_usb_bt_power(0);
|
||||
if (pdata->gpio_en > 0) {
|
||||
if ((pdata->power_on_pin_OD)
|
||||
&& (pdata->power_low_level)) {
|
||||
gpio_direction_input(pdata->gpio_en);
|
||||
} else {
|
||||
set_usb_bt_power(0);
|
||||
}
|
||||
}
|
||||
msleep(20);
|
||||
}
|
||||
msleep(20);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -260,6 +263,12 @@ static int bt_probe(struct platform_device *pdev)
|
||||
if (ret)
|
||||
pdata->power_off_flag = 1;/*bt poweroff*/
|
||||
pr_info("bt: power_off_flag = %d;\n", pdata->power_off_flag);
|
||||
|
||||
ret = of_property_read_u32(pdev->dev.of_node,
|
||||
"power_down_disable", &pdata->power_down_disable);
|
||||
if (ret)
|
||||
pdata->power_down_disable = 0;
|
||||
pr_info("dis power down = %d;\n", pdata->power_down_disable);
|
||||
} else {
|
||||
pdata = (struct bt_dev_data *)(pdev->dev.platform_data);
|
||||
}
|
||||
|
||||
@@ -25,6 +25,7 @@ struct bt_dev_data {
|
||||
int power_low_level;
|
||||
int power_on_pin_OD;
|
||||
int power_off_flag;
|
||||
int power_down_disable;
|
||||
};
|
||||
extern void set_usb_bt_power(int is_power);
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user