Merge branch 'i2c/for-4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa...
[linux-2.6-microblaze.git] / drivers / iio / adc / stm32-adc-core.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * This file is part of STM32 ADC driver
4  *
5  * Copyright (C) 2016, STMicroelectronics - All Rights Reserved
6  * Author: Fabrice Gasnier <fabrice.gasnier@st.com>.
7  *
8  */
9
10 #ifndef __STM32_ADC_H
11 #define __STM32_ADC_H
12
13 /*
14  * STM32 - ADC global register map
15  * ________________________________________________________
16  * | Offset |                 Register                    |
17  * --------------------------------------------------------
18  * | 0x000  |                Master ADC1                  |
19  * --------------------------------------------------------
20  * | 0x100  |                Slave ADC2                   |
21  * --------------------------------------------------------
22  * | 0x200  |                Slave ADC3                   |
23  * --------------------------------------------------------
24  * | 0x300  |         Master & Slave common regs          |
25  * --------------------------------------------------------
26  */
27 #define STM32_ADC_MAX_ADCS              3
28 #define STM32_ADCX_COMN_OFFSET          0x300
29
30 /**
31  * struct stm32_adc_common - stm32 ADC driver common data (for all instances)
32  * @base:               control registers base cpu addr
33  * @phys_base:          control registers base physical addr
34  * @rate:               clock rate used for analog circuitry
35  * @vref_mv:            vref voltage (mv)
36  */
37 struct stm32_adc_common {
38         void __iomem                    *base;
39         phys_addr_t                     phys_base;
40         unsigned long                   rate;
41         int                             vref_mv;
42 };
43
44 #endif