#ifndef _DEV_OFW_REGULATOR_H_
#define _DEV_OFW_REGULATOR_H_
struct regulator_device {
int rd_node;
void *rd_cookie;
uint32_t (*rd_get_voltage)(void *);
int (*rd_set_voltage)(void *, uint32_t);
uint32_t (*rd_get_current)(void *);
int (*rd_set_current)(void *, uint32_t);
int (*rd_enable)(void *, int);
uint32_t rd_volt_min, rd_volt_max;
uint32_t rd_amp_min, rd_amp_max;
uint32_t rd_ramp_delay;
uint32_t rd_coupled;
uint32_t rd_max_spread;
LIST_ENTRY(regulator_device) rd_list;
uint32_t rd_phandle;
};
void regulator_register(struct regulator_device *);
int regulator_enable(uint32_t);
int regulator_disable(uint32_t);
uint32_t regulator_get_voltage(uint32_t);
int regulator_set_voltage(uint32_t, uint32_t);
uint32_t regulator_get_current(uint32_t);
int regulator_set_current(uint32_t, uint32_t);
struct regulator_notifier {
uint32_t rn_phandle;
void *rn_cookie;
void (*rn_notify)(void *, uint32_t);
LIST_ENTRY(regulator_notifier) rn_list;
};
void regulator_notify(struct regulator_notifier *);
#endif