as3722.h 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. /*
  2. * Copyright (C) 2014 NVIDIA Corporation
  3. *
  4. * SPDX-License-Identifier: GPL-2.0+
  5. */
  6. #ifndef __POWER_AS3722_H__
  7. #define __POWER_AS3722_H__
  8. #include <asm/types.h>
  9. #define AS3722_GPIO_OUTPUT_VDDH (1 << 0)
  10. #define AS3722_GPIO_INVERT (1 << 1)
  11. #define AS3722_DEVICE_ID 0x0c
  12. #define AS3722_SD_VOLTAGE(n) (0x00 + (n))
  13. #define AS3722_LDO_VOLTAGE(n) (0x10 + (n))
  14. #define AS3722_SD_CONTROL 0x4d
  15. #define AS3722_LDO_CONTROL 0x4e
  16. #define AS3722_ASIC_ID1 0x90
  17. #define AS3722_ASIC_ID2 0x91
  18. #define AS3722_GPIO_CONTROL(n) (0x08 + (n))
  19. #define AS3722_GPIO_CONTROL_MODE_OUTPUT_VDDH (1 << 0)
  20. #define AS3722_GPIO_CONTROL_MODE_OUTPUT_VDDL (7 << 0)
  21. #define AS3722_GPIO_CONTROL_INVERT (1 << 7)
  22. struct udevice;
  23. int as3722_init(struct udevice **devp);
  24. int as3722_sd_enable(struct udevice *pmic, unsigned int sd);
  25. int as3722_sd_set_voltage(struct udevice *pmic, unsigned int sd, u8 value);
  26. int as3722_ldo_enable(struct udevice *pmic, unsigned int ldo);
  27. int as3722_ldo_set_voltage(struct udevice *pmic, unsigned int ldo, u8 value);
  28. int as3722_gpio_configure(struct udevice *pmic, unsigned int gpio,
  29. unsigned long flags);
  30. int as3722_gpio_direction_output(struct udevice *pmic, unsigned int gpio,
  31. unsigned int level);
  32. int as3722_read(struct udevice *pmic, u8 reg, u8 *value);
  33. int as3722_write(struct udevice *pmic, u8 reg, u8 value);
  34. int as3722_get(struct udevice **devp);
  35. #endif /* __POWER_AS3722_H__ */