summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2006-04-16 23:04:53 +0000
committerMarcel Holtmann <marcel@holtmann.org>2006-04-16 23:04:53 +0000
commit28af79147ef8ef1d550b25d960eba4e5f3fb6942 (patch)
tree444f1e1d835c6740c5ca427a024662d589cef809
parent0bf26d618424720586e0013256bdc39803c90c4a (diff)
Add support for ST chips
-rw-r--r--test/bdaddr.c20
1 files changed, 18 insertions, 2 deletions
diff --git a/test/bdaddr.c b/test/bdaddr.c
index ede77049..a48c85b1 100644
--- a/test/bdaddr.c
+++ b/test/bdaddr.c
@@ -68,7 +68,6 @@ static int ericsson_write_bd_addr(int dd, bdaddr_t *bdaddr)
return 0;
}
-#if 0
#define OCF_ERICSSON_STORE_IN_FLASH 0x0022
typedef struct {
uint8_t user_id;
@@ -101,7 +100,6 @@ static int ericsson_store_in_flash(int dd, uint8_t user_id, uint8_t flash_length
return 0;
}
-#endif
static int csr_write_bd_addr(int dd, bdaddr_t *bdaddr)
{
@@ -240,6 +238,23 @@ static int zeevo_write_bd_addr(int dd, bdaddr_t *bdaddr)
return 0;
}
+static int st_write_bd_addr(int dd, bdaddr_t *bdaddr)
+{
+ return ericsson_store_in_flash(dd, 0xfe, 6, (uint8_t *) bdaddr);
+}
+
+static int st_reset_device(int dd)
+{
+ bdaddr_t bdaddr;
+ int err;
+
+ err = hci_send_cmd(dd, 0x03, 0x0003, 0, NULL);
+ if (err < 0)
+ return err;
+
+ return hci_read_bd_addr(dd, &bdaddr, 10000);
+}
+
static struct {
uint16_t compid;
int (*write_bd_addr)(int dd, bdaddr_t *bdaddr);
@@ -249,6 +264,7 @@ static struct {
{ 10, csr_write_bd_addr, csr_reset_device },
{ 13, ti_write_bd_addr, NULL, },
{ 18, zeevo_write_bd_addr, NULL },
+ { 48, st_write_bd_addr, st_reset_device },
{ 65535, NULL, NULL },
};