1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 /* 3 * Copyright Openedhand Ltd. 4 * 5 * Author: Richard Purdie <richard@openedhand.com> 6 * Binbin Zhou <zhoubinbin@loongson.cn> 7 * 8 */ 9 10 #ifndef _ES8323_H 11 #define _ES8323_H 12 13 /* ES8323 register space */ 14 15 /* Chip Control and Power Management */ 16 #define ES8323_CONTROL1 0x00 17 #define ES8323_CONTROL2 0x01 18 #define ES8323_CHIPPOWER 0x02 19 20 #define ES8323_CHIPPOWER_DACVREF_OFF 0 21 #define ES8323_CHIPPOWER_ADCVREF_OFF 1 22 #define ES8323_CHIPPOWER_DACDLL_OFF 2 23 #define ES8323_CHIPPOWER_ADCDLL_OFF 3 24 #define ES8323_CHIPPOWER_DACSTM_RESET 4 25 #define ES8323_CHIPPOWER_ADCSTM_RESET 5 26 #define ES8323_CHIPPOWER_DACDIG_OFF 6 27 #define ES8323_CHIPPOWER_ADCDIG_OFF 7 28 29 #define ES8323_ADCPOWER 0x03 30 31 #define ES8323_ADCPOWER_INT1LP BIT(0) 32 #define ES8323_ADCPOWER_FLASHLP BIT(1) 33 #define ES8323_ADCPOWER_PDNADCBIS BIT(2) 34 #define ES8323_ADCPOWER_PDNMICB BIT(3) 35 36 #define ES8323_ADCPOWER_PDNADCBIS_OFF 2 37 #define ES8323_ADCPOWER_PDNMICB_OFF 3 38 #define ES8323_ADCPOWER_PDNADCR_OFF 4 39 #define ES8323_ADCPOWER_PDNADCL_OFF 5 40 #define ES8323_ADCPOWER_PDNAINR_OFF 6 41 #define ES8323_ADCPOWER_PDNAINL_OFF 7 42 43 #define ES8323_DACPOWER 0x04 44 45 #define ES8323_DACPOWER_ROUT2_OFF 2 46 #define ES8323_DACPOWER_LOUT2_OFF 3 47 #define ES8323_DACPOWER_ROUT1_OFF 4 48 #define ES8323_DACPOWER_LOUT1_OFF 5 49 #define ES8323_DACPOWER_PDNDACR_OFF 6 50 #define ES8323_DACPOWER_PDNDACL_OFF 7 51 52 #define ES8323_CHIPLOPOW1 0x05 53 #define ES8323_CHIPLOPOW2 0x06 54 #define ES8323_ANAVOLMANAG 0x07 55 #define ES8323_MASTERMODE 0x08 56 57 #define ES8323_MASTERMODE_BCLKDIV GENMASK(4, 0) 58 #define ES8323_MASTERMODE_BCLKINV BIT(5) 59 #define ES8323_MASTERMODE_MCLKDIV2 BIT(6) 60 #define ES8323_MASTERMODE_MSC BIT(7) 61 62 /* ADC Control */ 63 #define ES8323_ADCCONTROL1 0x09 64 65 #define ES8323_ADCCONTROL1_MICAMPR_OFF 0 66 #define ES8323_ADCCONTROL1_MICAMPL_OFF 4 67 68 #define ES8323_ADCCONTROL2 0x0a 69 #define ES8323_ADCCONTROL3 0x0b 70 #define ES8323_ADCCONTROL4 0x0c 71 72 #define ES8323_ADCCONTROL4_ADCFORMAT GENMASK(1, 0) 73 #define ES8323_FMT_I2S 0x0 74 #define ES8323_FMT_LEFT_J 0x1 75 #define ES8323_FMT_RIGHT_J 0x2 76 #define ES8323_FMT_DSP 0x3 77 #define ES8323_ADCCONTROL4_ADCWL GENMASK(4, 2) 78 #define ES8323_S24_LE 0x0 79 #define ES8323_S20_LE 0x1 80 #define ES8323_S18_LE 0x2 81 #define ES8323_S16_LE 0x3 82 #define ES8323_S32_LE 0x4 83 #define ES8323_ADCCONTROL4_ADCLRP BIT(5) 84 #define ES8323_ADCCONTROL4_DATSEL GENMASK(7, 6) 85 86 #define ES8323_ADCCONTROL5 0x0d 87 88 #define ES8323_ADCCONTROL5_ADCFSRATIO GENMASK(4, 0) 89 #define ES8323_ADCCONTROL5_ADCFSMODE BIT(5) 90 #define ES8323_ADCCONTROL5_ADCFS_MASK (ES8323_ADCCONTROL5_ADCFSRATIO |\ 91 ES8323_ADCCONTROL5_ADCFSMODE) 92 93 #define ES8323_ADCCONTROL6 0x0e 94 #define ES8323_ADCCONTROL7 0x0f 95 96 #define ES8323_ADCCONTROL7_ADCMUTE_OFF 2 97 98 #define ES8323_LADC_VOL 0x10 99 #define ES8323_RADC_VOL 0x11 100 #define ES8323_ADCCONTROL10 0x12 101 #define ES8323_ADCCONTROL11 0x13 102 #define ES8323_ADCCONTROL12 0x14 103 104 #define ES8323_ADCCONTROL12_ALCATK_OFF 0 105 #define ES8323_ADCCONTROL12_ALCDCY_OFF 4 106 107 #define ES8323_ADCCONTROL13 0x15 108 109 #define ES8323_ADCCONTROL13_TIMEOUT_OFF 5 110 #define ES8323_ADCCONTROL13_ALCZC_OFF 6 111 112 #define ES8323_ADCCONTROL14 0x16 113 114 #define ES8323_ADCCONTROL14_NGAT_OFF 0 115 #define ES8323_ADCCONTROL14_NGG_OFF 1 116 #define ES8323_ADCCONTROL14_NGTH_OFF 3 117 118 /* DAC Control */ 119 #define ES8323_DACCONTROL1 0x17 120 121 #define ES8323_DACCONTROL1_DACFORMAT GENMASK(1, 0) 122 #define ES8323_DACCONTROL1_DACWL GENMASK(5, 3) 123 #define ES8323_DACCONTROL1_DACLRP BIT(6) 124 #define ES8323_DACCONTROL1_DACLRSWAP BIT(7) 125 126 #define ES8323_DACCONTROL2 0x18 127 128 #define ES8323_DACCONTROL2_DACFSRATIO GENMASK(4, 0) 129 #define ES8323_DACCONTROL2_DACFSMODE BIT(5) 130 #define ES8323_DACCONTROL2_DACFS_MASK (ES8323_DACCONTROL2_DACFSRATIO |\ 131 ES8323_DACCONTROL2_DACFSMODE) 132 133 #define ES8323_DACCONTROL3 0x19 134 135 #define ES8323_DACCONTROL3_DACMUTE BIT(2) 136 137 #define ES8323_LDAC_VOL 0x1a 138 #define ES8323_RDAC_VOL 0x1b 139 #define ES8323_DACCONTROL6 0x1c 140 #define ES8323_DACCONTROL7 0x1d 141 #define ES8323_DACCONTROL8 0x1e 142 #define ES8323_DACCONTROL9 0x1f 143 #define ES8323_DACCONTROL10 0x20 144 #define ES8323_DACCONTROL11 0x21 145 #define ES8323_DACCONTROL12 0x22 146 #define ES8323_DACCONTROL13 0x23 147 #define ES8323_DACCONTROL14 0x24 148 #define ES8323_DACCONTROL15 0x25 149 #define ES8323_DACCONTROL16 0x26 150 #define ES8323_DACCONTROL17 0x27 151 152 #define ES8323_DACCONTROL17_LI2LOVOL_OFF 3 153 154 #define ES8323_DACCONTROL18 0x28 155 #define ES8323_DACCONTROL19 0x29 156 #define ES8323_DACCONTROL20 0x2a 157 158 #define ES8323_DACCONTROL20_RI2ROVOL_OFF 3 159 160 #define ES8323_DACCONTROL21 0x2b 161 #define ES8323_DACCONTROL22 0x2c 162 #define ES8323_DACCONTROL23 0x2d 163 #define ES8323_LOUT1_VOL 0x2e 164 #define ES8323_ROUT1_VOL 0x2f 165 #define ES8323_LOUT2_VOL 0x30 166 #define ES8323_ROUT2_VOL 0x31 167 #define ES8323_DACCONTROL28 0x32 168 #define ES8323_DACCONTROL29 0x33 169 #define ES8323_DACCONTROL30 0x34 170 171 #endif 172