Browse Source

asoc: codecs: Add WSA init reg writes

Update to latest sequence from WSA hardware systems team.
Add writes for VADC, BG, Boost

Change-Id: Ic61e1c36154ff673fce05546332e89fe683a3075
Signed-off-by: Matthew Rice <[email protected]>
Matthew Rice 3 years ago
parent
commit
5403d47a9a

+ 19 - 0
asoc/codecs/wsa884x/wsa884x-reg-masks.h

@@ -214,4 +214,23 @@
 #define WSA884X_CKWD_CTL_1_SPARE_BITS_7_6_MASK                           0xc0
 #define WSA884X_CKWD_CTL_1_VPP_SW_CTL_MASK                               0x20
 #define WSA884X_CKWD_CTL_1_CKWD_VCOMP_VREF_SEL_MASK                      0x1f
+/* WSA884X_VBAT_CAL_CTL Fields: */
+#define WSA884X_VBAT_CAL_CTL_RESERVE_MASK                                0x0e
+#define WSA884X_VBAT_CAL_CTL_VBAT_CAL_EN_MASK                            0x01
+/* WSA884X_REF_CTRL Fields: */
+#define WSA884X_REF_CTRL_DC_STARTUP_EN_MASK                              0x80
+#define WSA884X_REF_CTRL_DC_STARTUP_HOLD_MASK                            0x40
+#define WSA884X_REF_CTRL_TRAN_STARTUP_EN_CORE_MASK                       0x20
+#define WSA884X_REF_CTRL_TRAN_STARTUP_EN_PTAT_MASK                       0x10
+#define WSA884X_REF_CTRL_BG_EN_MASK                                      0x08
+#define WSA884X_REF_CTRL_BG_READY_FORCE_MASK                             0x04
+#define WSA884X_REF_CTRL_BG_RDY_SEL_MASK                                 0x03
+/* WSA884X_ZX_CTRL1 Fields: */
+#define WSA884X_ZX_CTRL1_ZX_DET_EN_MASK                                  0x80
+#define WSA884X_ZX_CTRL1_ZX_DET_SW_EN_MASK                               0x40
+#define WSA884X_ZX_CTRL1_ZX_DET_STAGE_DEFAULT_MASK                       0x20
+#define WSA884X_ZX_CTRL1_ZX_DET_SW_SEL_MASK                              0x18
+#define WSA884X_ZX_CTRL1_ZX_BYP_MASK_IGNORE_MASK                         0x04
+#define WSA884X_ZX_CTRL1_ZX_BYP_MASK_DEL_MASK                            0x02
+#define WSA884X_ZX_CTRL1_BOOTCAP_REFRESH_DIS_MASK                        0x01
 #endif /* WSA884X_REG_MASKS_H */

+ 19 - 0
asoc/codecs/wsa884x/wsa884x-reg-shifts.h

@@ -204,4 +204,23 @@
 #define WSA884X_CKWD_CTL_1_SPARE_BITS_7_6_SHIFT                           0x06
 #define WSA884X_CKWD_CTL_1_VPP_SW_CTL_SHIFT                               0x05
 #define WSA884X_CKWD_CTL_1_CKWD_VCOMP_VREF_SEL_SHIFT                      0x00
+/* WSA884X_VBAT_CAL_CTL Fields: */
+#define WSA884X_VBAT_CAL_CTL_RESERVE_SHIFT                                0x01
+#define WSA884X_VBAT_CAL_CTL_VBAT_CAL_EN_SHIFT                            0x00
+/* WSA884X_REF_CTRL Fields: */
+#define WSA884X_REF_CTRL_DC_STARTUP_EN_SHIFT                              0x07
+#define WSA884X_REF_CTRL_DC_STARTUP_HOLD_SHIFT                            0x06
+#define WSA884X_REF_CTRL_TRAN_STARTUP_EN_CORE_SHIFT                       0x05
+#define WSA884X_REF_CTRL_TRAN_STARTUP_EN_PTAT_SHIFT                       0x04
+#define WSA884X_REF_CTRL_BG_EN_SHIFT                                      0x03
+#define WSA884X_REF_CTRL_BG_READY_FORCE_SHIFT                             0x02
+#define WSA884X_REF_CTRL_BG_RDY_SEL_SHIFT                                 0x00
+/* WSA884X_ZX_CTRL1 Fields: */
+#define WSA884X_ZX_CTRL1_ZX_DET_EN_SHIFT                                  0x07
+#define WSA884X_ZX_CTRL1_ZX_DET_SW_EN_SHIFT                               0x06
+#define WSA884X_ZX_CTRL1_ZX_DET_STAGE_DEFAULT_SHIFT                       0x05
+#define WSA884X_ZX_CTRL1_ZX_DET_SW_SEL_SHIFT                              0x03
+#define WSA884X_ZX_CTRL1_ZX_BYP_MASK_IGNORE_SHIFT                         0x02
+#define WSA884X_ZX_CTRL1_ZX_BYP_MASK_DEL_SHIFT                            0x01
+#define WSA884X_ZX_CTRL1_BOOTCAP_REFRESH_DIS_SHIFT                        0x00
 #endif /* WSA884X_REG_SHIFTS_H */

+ 4 - 1
asoc/codecs/wsa884x/wsa884x.c

@@ -125,6 +125,9 @@ static const struct wsa_reg_mask_val reg_init[] = {
 	{REG_FIELD_VALUE(CKWD_CTL_1, CKWD_VCOMP_VREF_SEL, 0x13)},
 	{REG_FIELD_VALUE(BOP2_PROG, BOP2_VTH, 0x06)},
 	{REG_FIELD_VALUE(BOP2_PROG, BOP2_HYST, 0x06)},
+	{REG_FIELD_VALUE(VBAT_CAL_CTL, RESERVE, 0x02)},
+	{REG_FIELD_VALUE(REF_CTRL, BG_RDY_SEL, 0x01)},
+	{REG_FIELD_VALUE(ZX_CTRL1, ZX_DET_SW_SEL, 0x03)},
 };
 
 static int wsa884x_handle_post_irq(void *data);
@@ -620,7 +623,7 @@ static int wsa884x_set_gain_parameters(struct snd_soc_component *component)
 		snd_soc_component_update_bits(component,
 			REG_FIELD_VALUE(DRE_CTL_1, CSR_GAIN_EN, 0x00));
 	} else {
-		wsa884x->pa_aux_gain = pa_aux_no_comp[wsa884x->system_gain];
+		wsa884x->pa_aux_gain = pa_aux_no_comp[wsa884x->pa_gain];
 		snd_soc_component_update_bits(component,
 			REG_FIELD_VALUE(DRE_CTL_1, CSR_GAIN_EN, 0x01));
 		snd_soc_component_update_bits(component,