wsa884x-reg-masks.h 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /*
  3. * Copyright (c) 2021, The Linux Foundation. All rights reserved.
  4. */
  5. #ifndef WSA884X_REG_MASKS_H
  6. #define WSA884X_REG_MASKS_H
  7. #include <linux/regmap.h>
  8. #include <linux/device.h>
  9. #include "wsa884x-registers.h"
  10. #define FIELD_MASK(register_name, field_name) \
  11. WSA884X_##register_name##_##field_name##_MASK
  12. #define WSA884X_VBAT_SNS_BOP_FREQ_MASK 0x60
  13. #define WSA884X_ISENSE2_ISENSE_GAIN_CTL_MASK 0xe0
  14. #define WSA884X_ADC_2_ISNS_LOAD_STORED_MASK 0x40
  15. #define WSA884X_ADC_6_INTRLV_RST_OVRD_MASK 0x02
  16. #define WSA884X_ADC_7_EN_AZ_REG_MASK 0x04
  17. #define WSA884X_ADC_7_EN_SAR_REG_MASK 0x02
  18. #define WSA884X_CURRENT_LIMIT_CURRENT_LIMIT_OVRD_EN_MASK 0x80
  19. #define WSA884X_CURRENT_LIMIT_CURRENT_LIMIT_MASK 0x7c
  20. #define WSA884X_BOOST_MISC_SPKR_RDY_CTL_MASK 0x60
  21. #define WSA884X_CKWD_CTL_0_CKWD_FDIV_SEL_MASK 0x60
  22. #define WSA884X_CKWD_CTL_1_CKWD_VCOMP_VREF_SEL_MASK 0x1f
  23. #define WSA884X_CHIP_ID0_BYTE_0_MASK 0xff
  24. #define WSA884X_PA_FSM_EN_GLOBAL_PA_EN_MASK 0x01
  25. #define WSA884X_PA_FSM_BYP_CTL_PA_FSM_BYP_MASK 0x01
  26. #define WSA884X_PA_FSM_BYP0_TSADC_EN_MASK 0x80
  27. #define WSA884X_PA_FSM_BYP0_SPKR_PROT_EN_MASK 0x40
  28. #define WSA884X_PA_FSM_BYP0_D_UNMUTE_MASK 0x20
  29. #define WSA884X_PA_FSM_BYP0_BG_EN_MASK 0x04
  30. #define WSA884X_PA_FSM_BYP0_CLK_WD_EN_MASK 0x02
  31. #define WSA884X_PA_FSM_BYP0_DC_CAL_EN_MASK 0x01
  32. #define WSA884X_TADC_VALUE_CTL_TEMP_VALUE_RD_EN_MASK 0x01
  33. #define WSA884X_TEMP_CONFIG0_CTL_THRD_SAF2WAR_MASK 0x07
  34. #define WSA884X_TEMP_CONFIG1_CTL_THRD_WAR2SAF_MASK 0x07
  35. #define WSA884X_VBAT_THRM_FLT_CTL_VBAT_COEF_SEL_MASK 0x0e
  36. #define WSA884X_VBAT_THRM_FLT_CTL_VBAT_FLT_EN_MASK 0x01
  37. #define WSA884X_CDC_SPK_DSM_A2_0_COEF_A2_MASK 0xff
  38. #define WSA884X_CDC_SPK_DSM_A2_1_COEF_A2_MASK 0x0f
  39. #define WSA884X_CDC_SPK_DSM_A3_0_COEF_A3_MASK 0xff
  40. #define WSA884X_CDC_SPK_DSM_A3_1_COEF_A3_MASK 0x07
  41. #define WSA884X_CDC_SPK_DSM_A4_0_COEF_A4_MASK 0xff
  42. #define WSA884X_CDC_SPK_DSM_A4_1_COEF_A4_MASK 0x03
  43. #define WSA884X_CDC_SPK_DSM_A5_0_COEF_A5_MASK 0xff
  44. #define WSA884X_CDC_SPK_DSM_A5_1_COEF_A5_MASK 0x03
  45. #define WSA884X_CDC_SPK_DSM_A6_0_COEF_A6_MASK 0xff
  46. #define WSA884X_CDC_SPK_DSM_A7_0_COEF_A7_MASK 0xff
  47. #define WSA884X_CDC_SPK_DSM_C_0_COEF_C3_MASK 0xf0
  48. #define WSA884X_CDC_SPK_DSM_C_0_COEF_C2_MASK 0x0f
  49. #define WSA884X_CDC_SPK_DSM_C_1_COEF_C5_MASK 0xf0
  50. #define WSA884X_CDC_SPK_DSM_C_1_COEF_C4_MASK 0x0f
  51. #define WSA884X_CDC_SPK_DSM_C_2_COEF_C7_MASK 0xf0
  52. #define WSA884X_CDC_SPK_DSM_C_2_COEF_C6_MASK 0x0f
  53. #define WSA884X_CDC_SPK_DSM_C_3_COEF_C7_MASK 0x3f
  54. #define WSA884X_CDC_SPK_DSM_R1_SAT_LIMIT_R1_MASK 0xff
  55. #define WSA884X_CDC_SPK_DSM_R2_SAT_LIMIT_R2_MASK 0xff
  56. #define WSA884X_CDC_SPK_DSM_R3_SAT_LIMIT_R3_MASK 0xff
  57. #define WSA884X_CDC_SPK_DSM_R4_SAT_LIMIT_R4_MASK 0xff
  58. #define WSA884X_CDC_SPK_DSM_R5_SAT_LIMIT_R5_MASK 0xff
  59. #define WSA884X_CDC_SPK_DSM_R6_SAT_LIMIT_R6_MASK 0xff
  60. #define WSA884X_CDC_SPK_DSM_R7_SAT_LIMIT_R7_MASK 0xff
  61. #define WSA884X_PDM_WD_CTL_PDM_WD_EN_MASK 0x01
  62. #define WSA884X_DRE_CTL_0_PROG_DELAY_MASK 0xf0
  63. #define WSA884X_DRE_CTL_0_OFFSET_MASK 0x07
  64. #define WSA884X_DRE_CTL_1_CSR_GAIN_MASK 0x3e
  65. #define WSA884X_DRE_CTL_1_CSR_GAIN_EN_MASK 0x01
  66. #define WSA884X_TAGC_CTL_THERMAL_THRESH_MASK 0x0e
  67. #define WSA884X_TAGC_CTL_THERMAL_AGC_EN_MASK 0x01
  68. #define WSA884X_TAGC_TIME_REL_TIME_MASK 0x30
  69. #define WSA884X_VAGC_CTL_VBAT_AGC_EN_MASK 0x01
  70. #define WSA884X_VAGC_TIME_REL_TIME_MASK 0x0c
  71. #define WSA884X_VAGC_TIME_HLD_TIME_MASK 0x03
  72. #define WSA884X_VAGC_ATTN_LVL_2_VBAT_ATTN_LVL_MASK 0x1f
  73. #define WSA884X_VAGC_ATTN_LVL_3_VBAT_ATTN_LVL_MASK 0x1f
  74. #define WSA884X_OTP_REG_0_WSA884X_ID_MASK 0x0f
  75. #define WSA884X_OTP_REG_1_LOW_TEMP_MSB_MASK 0xff
  76. #define WSA884X_OTP_REG_2_LOW_TEMP_LSB_MASK 0xc0
  77. #define WSA884X_OTP_REG_3_HIGH_TEMP_MSB_MASK 0xff
  78. #define WSA884X_OTP_REG_4_HIGH_TEMP_LSB_MASK 0xc0
  79. #define WSA884X_DRE_IDLE_DET_CTL_PA_OFF_FORCE_EN_MASK 0x40
  80. #define WSA884X_DRE_IDLE_DET_CTL_PDM_WD_FORCE_EN_MASK 0x20
  81. #define WSA884X_DRE_IDLE_DET_CTL_DRE_IDLE_FORCE_EN_MASK 0x10
  82. #define WSA884X_DRE_IDLE_DET_CTL_DRE_FORCE_VALUE_MASK 0x0f
  83. #endif /* WSA884X_REG_MASKS_H */