0001
0002
0003
0004
0005
0006
0007
0008 #ifndef __LINUX_MFD_WM8350_COMPARATOR_H_
0009 #define __LINUX_MFD_WM8350_COMPARATOR_H_
0010
0011
0012
0013
0014
0015 #define WM8350_DIGITISER_CONTROL_1 0x90
0016 #define WM8350_DIGITISER_CONTROL_2 0x91
0017 #define WM8350_AUX1_READBACK 0x98
0018 #define WM8350_AUX2_READBACK 0x99
0019 #define WM8350_AUX3_READBACK 0x9A
0020 #define WM8350_AUX4_READBACK 0x9B
0021 #define WM8350_CHIP_TEMP_READBACK 0x9F
0022 #define WM8350_GENERIC_COMPARATOR_CONTROL 0xA3
0023 #define WM8350_GENERIC_COMPARATOR_1 0xA4
0024 #define WM8350_GENERIC_COMPARATOR_2 0xA5
0025 #define WM8350_GENERIC_COMPARATOR_3 0xA6
0026 #define WM8350_GENERIC_COMPARATOR_4 0xA7
0027
0028
0029
0030
0031 #define WM8350_AUXADC_CTC 0x4000
0032 #define WM8350_AUXADC_POLL 0x2000
0033 #define WM8350_AUXADC_HIB_MODE 0x1000
0034 #define WM8350_AUXADC_SEL8 0x0080
0035 #define WM8350_AUXADC_SEL7 0x0040
0036 #define WM8350_AUXADC_SEL6 0x0020
0037 #define WM8350_AUXADC_SEL5 0x0010
0038 #define WM8350_AUXADC_SEL4 0x0008
0039 #define WM8350_AUXADC_SEL3 0x0004
0040 #define WM8350_AUXADC_SEL2 0x0002
0041 #define WM8350_AUXADC_SEL1 0x0001
0042
0043
0044
0045
0046 #define WM8350_AUXADC_MASKMODE_MASK 0x3000
0047 #define WM8350_AUXADC_CRATE_MASK 0x0700
0048 #define WM8350_AUXADC_CAL 0x0004
0049 #define WM8350_AUX_RBMODE 0x0002
0050 #define WM8350_AUXADC_WAIT 0x0001
0051
0052
0053
0054
0055 #define WM8350_AUXADC_SCALE1_MASK 0x6000
0056 #define WM8350_AUXADC_REF1 0x1000
0057 #define WM8350_AUXADC_DATA1_MASK 0x0FFF
0058
0059
0060
0061
0062 #define WM8350_AUXADC_SCALE2_MASK 0x6000
0063 #define WM8350_AUXADC_REF2 0x1000
0064 #define WM8350_AUXADC_DATA2_MASK 0x0FFF
0065
0066
0067
0068
0069 #define WM8350_AUXADC_SCALE3_MASK 0x6000
0070 #define WM8350_AUXADC_REF3 0x1000
0071 #define WM8350_AUXADC_DATA3_MASK 0x0FFF
0072
0073
0074
0075
0076 #define WM8350_AUXADC_SCALE4_MASK 0x6000
0077 #define WM8350_AUXADC_REF4 0x1000
0078 #define WM8350_AUXADC_DATA4_MASK 0x0FFF
0079
0080
0081
0082
0083 #define WM8350_AUXADC_DATA_USB_MASK 0x0FFF
0084
0085
0086
0087
0088 #define WM8350_AUXADC_DATA_LINE_MASK 0x0FFF
0089
0090
0091
0092
0093 #define WM8350_AUXADC_DATA_BATT_MASK 0x0FFF
0094
0095
0096
0097
0098 #define WM8350_AUXADC_DATA_CHIPTEMP_MASK 0x0FFF
0099
0100
0101
0102
0103 #define WM8350_DCMP4_ENA 0x0008
0104 #define WM8350_DCMP3_ENA 0x0004
0105 #define WM8350_DCMP2_ENA 0x0002
0106 #define WM8350_DCMP1_ENA 0x0001
0107
0108
0109
0110
0111 #define WM8350_DCMP1_SRCSEL_MASK 0xE000
0112 #define WM8350_DCMP1_GT 0x1000
0113 #define WM8350_DCMP1_THR_MASK 0x0FFF
0114
0115
0116
0117
0118 #define WM8350_DCMP2_SRCSEL_MASK 0xE000
0119 #define WM8350_DCMP2_GT 0x1000
0120 #define WM8350_DCMP2_THR_MASK 0x0FFF
0121
0122
0123
0124
0125 #define WM8350_DCMP3_SRCSEL_MASK 0xE000
0126 #define WM8350_DCMP3_GT 0x1000
0127 #define WM8350_DCMP3_THR_MASK 0x0FFF
0128
0129
0130
0131
0132 #define WM8350_DCMP4_SRCSEL_MASK 0xE000
0133 #define WM8350_DCMP4_GT 0x1000
0134 #define WM8350_DCMP4_THR_MASK 0x0FFF
0135
0136
0137
0138
0139 #define WM8350_IRQ_AUXADC_DATARDY 16
0140 #define WM8350_IRQ_AUXADC_DCOMP4 17
0141 #define WM8350_IRQ_AUXADC_DCOMP3 18
0142 #define WM8350_IRQ_AUXADC_DCOMP2 19
0143 #define WM8350_IRQ_AUXADC_DCOMP1 20
0144 #define WM8350_IRQ_SYS_HYST_COMP_FAIL 21
0145 #define WM8350_IRQ_SYS_CHIP_GT115 22
0146 #define WM8350_IRQ_SYS_CHIP_GT140 23
0147
0148
0149
0150
0151
0152 #define WM8350_AUX_COEFF 1319
0153
0154 #define WM8350_AUXADC_AUX1 0
0155 #define WM8350_AUXADC_AUX2 1
0156 #define WM8350_AUXADC_AUX3 2
0157 #define WM8350_AUXADC_AUX4 3
0158 #define WM8350_AUXADC_USB 4
0159 #define WM8350_AUXADC_LINE 5
0160 #define WM8350_AUXADC_BATT 6
0161 #define WM8350_AUXADC_TEMP 7
0162
0163 struct wm8350;
0164
0165
0166
0167
0168 int wm8350_read_auxadc(struct wm8350 *wm8350, int channel, int scale,
0169 int vref);
0170
0171 #endif