xref: /openbmc/linux/drivers/iio/dac/stm32-dac-core.h (revision 552c69b36ebd966186573b9c7a286b390935cce1)
1*6e93e261SBenjamin Gaignard /* SPDX-License-Identifier: GPL-2.0 */
24d4b3052SFabrice Gasnier /*
34d4b3052SFabrice Gasnier  * This file is part of STM32 DAC driver
44d4b3052SFabrice Gasnier  *
54d4b3052SFabrice Gasnier  * Copyright (C) 2017, STMicroelectronics - All Rights Reserved
64d4b3052SFabrice Gasnier  * Author: Fabrice Gasnier <fabrice.gasnier@st.com>.
74d4b3052SFabrice Gasnier  */
84d4b3052SFabrice Gasnier 
94d4b3052SFabrice Gasnier #ifndef __STM32_DAC_CORE_H
104d4b3052SFabrice Gasnier #define __STM32_DAC_CORE_H
114d4b3052SFabrice Gasnier 
124d4b3052SFabrice Gasnier #include <linux/regmap.h>
134d4b3052SFabrice Gasnier 
144d4b3052SFabrice Gasnier /* STM32 DAC registers */
154d4b3052SFabrice Gasnier #define STM32_DAC_CR		0x00
164d4b3052SFabrice Gasnier #define STM32_DAC_DHR12R1	0x08
174d4b3052SFabrice Gasnier #define STM32_DAC_DHR12R2	0x14
184d4b3052SFabrice Gasnier #define STM32_DAC_DOR1		0x2C
194d4b3052SFabrice Gasnier #define STM32_DAC_DOR2		0x30
204d4b3052SFabrice Gasnier 
214d4b3052SFabrice Gasnier /* STM32_DAC_CR bit fields */
224d4b3052SFabrice Gasnier #define STM32_DAC_CR_EN1		BIT(0)
234d4b3052SFabrice Gasnier #define STM32H7_DAC_CR_HFSEL		BIT(15)
244d4b3052SFabrice Gasnier #define STM32_DAC_CR_EN2		BIT(16)
254d4b3052SFabrice Gasnier 
264d4b3052SFabrice Gasnier /**
274d4b3052SFabrice Gasnier  * struct stm32_dac_common - stm32 DAC driver common data (for all instances)
284d4b3052SFabrice Gasnier  * @regmap: DAC registers shared via regmap
294d4b3052SFabrice Gasnier  * @vref_mv: reference voltage (mv)
304d4b3052SFabrice Gasnier  * @hfsel: high speed bus clock selected
314d4b3052SFabrice Gasnier  */
324d4b3052SFabrice Gasnier struct stm32_dac_common {
334d4b3052SFabrice Gasnier 	struct regmap			*regmap;
344d4b3052SFabrice Gasnier 	int				vref_mv;
354d4b3052SFabrice Gasnier 	bool				hfsel;
364d4b3052SFabrice Gasnier };
374d4b3052SFabrice Gasnier 
384d4b3052SFabrice Gasnier #endif
39