162306a36Sopenharmony_ci==========================
262306a36Sopenharmony_ciRegulator Driver Interface
362306a36Sopenharmony_ci==========================
462306a36Sopenharmony_ci
562306a36Sopenharmony_ciThe regulator driver interface is relatively simple and designed to allow
662306a36Sopenharmony_ciregulator drivers to register their services with the core framework.
762306a36Sopenharmony_ci
862306a36Sopenharmony_ci
962306a36Sopenharmony_ciRegistration
1062306a36Sopenharmony_ci============
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ciDrivers can register a regulator by calling::
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ci  struct regulator_dev *regulator_register(struct regulator_desc *regulator_desc,
1562306a36Sopenharmony_ci					   const struct regulator_config *config);
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ciThis will register the regulator's capabilities and operations to the regulator
1862306a36Sopenharmony_cicore.
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ciRegulators can be unregistered by calling::
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ci  void regulator_unregister(struct regulator_dev *rdev);
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ciRegulator Events
2662306a36Sopenharmony_ci================
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ciRegulators can send events (e.g. overtemperature, undervoltage, etc) to
2962306a36Sopenharmony_ciconsumer drivers by calling::
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ci  int regulator_notifier_call_chain(struct regulator_dev *rdev,
3262306a36Sopenharmony_ci				    unsigned long event, void *data);
33