xref: /openwifi/user_space/rf_init_11n.sh (revision 7d486245480dae401410db528f878dea8fb571bb)
1*7d486245SXianjun Jiao#!/bin/sh
2*7d486245SXianjun Jiao
3*7d486245SXianjun Jiao# Author: Xianjun Jiao
4*7d486245SXianjun Jiao# SPDX-FileCopyrightText: 2019 UGent
5*7d486245SXianjun Jiao# SPDX-License-Identifier: AGPL-3.0-or-later
6*7d486245SXianjun Jiao
7*7d486245SXianjun Jiaohome_dir=$(pwd)
8*7d486245SXianjun Jiao
9*7d486245SXianjun Jiao#if [ -z "$1" ]
10*7d486245SXianjun Jiao#then
11*7d486245SXianjun Jiao#  tx_offset_tuning_enable=1
12*7d486245SXianjun Jiao#else
13*7d486245SXianjun Jiao  tx_offset_tuning_enable=0
14*7d486245SXianjun Jiao#fi
15*7d486245SXianjun Jiaoecho tx_offset_tuning_enable $tx_offset_tuning_enable
16*7d486245SXianjun Jiao
17*7d486245SXianjun Jiao#if [ $tx_offset_tuning_enable = "1" ]
18*7d486245SXianjun Jiao#then
19*7d486245SXianjun Jiao#  fir_filename="openwifi_ad9361_fir.ftr"
20*7d486245SXianjun Jiao#  tx_fir_enable=0
21*7d486245SXianjun Jiao#else
22*7d486245SXianjun Jiao#  fir_filename="openwifi_ad9361_fir_tx_0MHz.ftr"
23*7d486245SXianjun Jiao#  tx_fir_enable=1
24*7d486245SXianjun Jiao#fi
25*7d486245SXianjun Jiao
26*7d486245SXianjun Jiaofir_filename="openwifi_ad9361_fir_tx_0MHz_11n.ftr"
27*7d486245SXianjun Jiaotx_fir_enable=1
28*7d486245SXianjun Jiao
29*7d486245SXianjun Jiaoecho $fir_filename "tx_fir_enable" $tx_fir_enable
30*7d486245SXianjun Jiao
31*7d486245SXianjun Jiaoif test -f $fir_filename; then
32*7d486245SXianjun Jiao  echo "Found" $fir_filename
33*7d486245SXianjun Jiaoelse
34*7d486245SXianjun Jiao  echo "Can not find" $fir_filename
35*7d486245SXianjun Jiao  exit 1
36*7d486245SXianjun Jiaofi
37*7d486245SXianjun Jiao
38*7d486245SXianjun Jiaoset -x
39*7d486245SXianjun Jiaoif test -f "/sys/bus/iio/devices/iio:device0/in_voltage_rf_bandwidth"; then
40*7d486245SXianjun Jiao  cd /sys/bus/iio/devices/iio:device0/
41*7d486245SXianjun Jiaoelse if test -f "/sys/bus/iio/devices/iio:device1/in_voltage_rf_bandwidth"; then
42*7d486245SXianjun Jiao       cd /sys/bus/iio/devices/iio:device1/
43*7d486245SXianjun Jiao     else if test -f "/sys/bus/iio/devices/iio:device2/in_voltage_rf_bandwidth"; then
44*7d486245SXianjun Jiao            cd /sys/bus/iio/devices/iio:device2/
45*7d486245SXianjun Jiao          else if test -f "/sys/bus/iio/devices/iio:device3/in_voltage_rf_bandwidth"; then
46*7d486245SXianjun Jiao                 cd /sys/bus/iio/devices/iio:device3/
47*7d486245SXianjun Jiao               else if test -f "/sys/bus/iio/devices/iio:device4/in_voltage_rf_bandwidth"; then
48*7d486245SXianjun Jiao                      cd /sys/bus/iio/devices/iio:device4/
49*7d486245SXianjun Jiao                    else
50*7d486245SXianjun Jiao                      echo "Can not find in_voltage_rf_bandwidth!"
51*7d486245SXianjun Jiao                      echo "Check log to make sure ad9361 driver is loaded!"
52*7d486245SXianjun Jiao                      exit 1
53*7d486245SXianjun Jiao                    fi
54*7d486245SXianjun Jiao               fi
55*7d486245SXianjun Jiao          fi
56*7d486245SXianjun Jiao     fi
57*7d486245SXianjun Jiaofi
58*7d486245SXianjun Jiaoset +x
59*7d486245SXianjun Jiao
60*7d486245SXianjun Jiaoecho 25215513 >  in_voltage_rf_bandwidth
61*7d486245SXianjun Jiaosync
62*7d486245SXianjun Jiaoecho 25215414 >  out_voltage_rf_bandwidth
63*7d486245SXianjun Jiaosync
64*7d486245SXianjun Jiaoecho 40000000 >  in_voltage_sampling_frequency
65*7d486245SXianjun Jiaosync
66*7d486245SXianjun Jiaoecho 40000000 >  out_voltage_sampling_frequency
67*7d486245SXianjun Jiaosync
68*7d486245SXianjun Jiaosleep 1
69*7d486245SXianjun Jiao
70*7d486245SXianjun Jiaoecho 1000000000 >  out_altvoltage0_RX_LO_frequency
71*7d486245SXianjun Jiaosync
72*7d486245SXianjun Jiaoecho 1000000000 >  out_altvoltage1_TX_LO_frequency
73*7d486245SXianjun Jiaosync
74*7d486245SXianjun Jiao
75*7d486245SXianjun Jiaocat $home_dir/$fir_filename > filter_fir_config
76*7d486245SXianjun Jiaosync
77*7d486245SXianjun Jiaosleep 0.5
78*7d486245SXianjun Jiaoecho 1 > in_voltage_filter_fir_en
79*7d486245SXianjun Jiaoecho $tx_fir_enable > out_voltage_filter_fir_en
80*7d486245SXianjun Jiaocat filter_fir_config
81*7d486245SXianjun Jiaocat in_voltage_filter_fir_en
82*7d486245SXianjun Jiaocat out_voltage_filter_fir_en
83*7d486245SXianjun Jiao
84*7d486245SXianjun Jiaoecho "rx0 agc fast_attack"
85*7d486245SXianjun Jiao#echo "rx0 agc manual"
86*7d486245SXianjun Jiaocat in_voltage0_gain_control_mode
87*7d486245SXianjun Jiaoecho fast_attack > in_voltage0_gain_control_mode
88*7d486245SXianjun Jiao#echo manual > in_voltage0_gain_control_mode
89*7d486245SXianjun Jiaocat in_voltage0_gain_control_mode
90*7d486245SXianjun Jiaosync
91*7d486245SXianjun Jiao
92*7d486245SXianjun Jiaoecho "rx1 agc fast_attack"
93*7d486245SXianjun Jiao#echo "rx1 agc manual"
94*7d486245SXianjun Jiaocat in_voltage1_gain_control_mode
95*7d486245SXianjun Jiaoecho fast_attack > in_voltage1_gain_control_mode
96*7d486245SXianjun Jiao#echo manual > in_voltage1_gain_control_mode
97*7d486245SXianjun Jiaocat in_voltage1_gain_control_mode
98*7d486245SXianjun Jiaosync
99*7d486245SXianjun Jiaosleep 1
100*7d486245SXianjun Jiao
101*7d486245SXianjun Jiaocat in_voltage_sampling_frequency
102*7d486245SXianjun Jiaocat in_voltage_rf_bandwidth
103*7d486245SXianjun Jiaocat out_voltage_sampling_frequency
104*7d486245SXianjun Jiaocat out_voltage_rf_bandwidth
105*7d486245SXianjun Jiao
106*7d486245SXianjun Jiaoecho "rssi"
107*7d486245SXianjun Jiaocat in_voltage0_rssi
108*7d486245SXianjun Jiaocat in_voltage1_rssi
109*7d486245SXianjun Jiao
110*7d486245SXianjun Jiao# #  --------not needed maybe-------- # #
111*7d486245SXianjun Jiaoecho "rx0 gain to 70" # this set gain is gpio gain - 5dB (test with agc and read back gpio in driver)
112*7d486245SXianjun Jiaocat in_voltage0_hardwaregain
113*7d486245SXianjun Jiaoecho 70 > in_voltage0_hardwaregain
114*7d486245SXianjun Jiaocat in_voltage0_hardwaregain
115*7d486245SXianjun Jiaosync
116*7d486245SXianjun Jiao
117*7d486245SXianjun Jiaoecho "rx1 gain to 70"
118*7d486245SXianjun Jiaocat in_voltage1_hardwaregain
119*7d486245SXianjun Jiaoecho 70 > in_voltage1_hardwaregain
120*7d486245SXianjun Jiaocat in_voltage1_hardwaregain
121*7d486245SXianjun Jiaosync
122*7d486245SXianjun Jiao
123*7d486245SXianjun Jiaoecho "tx0 gain -89dB"
124*7d486245SXianjun Jiaocat out_voltage0_hardwaregain
125*7d486245SXianjun Jiaoecho -89 > out_voltage0_hardwaregain
126*7d486245SXianjun Jiaocat out_voltage0_hardwaregain
127*7d486245SXianjun Jiaosync
128*7d486245SXianjun Jiao
129*7d486245SXianjun Jiaoecho "tx1 gain 0dB"
130*7d486245SXianjun Jiaocat out_voltage1_hardwaregain
131*7d486245SXianjun Jiaoecho 0 > out_voltage1_hardwaregain
132*7d486245SXianjun Jiaocat out_voltage1_hardwaregain
133*7d486245SXianjun Jiaosync
134*7d486245SXianjun Jiao# #  --------not needed maybe-------- # #
135*7d486245SXianjun Jiao
136*7d486245SXianjun Jiaocd $home_dir
137*7d486245SXianjun Jiao
138