rt5033.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /*
  3. * MFD core driver for the RT5033
  4. *
  5. * Copyright (C) 2014 Samsung Electronics
  6. * Author: Beomho Seo <[email protected]>
  7. */
  8. #ifndef __RT5033_H__
  9. #define __RT5033_H__
  10. #include <linux/regulator/consumer.h>
  11. #include <linux/i2c.h>
  12. #include <linux/regmap.h>
  13. #include <linux/power_supply.h>
  14. /* RT5033 regulator IDs */
  15. enum rt5033_regulators {
  16. RT5033_BUCK = 0,
  17. RT5033_LDO,
  18. RT5033_SAFE_LDO,
  19. RT5033_REGULATOR_NUM,
  20. };
  21. struct rt5033_dev {
  22. struct device *dev;
  23. struct regmap *regmap;
  24. struct regmap_irq_chip_data *irq_data;
  25. int irq;
  26. bool wakeup;
  27. };
  28. struct rt5033_battery {
  29. struct i2c_client *client;
  30. struct rt5033_dev *rt5033;
  31. struct regmap *regmap;
  32. struct power_supply *psy;
  33. };
  34. /* RT5033 charger platform data */
  35. struct rt5033_charger_data {
  36. unsigned int pre_uamp;
  37. unsigned int pre_uvolt;
  38. unsigned int const_uvolt;
  39. unsigned int eoc_uamp;
  40. unsigned int fast_uamp;
  41. };
  42. struct rt5033_charger {
  43. struct device *dev;
  44. struct rt5033_dev *rt5033;
  45. struct power_supply psy;
  46. struct rt5033_charger_data *chg;
  47. };
  48. #endif /* __RT5033_H__ */