jz4740-adc.h 1023 B

123456789101112131415161718192021222324252627282930313233
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. #ifndef __LINUX_JZ4740_ADC
  3. #define __LINUX_JZ4740_ADC
  4. struct device;
  5. /*
  6. * jz4740_adc_set_config - Configure a JZ4740 adc device
  7. * @dev: Pointer to a jz4740-adc device
  8. * @mask: Mask for the config value to be set
  9. * @val: Value to be set
  10. *
  11. * This function can be used by the JZ4740 ADC mfd cells to configure their
  12. * options in the shared config register.
  13. */
  14. int jz4740_adc_set_config(struct device *dev, uint32_t mask, uint32_t val);
  15. #define JZ_ADC_CONFIG_SPZZ BIT(31)
  16. #define JZ_ADC_CONFIG_EX_IN BIT(30)
  17. #define JZ_ADC_CONFIG_DNUM_MASK (0x7 << 16)
  18. #define JZ_ADC_CONFIG_DMA_ENABLE BIT(15)
  19. #define JZ_ADC_CONFIG_XYZ_MASK (0x2 << 13)
  20. #define JZ_ADC_CONFIG_SAMPLE_NUM_MASK (0x7 << 10)
  21. #define JZ_ADC_CONFIG_CLKDIV_MASK (0xf << 5)
  22. #define JZ_ADC_CONFIG_BAT_MB BIT(4)
  23. #define JZ_ADC_CONFIG_DNUM(dnum) ((dnum) << 16)
  24. #define JZ_ADC_CONFIG_XYZ_OFFSET(dnum) ((xyz) << 13)
  25. #define JZ_ADC_CONFIG_SAMPLE_NUM(x) ((x) << 10)
  26. #define JZ_ADC_CONFIG_CLKDIV(div) ((div) << 5)
  27. #endif