18c2ecf20Sopenharmony_ci==========================
28c2ecf20Sopenharmony_ciRegulator Driver Interface
38c2ecf20Sopenharmony_ci==========================
48c2ecf20Sopenharmony_ci
58c2ecf20Sopenharmony_ciThe regulator driver interface is relatively simple and designed to allow
68c2ecf20Sopenharmony_ciregulator drivers to register their services with the core framework.
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_ciRegistration
108c2ecf20Sopenharmony_ci============
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_ciDrivers can register a regulator by calling::
138c2ecf20Sopenharmony_ci
148c2ecf20Sopenharmony_ci  struct regulator_dev *regulator_register(struct regulator_desc *regulator_desc,
158c2ecf20Sopenharmony_ci					   const struct regulator_config *config);
168c2ecf20Sopenharmony_ci
178c2ecf20Sopenharmony_ciThis will register the regulator's capabilities and operations to the regulator
188c2ecf20Sopenharmony_cicore.
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_ciRegulators can be unregistered by calling::
218c2ecf20Sopenharmony_ci
228c2ecf20Sopenharmony_ci  void regulator_unregister(struct regulator_dev *rdev);
238c2ecf20Sopenharmony_ci
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_ciRegulator Events
268c2ecf20Sopenharmony_ci================
278c2ecf20Sopenharmony_ci
288c2ecf20Sopenharmony_ciRegulators can send events (e.g. overtemperature, undervoltage, etc) to
298c2ecf20Sopenharmony_ciconsumer drivers by calling::
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ci  int regulator_notifier_call_chain(struct regulator_dev *rdev,
328c2ecf20Sopenharmony_ci				    unsigned long event, void *data);
33