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