File Index
Files and directories
Sign in
FILE

max8998.h

File preview with syntax highlighting.

linux-6.19.14/include/linux/mfd/max8998.h C
  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 Electronics
  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_default_idx: Default for BUCK1 gpio pin 1, 2
 69 * @buck2_default_idx: Default for BUCK2 gpio pin.
 70 * @wakeup: Allow to wake up from suspend
 71 * @rtc_delay: LP3974 RTC chip bug that requires delay after a register
 72 * write before reading it.
 73 * @eoc: End of Charge Level in percent: 10% ~ 45% by 5% step
 74 *   If it equals 0, leave it unchanged.
 75 *   Otherwise, it is a invalid value.
 76 * @restart: Restart Level in mV: 100, 150, 200, and -1 for disable.
 77 *   If it equals 0, leave it unchanged.
 78 *   Otherwise, it is a invalid value.
 79 * @timeout: Full Timeout in hours: 5, 6, 7, and -1 for disable.
 80 *   If it equals 0, leave it unchanged.
 81 *   Otherwise, leave it unchanged.
 82 */
 83struct max8998_platform_data {
 84	struct max8998_regulator_data	*regulators;
 85	int				num_regulators;
 86	unsigned int			irq_base;
 87	int				ono;
 88	bool				buck_voltage_lock;
 89	int				buck1_voltage[4];
 90	int				buck2_voltage[2];
 91	int				buck1_default_idx;
 92	int				buck2_default_idx;
 93	bool				wakeup;
 94	bool				rtc_delay;
 95	int				eoc;
 96	int				restart;
 97	int				timeout;
 98};
 99
100#endif /*  __LINUX_MFD_MAX8998_H */
~/ Read-only file preview.