cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

lp872x.h (1871B)


      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/consumer.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_sel {
     44	SEL_V1,
     45	SEL_V2,
     46};
     47
     48/**
     49 * lp872x_dvs
     50 * @gpio       : gpio descriptor for dvs control
     51 * @vsel       : dvs selector for buck v1 or buck v2 register
     52 * @init_state : initial dvs pin state
     53 */
     54struct lp872x_dvs {
     55	struct gpio_desc *gpio;
     56	enum lp872x_dvs_sel vsel;
     57	enum gpiod_flags init_state;
     58};
     59
     60/**
     61 * lp872x_regdata
     62 * @id        : regulator id
     63 * @init_data : init data for each regulator
     64 */
     65struct lp872x_regulator_data {
     66	enum lp872x_regulator_id id;
     67	struct regulator_init_data *init_data;
     68};
     69
     70/**
     71 * lp872x_platform_data
     72 * @general_config    : the value of LP872X_GENERAL_CFG register
     73 * @update_config     : if LP872X_GENERAL_CFG register is updated, set true
     74 * @regulator_data    : platform regulator id and init data
     75 * @dvs               : dvs data for buck voltage control
     76 * @enable_gpio       : gpio descriptor for enable control
     77 */
     78struct lp872x_platform_data {
     79	u8 general_config;
     80	bool update_config;
     81	struct lp872x_regulator_data regulator_data[LP872X_MAX_REGULATORS];
     82	struct lp872x_dvs *dvs;
     83	struct gpio_desc *enable_gpio;
     84};
     85
     86#endif