123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- /*
- * Copyright (c) 2011-2012, The Linux Foundation. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 and
- * only version 2 as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- */
- #ifndef __ARCH_ARM_MACH_MSM_PROCCOMM_REGULATOR_H__
- #define __ARCH_ARM_MACH_MSM_PROCCOMM_REGULATOR_H__
- #include <linux/regulator/machine.h>
- #define PROCCOMM_REGULATOR_DEV_NAME "proccomm-regulator"
- /**
- * struct proccomm_regulator_info - A description of one proccomm regulator
- * @init_data: Initialization data for the regulator.
- * Must contain:
- * - A list of struct regulator_consumer_supply indicating
- * supply names for the regulator
- * - A filled out struct regulation_constraints containing:
- * - The name of the regulator
- * - The minimum and maximum voltages supported
- * - The supported modes (REGULATOR_MODE_NORMAL)
- * - The supported operations, currently limited to:
- * REGULATOR_CHANGE_STATUS
- * REGULATOR_CHANGE_VOLTAGE
- * - The input voltage, if the regulator is powered by another
- * - Properly set always_on, boot_on, and apply_uV flags
- * - The name of the supply regulator, if applicable
- * @id: The proccomm ID of this regulator.
- * @rise_time: The time that the regulator takes to initialize,
- * in microseconds. Set to 0 to disable rise-time checking.
- * @pulldown: Whether the regulator should be pulled down when off.
- * 1 to pull down the regulator.
- * 0 to leave the regulator floating.
- * -1 to indicate no preference.
- */
- struct proccomm_regulator_info {
- struct regulator_init_data init_data;
- int id;
- int rise_time;
- int pulldown;
- int negative;
- int n_voltages;
- };
- /**
- * struct proccomm_regulator_platform_data - proccomm driver platform data.
- *
- * Contains a description of a set of proccomm-controlled regulators.
- * Pass this in the platform_data field when instantiating the driver.
- *
- * @regs: An array of struct proccomm_regulator_info describing
- * the regulators to register.
- * @nregs: The number of regulators to register.
- */
- struct proccomm_regulator_platform_data {
- struct proccomm_regulator_info *regs;
- size_t nregs;
- };
- #if defined(CONFIG_MSM_VREG_SWITCH_INVERTED)
- #define VREG_SWITCH_ENABLE 0
- #define VREG_SWITCH_DISABLE 1
- #else
- #define VREG_SWITCH_ENABLE 1
- #define VREG_SWITCH_DISABLE 0
- #endif
- #endif
|