diff options
| author | Amitkumar Karwar <akarwar@marvell.com> | 2014-11-19 04:28:33 -0500 |
|---|---|---|
| committer | Marcel Holtmann <marcel@holtmann.org> | 2014-11-19 10:22:42 -0500 |
| commit | 025a60a752261fd479a4bb74cf7cb04fdc313ec7 (patch) | |
| tree | 8a8d400406c7e9cb31d58565a9aa0d821c3407b7 /drivers/bluetooth | |
| parent | 098ea6bc4cb5890d09b1b79154fa11182e0f71e0 (diff) | |
Bluetooth: btmrvl: add DT-bindings for gpio-gap
This can be used to have GPIO host wakeup method suitable for the
platform and configurable GAP for host sleep handshake.
Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Cathy Luo <cluo@marvell.com>
Signed-off-by: Avinash Patil <patila@marvell.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'drivers/bluetooth')
| -rw-r--r-- | drivers/bluetooth/btmrvl_main.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/drivers/bluetooth/btmrvl_main.c b/drivers/bluetooth/btmrvl_main.c index 2909bca6b8b6..e43c495e8181 100644 --- a/drivers/bluetooth/btmrvl_main.c +++ b/drivers/bluetooth/btmrvl_main.c | |||
| @@ -492,13 +492,18 @@ static int btmrvl_download_cal_data(struct btmrvl_private *priv, | |||
| 492 | return 0; | 492 | return 0; |
| 493 | } | 493 | } |
| 494 | 494 | ||
| 495 | static int btmrvl_cal_data_dt(struct btmrvl_private *priv) | 495 | static int btmrvl_check_device_tree(struct btmrvl_private *priv) |
| 496 | { | 496 | { |
| 497 | struct device_node *dt_node; | 497 | struct device_node *dt_node; |
| 498 | u8 cal_data[BT_CAL_HDR_LEN + BT_CAL_DATA_SIZE]; | 498 | u8 cal_data[BT_CAL_HDR_LEN + BT_CAL_DATA_SIZE]; |
| 499 | int ret; | 499 | int ret; |
| 500 | u32 val; | ||
| 500 | 501 | ||
| 501 | for_each_compatible_node(dt_node, NULL, "btmrvl,cfgdata") { | 502 | for_each_compatible_node(dt_node, NULL, "btmrvl,cfgdata") { |
| 503 | ret = of_property_read_u32(dt_node, "btmrvl,gpio-gap", &val); | ||
| 504 | if (!ret) | ||
| 505 | priv->btmrvl_dev.gpio_gap = val; | ||
| 506 | |||
| 502 | ret = of_property_read_u8_array(dt_node, "btmrvl,cal-data", | 507 | ret = of_property_read_u8_array(dt_node, "btmrvl,cal-data", |
| 503 | cal_data + BT_CAL_HDR_LEN, | 508 | cal_data + BT_CAL_HDR_LEN, |
| 504 | BT_CAL_DATA_SIZE); | 509 | BT_CAL_DATA_SIZE); |
| @@ -523,14 +528,15 @@ static int btmrvl_setup(struct hci_dev *hdev) | |||
| 523 | 528 | ||
| 524 | btmrvl_send_module_cfg_cmd(priv, MODULE_BRINGUP_REQ); | 529 | btmrvl_send_module_cfg_cmd(priv, MODULE_BRINGUP_REQ); |
| 525 | 530 | ||
| 526 | btmrvl_cal_data_dt(priv); | 531 | priv->btmrvl_dev.gpio_gap = 0xffff; |
| 532 | |||
| 533 | btmrvl_check_device_tree(priv); | ||
| 527 | 534 | ||
| 528 | btmrvl_pscan_window_reporting(priv, 0x01); | 535 | btmrvl_pscan_window_reporting(priv, 0x01); |
| 529 | 536 | ||
| 530 | priv->btmrvl_dev.psmode = 1; | 537 | priv->btmrvl_dev.psmode = 1; |
| 531 | btmrvl_enable_ps(priv); | 538 | btmrvl_enable_ps(priv); |
| 532 | 539 | ||
| 533 | priv->btmrvl_dev.gpio_gap = 0xffff; | ||
| 534 | btmrvl_send_hscfg_cmd(priv); | 540 | btmrvl_send_hscfg_cmd(priv); |
| 535 | 541 | ||
| 536 | return 0; | 542 | return 0; |
