@@ -19,24 +19,43 @@ MODULE_DEVICE_TABLE(of, of_board_info_match);
1919
2020static int ver_show (struct seq_file * m , void * v )
2121{
22- int id0 , id1 , id2 ;
23- int hwid ;
22+ int hwid0 , hwid1 , hwid2 , pid0 , pid1 , pid2 ;
23+ int hwid , pid ;
2424 char * boardver ;
2525
26- id0 = gpio_get_value (hw_id0 );
27- id1 = gpio_get_value (hw_id1 );
28- id2 = gpio_get_value (hw_id2 );
29-
30- hwid = (id2 << 2 ) + (id1 << 1 ) + id0 ;
31-
32- if (hwid == 0 )
33- boardver = "1.00" ;
34- else if (hwid == 1 )
35- boardver = "1.01" ;
36- else if (hwid == 2 )
37- boardver = "1.02" ;
38- else if (hwid == 3 )
39- boardver = "1.03" ;
26+ hwid0 = gpio_get_value (hw_id0 );
27+ hwid1 = gpio_get_value (hw_id1 );
28+ hwid2 = gpio_get_value (hw_id2 );
29+
30+ hwid = (hwid2 << 2 ) + (hwid1 << 1 ) + hwid0 ;
31+
32+ pid0 = gpio_get_value (pid_id0 );
33+ pid1 = gpio_get_value (pid_id1 );
34+ pid2 = gpio_get_value (pid_id2 );
35+
36+ pid = (pid2 << 2 ) + (pid1 << 1 ) + pid0 ;
37+
38+ if (hwid == 0 ) {
39+ if (pid == 7 )
40+ boardver = "1.0" ;
41+ else
42+ boardver = "0.99" ;
43+ } else if (hwid == 1 ) {
44+ if (pid == 7 )
45+ boardver = "1.1" ;
46+ else
47+ boardver = "1.00" ;
48+ } else if (hwid == 2 ) {
49+ if (pid == 7 )
50+ boardver = "1.2" ;
51+ else
52+ boardver = "1.01" ;
53+ } else if (hwid == 3 )
54+ boardver = "2.00" ;
55+ else if (hwid == 4 )
56+ boardver = "2.01A" ;
57+ else if (hwid == 5 )
58+ boardver = "2.01B" ;
4059 else
4160 boardver = "unknown" ;
4261
@@ -46,28 +65,42 @@ static int ver_show(struct seq_file *m, void *v)
4665
4766static int info_show (struct seq_file * m , void * v )
4867{
49- int id0 , id1 , id2 ;
50- int pid ;
68+ int pid0 , pid1 , pid2 , hwid0 , hwid1 , hwid2 ;
69+ int pid , hwid ;
5170 char * boardinfo ;
5271
53- id0 = gpio_get_value (pid_id0 );
54- id1 = gpio_get_value (pid_id1 );
55- id2 = gpio_get_value (pid_id2 );
72+ pid0 = gpio_get_value (pid_id0 );
73+ pid1 = gpio_get_value (pid_id1 );
74+ pid2 = gpio_get_value (pid_id2 );
5675
57- pid = (id2 << 2 ) + (id1 << 1 ) + id0 ;
76+ pid = (pid2 << 2 ) + (pid1 << 1 ) + pid0 ;
5877
59- if (pid == 0 )
60- boardinfo = "Tinker Board S" ;
61- else if (pid == 1 )
78+ hwid0 = gpio_get_value (hw_id0 );
79+ hwid1 = gpio_get_value (hw_id1 );
80+ hwid2 = gpio_get_value (hw_id2 );
81+
82+ hwid = (hwid2 << 2 ) + (hwid1 << 1 ) + hwid0 ;
83+
84+ if (pid == 0 ) {
85+ if (hwid < 3 )
86+ boardinfo = "Tinker Board S" ;
87+ else
88+ boardinfo = "Tinker Board S R2" ;
89+ } else if (pid == 1 )
6290 boardinfo = "Tinker Board S/HV" ;
6391 else if (pid == 2 )
6492 boardinfo = "Tinker Board S" ;
6593 else if (pid == 3 )
66- boardinfo = "Tinker Board R2 " ;
94+ boardinfo = "Tinker Board (S) R2 SR " ;
6795 else if (pid == 4 )
6896 boardinfo = "Tinker R/BR" ;
97+ else if (pid == 5 )
98+ boardinfo = "Tinker R/BR" ;
6999 else if (pid == 7 )
70- boardinfo = "Tinker Board" ;
100+ if (hwid < 3 )
101+ boardinfo = "Tinker Board" ;
102+ else
103+ boardinfo = "Tinker Board R2" ;
71104 else
72105 boardinfo = "unknown" ;
73106
0 commit comments