linux/include/linux/regulator/lp872x.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0-only */
   2/*
   3 * Copyright 2012 Texas Instruments
   4 *
   5 * Author: Milo(Woogyom) Kim <milo.kim@ti.com>
   6 */
   7
   8#ifndef __LP872X_REGULATOR_H__
   9#define __LP872X_REGULATOR_H__
  10
  11#include <linux/regulator/machine.h>
  12#include <linux/platform_device.h>
  13#include <linux/gpio.h>
  14
  15#define LP872X_MAX_REGULATORS           9
  16
  17#define LP8720_ENABLE_DELAY             200
  18#define LP8725_ENABLE_DELAY             30000
  19
  20enum lp872x_regulator_id {
  21        LP8720_ID_BASE,
  22        LP8720_ID_LDO1 = LP8720_ID_BASE,
  23        LP8720_ID_LDO2,
  24        LP8720_ID_LDO3,
  25        LP8720_ID_LDO4,
  26        LP8720_ID_LDO5,
  27        LP8720_ID_BUCK,
  28
  29        LP8725_ID_BASE,
  30        LP8725_ID_LDO1 = LP8725_ID_BASE,
  31        LP8725_ID_LDO2,
  32        LP8725_ID_LDO3,
  33        LP8725_ID_LDO4,
  34        LP8725_ID_LDO5,
  35        LP8725_ID_LILO1,
  36        LP8725_ID_LILO2,
  37        LP8725_ID_BUCK1,
  38        LP8725_ID_BUCK2,
  39
  40        LP872X_ID_MAX,
  41};
  42
  43enum lp872x_dvs_state {
  44        DVS_LOW  = GPIOF_OUT_INIT_LOW,
  45        DVS_HIGH = GPIOF_OUT_INIT_HIGH,
  46};
  47
  48enum lp872x_dvs_sel {
  49        SEL_V1,
  50        SEL_V2,
  51};
  52
  53/**
  54 * lp872x_dvs
  55 * @gpio       : gpio pin number for dvs control
  56 * @vsel       : dvs selector for buck v1 or buck v2 register
  57 * @init_state : initial dvs pin state
  58 */
  59struct lp872x_dvs {
  60        int gpio;
  61        enum lp872x_dvs_sel vsel;
  62        enum lp872x_dvs_state init_state;
  63};
  64
  65/**
  66 * lp872x_regdata
  67 * @id        : regulator id
  68 * @init_data : init data for each regulator
  69 */
  70struct lp872x_regulator_data {
  71        enum lp872x_regulator_id id;
  72        struct regulator_init_data *init_data;
  73};
  74
  75/**
  76 * lp872x_platform_data
  77 * @general_config    : the value of LP872X_GENERAL_CFG register
  78 * @update_config     : if LP872X_GENERAL_CFG register is updated, set true
  79 * @regulator_data    : platform regulator id and init data
  80 * @dvs               : dvs data for buck voltage control
  81 * @enable_gpio       : gpio pin number for enable control
  82 */
  83struct lp872x_platform_data {
  84        u8 general_config;
  85        bool update_config;
  86        struct lp872x_regulator_data regulator_data[LP872X_MAX_REGULATORS];
  87        struct lp872x_dvs *dvs;
  88        int enable_gpio;
  89};
  90
  91#endif
  92