e53b64df7e4dc5d7284ae664004af2d64294d645
[openwrt/staging/jow.git] /
1 From 84833056aa7dd25f5b097e31c78f2a0914c5160c Mon Sep 17 00:00:00 2001
2 From: Gabor Juhos <juhosg@openwrt.org>
3 Date: Sun, 24 Mar 2013 19:26:26 +0100
4 Subject: [PATCH] rt2x00: rt2800lib: add BBP register initialization for
5 RT3883
6
7 Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
8 ---
9 drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 44 +++++++++++++++++++++++++++++++
10 1 file changed, 44 insertions(+)
11
12 --- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
13 +++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
14 @@ -6352,6 +6352,47 @@ static void rt2800_init_bbp_3593(struct
15 rt2800_bbp_write(rt2x00dev, 103, 0xc0);
16 }
17
18 +static void rt2800_init_bbp_3883(struct rt2x00_dev *rt2x00dev)
19 +{
20 + rt2800_init_bbp_early(rt2x00dev);
21 +
22 + rt2800_bbp_write(rt2x00dev, 4, 0x50);
23 + rt2800_bbp_write(rt2x00dev, 47, 0x48);
24 +
25 + rt2800_bbp_write(rt2x00dev, 86, 0x46);
26 + rt2800_bbp_write(rt2x00dev, 88, 0x90);
27 +
28 + rt2800_bbp_write(rt2x00dev, 92, 0x02);
29 +
30 + rt2800_bbp_write(rt2x00dev, 103, 0xc0);
31 + rt2800_bbp_write(rt2x00dev, 104, 0x92);
32 + rt2800_bbp_write(rt2x00dev, 105, 0x34);
33 + rt2800_bbp_write(rt2x00dev, 106, 0x12);
34 + rt2800_bbp_write(rt2x00dev, 120, 0x50);
35 + rt2800_bbp_write(rt2x00dev, 137, 0x0f);
36 + rt2800_bbp_write(rt2x00dev, 163, 0x9d);
37 +
38 + /* Set ITxBF timeout to 0x9C40=1000msec */
39 + rt2800_bbp_write(rt2x00dev, 179, 0x02);
40 + rt2800_bbp_write(rt2x00dev, 180, 0x00);
41 + rt2800_bbp_write(rt2x00dev, 182, 0x40);
42 + rt2800_bbp_write(rt2x00dev, 180, 0x01);
43 + rt2800_bbp_write(rt2x00dev, 182, 0x9c);
44 +
45 + rt2800_bbp_write(rt2x00dev, 179, 0x00);
46 +
47 + /* Reprogram the inband interface to put right values in RXWI */
48 + rt2800_bbp_write(rt2x00dev, 142, 0x04);
49 + rt2800_bbp_write(rt2x00dev, 143, 0x3b);
50 + rt2800_bbp_write(rt2x00dev, 142, 0x06);
51 + rt2800_bbp_write(rt2x00dev, 143, 0xa0);
52 + rt2800_bbp_write(rt2x00dev, 142, 0x07);
53 + rt2800_bbp_write(rt2x00dev, 143, 0xa1);
54 + rt2800_bbp_write(rt2x00dev, 142, 0x08);
55 + rt2800_bbp_write(rt2x00dev, 143, 0xa2);
56 + rt2800_bbp_write(rt2x00dev, 148, 0xc8);
57 +}
58 +
59 static void rt2800_init_bbp_53xx(struct rt2x00_dev *rt2x00dev)
60 {
61 int ant, div_mode;
62 @@ -6796,6 +6837,9 @@ static void rt2800_init_bbp(struct rt2x0
63 case RT3593:
64 rt2800_init_bbp_3593(rt2x00dev);
65 return;
66 + case RT3883:
67 + rt2800_init_bbp_3883(rt2x00dev);
68 + return;
69 case RT5390:
70 case RT5392:
71 rt2800_init_bbp_53xx(rt2x00dev);