Skip to content

Commit

Permalink
Bluetooth: btmrvl: add DT bindings documentation
Browse files Browse the repository at this point in the history
Calibration data can be downloaded through device tree method. This
patch adds the documentation. Also, instead of searching device tree
node by name using of_find_node_by_name() API, let's use
for_each_compatible_node().

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>
  • Loading branch information
Amitkumar Karwar authored and Marcel Holtmann committed Nov 19, 2014
1 parent 0378b59 commit 098ea6b
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 17 deletions.
22 changes: 22 additions & 0 deletions Documentation/devicetree/bindings/btmrvl.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
btmrvl
------

Required properties:

- compatible : must be "btmrvl,cfgdata"

Optional properties:

- btmrvl,cal-data : Calibration data downloaded to the device during
initialization. This is an array of 28 values(u8).

Example:

btmrvl {
compatible = "btmrvl,cfgdata";

btmrvl,cal-data = /bits/ 8 <
0x37 0x01 0x1c 0x00 0xff 0xff 0xff 0xff 0x01 0x7f 0x04 0x02
0x00 0x00 0xba 0xce 0xc0 0xc6 0x2d 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0xf0 0x00>;
};
31 changes: 14 additions & 17 deletions drivers/bluetooth/btmrvl_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -496,25 +496,22 @@ static int btmrvl_cal_data_dt(struct btmrvl_private *priv)
{
struct device_node *dt_node;
u8 cal_data[BT_CAL_HDR_LEN + BT_CAL_DATA_SIZE];
const char name[] = "btmrvl_caldata";
const char property[] = "btmrvl,caldata";
int ret;

dt_node = of_find_node_by_name(NULL, name);
if (!dt_node)
return -ENODEV;

ret = of_property_read_u8_array(dt_node, property,
cal_data + BT_CAL_HDR_LEN,
BT_CAL_DATA_SIZE);
if (ret)
return ret;

BT_DBG("Use cal data from device tree");
ret = btmrvl_download_cal_data(priv, cal_data, BT_CAL_DATA_SIZE);
if (ret) {
BT_ERR("Fail to download calibrate data");
return ret;
for_each_compatible_node(dt_node, NULL, "btmrvl,cfgdata") {
ret = of_property_read_u8_array(dt_node, "btmrvl,cal-data",
cal_data + BT_CAL_HDR_LEN,
BT_CAL_DATA_SIZE);
if (ret)
return ret;

BT_DBG("Use cal data from device tree");
ret = btmrvl_download_cal_data(priv, cal_data,
BT_CAL_DATA_SIZE);
if (ret) {
BT_ERR("Fail to download calibrate data");
return ret;
}
}

return 0;
Expand Down

0 comments on commit 098ea6b

Please sign in to comment.