78 lines
2.6 KiB
C
78 lines
2.6 KiB
C
/*
|
|
* 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
|