[Controlador de Linux]: uso del regulador y ejemplos de uso específico del chip de administración de energía

Uno, uso del regulador

1.1. El regulador de administración de energía se divide en estático y dinámico: estático no necesita cambiar el voltaje y la corriente, solo cambiar la fuente de alimentación, se usa en BootLoader, frameware, etapa de la placa del núcleo, etc.; Dinámico es cambiar el voltaje y la corriente según necesidades.

1.2. Obtener el regulador y dev del dispositivo como el puntero del dispositivo correspondiente al controlador. Puede usar NULL, y Vcc es el ID de la fuente de alimentación. El kernel buscará en la tabla el regulador correspondiente a la fuente de alimentación. IDENTIFICACIÓN. Tales como: struct regulator * ldo; ldo = regualtor_get (NULL, "act_ldo5");

regulator = regulator_get (dev, "Vcc"); // Obtener regulador de dispositivo

1,3 、 regulator_put (regulador); // 释放 regulador

1.4. Int regulator_enable (regulador); // Habilita la salida de potencia. Es posible que se haya habilitado antes de la llamada. Entonces usa la siguiente función para juzgar.

1.5. Int regulator_is_enabled (regulador); // Determine si está habilitado,> 0 significa que ha sido habilitado.

1.6, int regulator_disable (regulador); // Apague la salida de energía. Sin embargo, es posible que no se apague de inmediato y que exista un escenario de uso compartido de energía.

1.7, int regulator_force_disable (regulator); // Apague la energía a la fuerza.

1.8, int regulator_set_volatage (regulador, min_uV, max_uV); // La salida mínima y máxima del voltaje del regulador. Si llama a regulator_enable a continuación, este valor entrará en vigor inmediatamente. Si llama a regulator_disable y otros, no entrará en vigor hasta la próxima vez que se llame a regulator_enable.

1.9. Int regulator_get_voltage (regulador); // Obtiene el voltaje de salida configurado a través de esta interfaz.

Los ejemplos son los siguientes:

regulator_set_voltage(ldo_28, 2800000, 2800000); //设置电压
regulator_enable(ldo_28); //使能
int value = regulator_get_voltage(ldo_28); //获取电压值

regulator_put(ldo_28); //释放

2. Casos de uso específicos

2.1 La configuración del árbol de dispositivos es la siguiente

ldo8: ldo8 {
        regulator-compatible = "LDO8";
        regulator-name = "ldo8_1v5";
        regulator-min-microvolt = <1500000>;
        regulator-max-microvolt = <1600000>;
        //regulator-boot-on;   //boot 时打开
        //regulator-always-on; //一直打开
        sleep-slot = <15>;
        poweron-slot = <0x20>;
};

2.2 El código fuente del controlador es el siguiente

//打开
struct regulator *reg;
reg = devm_regulator_get(&i2c->dev, "ldo8_1v5");
regulator_set_volatage(reg, 1500000, 1500000);
regulator_enable(reg);

//关闭
struct regulator *reg;
reg = devm_regualtor_get(&i2c->dev, "ldo8_1v5");
regulator_disable(reg);

Nota: Para obtener una introducción detallada del regulador, consulte los capítulos relacionados con Wowo Technology - Linux Regulator Framework.

Supongo que te gusta

Origin blog.csdn.net/u014674293/article/details/113866110
Recomendado
Clasificación