regulator: virtio: Add support for a regulator switch
Add support for a regulator switch with limited ops set. Change-Id: I47735f1ec5ef98a418250cadf209f4b7ce362ab6 Signed-off-by: Ramachandran Venkataramani <quic_ramavenk@quicinc.com> Signed-off-by: LADI RAM SAI <quic_lramsai@quicinc.com>
This commit is contained in:
parent
5dd3c6f0c3
commit
6e193c52c9
@ -413,6 +413,12 @@ static const struct regulator_ops virtio_regulator_ops = {
|
||||
.set_load = virtio_regulator_set_load,
|
||||
};
|
||||
|
||||
static const struct regulator_ops virtio_regulator_switch_ops = {
|
||||
.enable = virtio_regulator_enable,
|
||||
.disable = virtio_regulator_disable,
|
||||
.is_enabled = virtio_regulator_is_enabled,
|
||||
};
|
||||
|
||||
static void virtio_regulator_isr(struct virtqueue *vq)
|
||||
{
|
||||
struct virtio_regulator *vregulator = vq->vdev->priv;
|
||||
@ -504,9 +510,6 @@ static int virtio_regulator_init_reg(struct reg_virtio *reg)
|
||||
if (init_data == NULL)
|
||||
return -ENOMEM;
|
||||
|
||||
init_data->constraints.input_uV = init_data->constraints.max_uV;
|
||||
init_data->constraints.valid_ops_mask |= REGULATOR_CHANGE_VOLTAGE;
|
||||
|
||||
if (init_data->constraints.min_uV == 0 &&
|
||||
init_data->constraints.max_uV == 0)
|
||||
reg->rdesc.n_voltages = 0;
|
||||
@ -515,6 +518,13 @@ static int virtio_regulator_init_reg(struct reg_virtio *reg)
|
||||
else
|
||||
reg->rdesc.n_voltages = 2;
|
||||
|
||||
if (reg->rdesc.n_voltages == 0) {
|
||||
reg->rdesc.ops = &virtio_regulator_switch_ops;
|
||||
} else {
|
||||
init_data->constraints.input_uV = init_data->constraints.max_uV;
|
||||
init_data->constraints.valid_ops_mask |= REGULATOR_CHANGE_VOLTAGE;
|
||||
}
|
||||
|
||||
reg_config.dev = dev;
|
||||
reg_config.init_data = init_data;
|
||||
reg_config.of_node = reg->of_node;
|
||||
|
Loading…
Reference in New Issue
Block a user