File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -18,6 +18,10 @@ class CS42L84Tracer(I2CRegMapTracer):
1818 REGMAP = CS42L84Regs
1919 ADDRESSING = (0 , 2 )
2020
21+ class SSM3515Tracer (I2CRegMapTracer ):
22+ REGMAP = SSM3515Regs
23+ ADDRESSING = (0 , 1 )
24+
2125i2c_tracers = {}
2226
2327for node in hv .adt ["/arm-io" ]:
@@ -35,6 +39,7 @@ class CS42L84Tracer(I2CRegMapTracer):
3539 "audio-control,tas5770" : TAS5770Tracer ,
3640 "audio-control,sn012776" : SN012776Tracer ,
3741 "audio-control,cs42l84" : CS42L84Tracer ,
42+ "audio-control,ssm3515" : SSM3515Tracer ,
3843 }.get (devnode .compatible [0 ], None )
3944 if dcls :
4045 bus .add_device (
Original file line number Diff line number Diff line change 11from m1n1 .utils import RegMap , Register8
22from enum import IntEnum
33from .cs42l84 import *
4+ from .ssm3515 import *
45
56class E_PWR_MODE (IntEnum ):
67 ACTIVE = 0
Original file line number Diff line number Diff line change 1+ from m1n1 .utils import Register8 , RegMap
2+ from enum import IntEnum
3+
4+ class R_PWR (Register8 ):
5+ APWDN_EN = 7
6+ BSNS_PWDN = 6
7+ S_RST = 1
8+ SPWDN = 0
9+
10+ class R_GEC (Register8 ):
11+ EDGE = 4
12+ ANA_GAIN = 1 , 0
13+
14+ class E_FS (IntEnum ):
15+ FS_8_12 = 0b000
16+ FS_16_24 = 0b001
17+ FS_32_48 = 0b010
18+ FS_64_96 = 0b011
19+ FS_128_192 = 0b100
20+ FS_48_72 = 0b101
21+
22+ class R_DAC (Register8 ):
23+ HV = 7
24+ MUTE = 6
25+ HPF = 5
26+ LPM = 4
27+ FS = 1 , 0 , E_FS
28+
29+ class R_SAI1 (Register8 ):
30+ DAC_POL = 7
31+ BCLK_POL = 6
32+ TDM_BCLKS = 5 , 3
33+ FSYNC_MODE = 2
34+ SDATA_FMT = 1
35+ SAI_MODE = 0
36+
37+ class R_SAI2 (Register8 ):
38+ DATA_WIDTH = 7
39+ AUTO_SLOT = 4
40+ TDM_SLOT = 3 , 0
41+
42+ class R_STATUS (Register8 ):
43+ UVLO_VREG = 6
44+ LIM_EG = 5
45+ CLIP = 4
46+ AMP_OC = 3
47+ OTF = 2
48+ OTW = 1
49+ BAT_WARN = 0
50+
51+ class SSM3515Regs (RegMap ):
52+ PWR = 0x00 , R_PWR
53+ GEC = 0x01 , R_GEC
54+ DAC = 0x02 , R_DAC
55+ DAC_VOL = 0x03 , Register8
56+ SAI1 = 0x04 , R_SAI1
57+ SAI2 = 0x05 , R_SAI2
58+ VBAT_OUT = 0x06 , Register8
59+ LIM1 = 0x07 , Register8
60+ LIM2 = 0x08 , Register8
61+ LIM3 = 0x09 , Register8
62+ STATUS = 0x0a , Register8
63+ FAULT = 0x0b , Register8
Original file line number Diff line number Diff line change @@ -28,6 +28,10 @@ class CS42L84(I2CRegMapDev):
2828 REGMAP = CS42L84Regs
2929 ADDRESSING = (0 , 2 )
3030
31+ class SSM3515 (I2CRegMapDev ):
32+ REGMAP = SSM3515Regs
33+ ADDRESSING = (0 , 1 )
34+
3135gpios = {}
3236for node in u .adt ["/arm-io" ]:
3337 if node .name .endswith ("gpio" ) or node .name .endswith ("gpio0" ):
@@ -49,6 +53,7 @@ class CS42L84(I2CRegMapDev):
4953 "audio-control,tas5770" : TAS5770 ,
5054 "audio-control,sn012776" : SN012776 ,
5155 "audio-control,cs42l84" : CS42L84 ,
56+ "audio-control,ssm3515" : SSM3515 ,
5257 }.get (devnode .compatible [0 ], None )
5358
5459 if not dcls :
@@ -58,7 +63,7 @@ class CS42L84(I2CRegMapDev):
5863 dev .node = devnode
5964 i2c [n ].devs .append (dev )
6065
61- if type (dev ) in [TAS5770 , SN012776 ]:
66+ if type (dev ) in [TAS5770 , SN012776 , SSM3515 ]:
6267 spks .append (dev )
6368 else :
6469 hp = dev
You can’t perform that action at this time.
0 commit comments