root/include/linux/mfd/wm8350/comparator.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0-or-later */
   2 /*
   3  * comparator.h  --  Comparator Aux ADC for Wolfson WM8350 PMIC
   4  *
   5  * Copyright 2007 Wolfson Microelectronics PLC
   6  */
   7 
   8 #ifndef __LINUX_MFD_WM8350_COMPARATOR_H_
   9 #define __LINUX_MFD_WM8350_COMPARATOR_H_
  10 
  11 /*
  12  * Registers
  13  */
  14 
  15 #define WM8350_DIGITISER_CONTROL_1              0x90
  16 #define WM8350_DIGITISER_CONTROL_2              0x91
  17 #define WM8350_AUX1_READBACK                    0x98
  18 #define WM8350_AUX2_READBACK                    0x99
  19 #define WM8350_AUX3_READBACK                    0x9A
  20 #define WM8350_AUX4_READBACK                    0x9B
  21 #define WM8350_CHIP_TEMP_READBACK               0x9F
  22 #define WM8350_GENERIC_COMPARATOR_CONTROL       0xA3
  23 #define WM8350_GENERIC_COMPARATOR_1             0xA4
  24 #define WM8350_GENERIC_COMPARATOR_2             0xA5
  25 #define WM8350_GENERIC_COMPARATOR_3             0xA6
  26 #define WM8350_GENERIC_COMPARATOR_4             0xA7
  27 
  28 /*
  29  * R144 (0x90) - Digitiser Control (1)
  30  */
  31 #define WM8350_AUXADC_CTC                       0x4000
  32 #define WM8350_AUXADC_POLL                      0x2000
  33 #define WM8350_AUXADC_HIB_MODE                  0x1000
  34 #define WM8350_AUXADC_SEL8                      0x0080
  35 #define WM8350_AUXADC_SEL7                      0x0040
  36 #define WM8350_AUXADC_SEL6                      0x0020
  37 #define WM8350_AUXADC_SEL5                      0x0010
  38 #define WM8350_AUXADC_SEL4                      0x0008
  39 #define WM8350_AUXADC_SEL3                      0x0004
  40 #define WM8350_AUXADC_SEL2                      0x0002
  41 #define WM8350_AUXADC_SEL1                      0x0001
  42 
  43 /*
  44  * R145 (0x91) - Digitiser Control (2)
  45  */
  46 #define WM8350_AUXADC_MASKMODE_MASK             0x3000
  47 #define WM8350_AUXADC_CRATE_MASK                0x0700
  48 #define WM8350_AUXADC_CAL                       0x0004
  49 #define WM8350_AUX_RBMODE                       0x0002
  50 #define WM8350_AUXADC_WAIT                      0x0001
  51 
  52 /*
  53  * R152 (0x98) - AUX1 Readback
  54  */
  55 #define WM8350_AUXADC_SCALE1_MASK               0x6000
  56 #define WM8350_AUXADC_REF1                      0x1000
  57 #define WM8350_AUXADC_DATA1_MASK                0x0FFF
  58 
  59 /*
  60  * R153 (0x99) - AUX2 Readback
  61  */
  62 #define WM8350_AUXADC_SCALE2_MASK               0x6000
  63 #define WM8350_AUXADC_REF2                      0x1000
  64 #define WM8350_AUXADC_DATA2_MASK                0x0FFF
  65 
  66 /*
  67  * R154 (0x9A) - AUX3 Readback
  68  */
  69 #define WM8350_AUXADC_SCALE3_MASK               0x6000
  70 #define WM8350_AUXADC_REF3                      0x1000
  71 #define WM8350_AUXADC_DATA3_MASK                0x0FFF
  72 
  73 /*
  74  * R155 (0x9B) - AUX4 Readback
  75  */
  76 #define WM8350_AUXADC_SCALE4_MASK               0x6000
  77 #define WM8350_AUXADC_REF4                      0x1000
  78 #define WM8350_AUXADC_DATA4_MASK                0x0FFF
  79 
  80 /*
  81  * R156 (0x9C) - USB Voltage Readback
  82  */
  83 #define WM8350_AUXADC_DATA_USB_MASK             0x0FFF
  84 
  85 /*
  86  * R157 (0x9D) - LINE Voltage Readback
  87  */
  88 #define WM8350_AUXADC_DATA_LINE_MASK            0x0FFF
  89 
  90 /*
  91  * R158 (0x9E) - BATT Voltage Readback
  92  */
  93 #define WM8350_AUXADC_DATA_BATT_MASK            0x0FFF
  94 
  95 /*
  96  * R159 (0x9F) - Chip Temp Readback
  97  */
  98 #define WM8350_AUXADC_DATA_CHIPTEMP_MASK        0x0FFF
  99 
 100 /*
 101  * R163 (0xA3) - Generic Comparator Control
 102  */
 103 #define WM8350_DCMP4_ENA                        0x0008
 104 #define WM8350_DCMP3_ENA                        0x0004
 105 #define WM8350_DCMP2_ENA                        0x0002
 106 #define WM8350_DCMP1_ENA                        0x0001
 107 
 108 /*
 109  * R164 (0xA4) - Generic comparator 1
 110  */
 111 #define WM8350_DCMP1_SRCSEL_MASK                0xE000
 112 #define WM8350_DCMP1_GT                         0x1000
 113 #define WM8350_DCMP1_THR_MASK                   0x0FFF
 114 
 115 /*
 116  * R165 (0xA5) - Generic comparator 2
 117  */
 118 #define WM8350_DCMP2_SRCSEL_MASK                0xE000
 119 #define WM8350_DCMP2_GT                         0x1000
 120 #define WM8350_DCMP2_THR_MASK                   0x0FFF
 121 
 122 /*
 123  * R166 (0xA6) - Generic comparator 3
 124  */
 125 #define WM8350_DCMP3_SRCSEL_MASK                0xE000
 126 #define WM8350_DCMP3_GT                         0x1000
 127 #define WM8350_DCMP3_THR_MASK                   0x0FFF
 128 
 129 /*
 130  * R167 (0xA7) - Generic comparator 4
 131  */
 132 #define WM8350_DCMP4_SRCSEL_MASK                0xE000
 133 #define WM8350_DCMP4_GT                         0x1000
 134 #define WM8350_DCMP4_THR_MASK                   0x0FFF
 135 
 136 /*
 137  * Interrupts.
 138  */
 139 #define WM8350_IRQ_AUXADC_DATARDY               16
 140 #define WM8350_IRQ_AUXADC_DCOMP4                17
 141 #define WM8350_IRQ_AUXADC_DCOMP3                18
 142 #define WM8350_IRQ_AUXADC_DCOMP2                19
 143 #define WM8350_IRQ_AUXADC_DCOMP1                20
 144 #define WM8350_IRQ_SYS_HYST_COMP_FAIL           21
 145 #define WM8350_IRQ_SYS_CHIP_GT115               22
 146 #define WM8350_IRQ_SYS_CHIP_GT140               23
 147 
 148 /*
 149  * USB/2, LINE & BATT = ((VRTC * 2) / 4095)) * 10e6 uV
 150  * Where VRTC = 2.7 V
 151  */
 152 #define WM8350_AUX_COEFF                        1319
 153 
 154 #define WM8350_AUXADC_AUX1                      0
 155 #define WM8350_AUXADC_AUX2                      1
 156 #define WM8350_AUXADC_AUX3                      2
 157 #define WM8350_AUXADC_AUX4                      3
 158 #define WM8350_AUXADC_USB                       4
 159 #define WM8350_AUXADC_LINE                      5
 160 #define WM8350_AUXADC_BATT                      6
 161 #define WM8350_AUXADC_TEMP                      7
 162 
 163 struct wm8350;
 164 
 165 /*
 166  * AUX ADC Readback
 167  */
 168 int wm8350_read_auxadc(struct wm8350 *wm8350, int channel, int scale,
 169                        int vref);
 170 
 171 #endif

/* [<][>][^][v][top][bottom][index][help] */