96
96
97
97
#define LVTS_MINIMUM_THRESHOLD 20000
98
98
99
- static const u32 default_conn_cmds [] = { 0xC103FFFF , 0xC502FF55 };
100
- /*
101
- * Write device mask: 0xC1030000
102
- */
103
- static const u32 default_init_cmds [] = {
104
- 0xC1030E01 , 0xC1030CFC , 0xC1030A8C , 0xC103098D , 0xC10308F1 ,
105
- 0xC10307A6 , 0xC10306B8 , 0xC1030500 , 0xC1030420 , 0xC1030300 ,
106
- 0xC1030030 , 0xC10300F6 , 0xC1030050 , 0xC1030060 , 0xC10300AC ,
107
- 0xC10300FC , 0xC103009D , 0xC10300F1 , 0xC10300E1
108
- };
109
-
110
99
static int golden_temp = LVTS_GOLDEN_TEMP_DEFAULT ;
111
100
static int golden_temp_offset ;
112
101
@@ -136,7 +125,11 @@ struct lvts_ctrl_data {
136
125
137
126
struct lvts_data {
138
127
const struct lvts_ctrl_data * lvts_ctrl ;
128
+ const u32 * conn_cmd ;
129
+ const u32 * init_cmd ;
139
130
int num_lvts_ctrl ;
131
+ int num_conn_cmd ;
132
+ int num_init_cmd ;
140
133
int temp_factor ;
141
134
int temp_offset ;
142
135
int gt_calib_bit_offset ;
@@ -996,9 +989,10 @@ static int lvts_ctrl_set_enable(struct lvts_ctrl *lvts_ctrl, int enable)
996
989
997
990
static int lvts_ctrl_connect (struct device * dev , struct lvts_ctrl * lvts_ctrl )
998
991
{
992
+ const struct lvts_data * lvts_data = lvts_ctrl -> lvts_data ;
999
993
u32 id ;
1000
994
1001
- lvts_write_config (lvts_ctrl , default_conn_cmds , ARRAY_SIZE ( default_conn_cmds ) );
995
+ lvts_write_config (lvts_ctrl , lvts_data -> conn_cmd , lvts_data -> num_conn_cmd );
1002
996
1003
997
/*
1004
998
* LVTS_ID : Get ID and status of the thermal controller
@@ -1017,7 +1011,9 @@ static int lvts_ctrl_connect(struct device *dev, struct lvts_ctrl *lvts_ctrl)
1017
1011
1018
1012
static int lvts_ctrl_initialize (struct device * dev , struct lvts_ctrl * lvts_ctrl )
1019
1013
{
1020
- lvts_write_config (lvts_ctrl , default_init_cmds , ARRAY_SIZE (default_init_cmds ));
1014
+ const struct lvts_data * lvts_data = lvts_ctrl -> lvts_data ;
1015
+
1016
+ lvts_write_config (lvts_ctrl , lvts_data -> init_cmd , lvts_data -> num_init_cmd );
1021
1017
1022
1018
return 0 ;
1023
1019
}
@@ -1446,6 +1442,17 @@ static int lvts_resume(struct device *dev)
1446
1442
return 0 ;
1447
1443
}
1448
1444
1445
+ static const u32 default_conn_cmds [] = { 0xC103FFFF , 0xC502FF55 };
1446
+ /*
1447
+ * Write device mask: 0xC1030000
1448
+ */
1449
+ static const u32 default_init_cmds [] = {
1450
+ 0xC1030E01 , 0xC1030CFC , 0xC1030A8C , 0xC103098D , 0xC10308F1 ,
1451
+ 0xC10307A6 , 0xC10306B8 , 0xC1030500 , 0xC1030420 , 0xC1030300 ,
1452
+ 0xC1030030 , 0xC10300F6 , 0xC1030050 , 0xC1030060 , 0xC10300AC ,
1453
+ 0xC10300FC , 0xC103009D , 0xC10300F1 , 0xC10300E1
1454
+ };
1455
+
1449
1456
/*
1450
1457
* The MT8186 calibration data is stored as packed 3-byte little-endian
1451
1458
* values using a weird layout that makes sense only when viewed as a 32-bit
@@ -1740,15 +1747,23 @@ static const struct lvts_ctrl_data mt8195_lvts_ap_data_ctrl[] = {
1740
1747
1741
1748
static const struct lvts_data mt7988_lvts_ap_data = {
1742
1749
.lvts_ctrl = mt7988_lvts_ap_data_ctrl ,
1750
+ .conn_cmd = default_conn_cmds ,
1751
+ .init_cmd = default_init_cmds ,
1743
1752
.num_lvts_ctrl = ARRAY_SIZE (mt7988_lvts_ap_data_ctrl ),
1753
+ .num_conn_cmd = ARRAY_SIZE (default_conn_cmds ),
1754
+ .num_init_cmd = ARRAY_SIZE (default_init_cmds ),
1744
1755
.temp_factor = LVTS_COEFF_A_MT7988 ,
1745
1756
.temp_offset = LVTS_COEFF_B_MT7988 ,
1746
1757
.gt_calib_bit_offset = 24 ,
1747
1758
};
1748
1759
1749
1760
static const struct lvts_data mt8186_lvts_data = {
1750
1761
.lvts_ctrl = mt8186_lvts_data_ctrl ,
1762
+ .conn_cmd = default_conn_cmds ,
1763
+ .init_cmd = default_init_cmds ,
1751
1764
.num_lvts_ctrl = ARRAY_SIZE (mt8186_lvts_data_ctrl ),
1765
+ .num_conn_cmd = ARRAY_SIZE (default_conn_cmds ),
1766
+ .num_init_cmd = ARRAY_SIZE (default_init_cmds ),
1752
1767
.temp_factor = LVTS_COEFF_A_MT7988 ,
1753
1768
.temp_offset = LVTS_COEFF_B_MT7988 ,
1754
1769
.gt_calib_bit_offset = 24 ,
@@ -1757,7 +1772,11 @@ static const struct lvts_data mt8186_lvts_data = {
1757
1772
1758
1773
static const struct lvts_data mt8188_lvts_mcu_data = {
1759
1774
.lvts_ctrl = mt8188_lvts_mcu_data_ctrl ,
1775
+ .conn_cmd = default_conn_cmds ,
1776
+ .init_cmd = default_init_cmds ,
1760
1777
.num_lvts_ctrl = ARRAY_SIZE (mt8188_lvts_mcu_data_ctrl ),
1778
+ .num_conn_cmd = ARRAY_SIZE (default_conn_cmds ),
1779
+ .num_init_cmd = ARRAY_SIZE (default_init_cmds ),
1761
1780
.temp_factor = LVTS_COEFF_A_MT8195 ,
1762
1781
.temp_offset = LVTS_COEFF_B_MT8195 ,
1763
1782
.gt_calib_bit_offset = 20 ,
@@ -1766,7 +1785,11 @@ static const struct lvts_data mt8188_lvts_mcu_data = {
1766
1785
1767
1786
static const struct lvts_data mt8188_lvts_ap_data = {
1768
1787
.lvts_ctrl = mt8188_lvts_ap_data_ctrl ,
1788
+ .conn_cmd = default_conn_cmds ,
1789
+ .init_cmd = default_init_cmds ,
1769
1790
.num_lvts_ctrl = ARRAY_SIZE (mt8188_lvts_ap_data_ctrl ),
1791
+ .num_conn_cmd = ARRAY_SIZE (default_conn_cmds ),
1792
+ .num_init_cmd = ARRAY_SIZE (default_init_cmds ),
1770
1793
.temp_factor = LVTS_COEFF_A_MT8195 ,
1771
1794
.temp_offset = LVTS_COEFF_B_MT8195 ,
1772
1795
.gt_calib_bit_offset = 20 ,
@@ -1775,7 +1798,11 @@ static const struct lvts_data mt8188_lvts_ap_data = {
1775
1798
1776
1799
static const struct lvts_data mt8192_lvts_mcu_data = {
1777
1800
.lvts_ctrl = mt8192_lvts_mcu_data_ctrl ,
1801
+ .conn_cmd = default_conn_cmds ,
1802
+ .init_cmd = default_init_cmds ,
1778
1803
.num_lvts_ctrl = ARRAY_SIZE (mt8192_lvts_mcu_data_ctrl ),
1804
+ .num_conn_cmd = ARRAY_SIZE (default_conn_cmds ),
1805
+ .num_init_cmd = ARRAY_SIZE (default_init_cmds ),
1779
1806
.temp_factor = LVTS_COEFF_A_MT8195 ,
1780
1807
.temp_offset = LVTS_COEFF_B_MT8195 ,
1781
1808
.gt_calib_bit_offset = 24 ,
@@ -1784,7 +1811,11 @@ static const struct lvts_data mt8192_lvts_mcu_data = {
1784
1811
1785
1812
static const struct lvts_data mt8192_lvts_ap_data = {
1786
1813
.lvts_ctrl = mt8192_lvts_ap_data_ctrl ,
1814
+ .conn_cmd = default_conn_cmds ,
1815
+ .init_cmd = default_init_cmds ,
1787
1816
.num_lvts_ctrl = ARRAY_SIZE (mt8192_lvts_ap_data_ctrl ),
1817
+ .num_conn_cmd = ARRAY_SIZE (default_conn_cmds ),
1818
+ .num_init_cmd = ARRAY_SIZE (default_init_cmds ),
1788
1819
.temp_factor = LVTS_COEFF_A_MT8195 ,
1789
1820
.temp_offset = LVTS_COEFF_B_MT8195 ,
1790
1821
.gt_calib_bit_offset = 24 ,
@@ -1793,7 +1824,11 @@ static const struct lvts_data mt8192_lvts_ap_data = {
1793
1824
1794
1825
static const struct lvts_data mt8195_lvts_mcu_data = {
1795
1826
.lvts_ctrl = mt8195_lvts_mcu_data_ctrl ,
1827
+ .conn_cmd = default_conn_cmds ,
1828
+ .init_cmd = default_init_cmds ,
1796
1829
.num_lvts_ctrl = ARRAY_SIZE (mt8195_lvts_mcu_data_ctrl ),
1830
+ .num_conn_cmd = ARRAY_SIZE (default_conn_cmds ),
1831
+ .num_init_cmd = ARRAY_SIZE (default_init_cmds ),
1797
1832
.temp_factor = LVTS_COEFF_A_MT8195 ,
1798
1833
.temp_offset = LVTS_COEFF_B_MT8195 ,
1799
1834
.gt_calib_bit_offset = 24 ,
@@ -1802,7 +1837,11 @@ static const struct lvts_data mt8195_lvts_mcu_data = {
1802
1837
1803
1838
static const struct lvts_data mt8195_lvts_ap_data = {
1804
1839
.lvts_ctrl = mt8195_lvts_ap_data_ctrl ,
1840
+ .conn_cmd = default_conn_cmds ,
1841
+ .init_cmd = default_init_cmds ,
1805
1842
.num_lvts_ctrl = ARRAY_SIZE (mt8195_lvts_ap_data_ctrl ),
1843
+ .num_conn_cmd = ARRAY_SIZE (default_conn_cmds ),
1844
+ .num_init_cmd = ARRAY_SIZE (default_init_cmds ),
1806
1845
.temp_factor = LVTS_COEFF_A_MT8195 ,
1807
1846
.temp_offset = LVTS_COEFF_B_MT8195 ,
1808
1847
.gt_calib_bit_offset = 24 ,
0 commit comments