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

max8998.h (2983B)


      1/* SPDX-License-Identifier: GPL-2.0+ */
      2/*
      3 * max8998.h - Voltage regulator driver for the Maxim 8998
      4 *
      5 *  Copyright (C) 2009-2010 Samsung Electrnoics
      6 *  Kyungmin Park <kyungmin.park@samsung.com>
      7 *  Marek Szyprowski <m.szyprowski@samsung.com>
      8 */
      9
     10#ifndef __LINUX_MFD_MAX8998_H
     11#define __LINUX_MFD_MAX8998_H
     12
     13#include <linux/regulator/machine.h>
     14
     15/* MAX 8998 regulator ids */
     16enum {
     17	MAX8998_LDO2 = 2,
     18	MAX8998_LDO3,
     19	MAX8998_LDO4,
     20	MAX8998_LDO5,
     21	MAX8998_LDO6,
     22	MAX8998_LDO7,
     23	MAX8998_LDO8,
     24	MAX8998_LDO9,
     25	MAX8998_LDO10,
     26	MAX8998_LDO11,
     27	MAX8998_LDO12,
     28	MAX8998_LDO13,
     29	MAX8998_LDO14,
     30	MAX8998_LDO15,
     31	MAX8998_LDO16,
     32	MAX8998_LDO17,
     33	MAX8998_BUCK1,
     34	MAX8998_BUCK2,
     35	MAX8998_BUCK3,
     36	MAX8998_BUCK4,
     37	MAX8998_EN32KHZ_AP,
     38	MAX8998_EN32KHZ_CP,
     39	MAX8998_ENVICHG,
     40	MAX8998_ESAFEOUT1,
     41	MAX8998_ESAFEOUT2,
     42	MAX8998_CHARGER,
     43};
     44
     45/**
     46 * max8998_regulator_data - regulator data
     47 * @id: regulator id
     48 * @initdata: regulator init data (contraints, supplies, ...)
     49 * @reg_node: DT node of regulator (unused on non-DT platforms)
     50 */
     51struct max8998_regulator_data {
     52	int				id;
     53	struct regulator_init_data	*initdata;
     54	struct device_node		*reg_node;
     55};
     56
     57/**
     58 * struct max8998_board - packages regulator init data
     59 * @regulators: array of defined regulators
     60 * @num_regulators: number of regulators used
     61 * @irq_base: base IRQ number for max8998, required for IRQs
     62 * @ono: power onoff IRQ number for max8998
     63 * @buck_voltage_lock: Do NOT change the values of the following six
     64 *   registers set by buck?_voltage?. The voltage of BUCK1/2 cannot
     65 *   be other than the preset values.
     66 * @buck1_voltage: BUCK1 DVS mode 1 voltage registers
     67 * @buck2_voltage: BUCK2 DVS mode 2 voltage registers
     68 * @buck1_set1: BUCK1 gpio pin 1 to set output voltage
     69 * @buck1_set2: BUCK1 gpio pin 2 to set output voltage
     70 * @buck1_default_idx: Default for BUCK1 gpio pin 1, 2
     71 * @buck2_set3: BUCK2 gpio pin to set output voltage
     72 * @buck2_default_idx: Default for BUCK2 gpio pin.
     73 * @wakeup: Allow to wake up from suspend
     74 * @rtc_delay: LP3974 RTC chip bug that requires delay after a register
     75 * write before reading it.
     76 * @eoc: End of Charge Level in percent: 10% ~ 45% by 5% step
     77 *   If it equals 0, leave it unchanged.
     78 *   Otherwise, it is a invalid value.
     79 * @restart: Restart Level in mV: 100, 150, 200, and -1 for disable.
     80 *   If it equals 0, leave it unchanged.
     81 *   Otherwise, it is a invalid value.
     82 * @timeout: Full Timeout in hours: 5, 6, 7, and -1 for disable.
     83 *   If it equals 0, leave it unchanged.
     84 *   Otherwise, leave it unchanged.
     85 */
     86struct max8998_platform_data {
     87	struct max8998_regulator_data	*regulators;
     88	int				num_regulators;
     89	unsigned int			irq_base;
     90	int				ono;
     91	bool				buck_voltage_lock;
     92	int				buck1_voltage[4];
     93	int				buck2_voltage[2];
     94	int				buck1_set1;
     95	int				buck1_set2;
     96	int				buck1_default_idx;
     97	int				buck2_set3;
     98	int				buck2_default_idx;
     99	bool				wakeup;
    100	bool				rtc_delay;
    101	int				eoc;
    102	int				restart;
    103	int				timeout;
    104};
    105
    106#endif /*  __LINUX_MFD_MAX8998_H */