Merge tag 'u-boot-rockchip-20191110' of https://gitlab.denx.de/u-boot/custodians/u-boot-rockchip
- Add support for rockchip pmic rk805,rk809, rk816, rk817 - Add rk3399 board Leez support - Fix bug in rk3328 ram driver - Adapt SPL to support ATF bl31 with entry at 0x40000 - Fix the u8 type comparision with '-1'. - Fix checkpatch warning for multi blank line and review signature.
This commit is contained in:
@@ -168,6 +168,7 @@ struct dm_regulator_uclass_platdata {
|
||||
int mode_count;
|
||||
int min_uV;
|
||||
int max_uV;
|
||||
int init_uV;
|
||||
int min_uA;
|
||||
int max_uA;
|
||||
unsigned int ramp_delay;
|
||||
@@ -177,6 +178,8 @@ struct dm_regulator_uclass_platdata {
|
||||
int flags;
|
||||
u8 ctrl_reg;
|
||||
u8 volt_reg;
|
||||
bool suspend_on;
|
||||
u32 suspend_uV;
|
||||
};
|
||||
|
||||
/* Regulator device operations */
|
||||
@@ -193,6 +196,19 @@ struct dm_regulator_ops {
|
||||
int (*get_value)(struct udevice *dev);
|
||||
int (*set_value)(struct udevice *dev, int uV);
|
||||
|
||||
/**
|
||||
* The regulator suspend output value function calls operates
|
||||
* on a micro Volts.
|
||||
*
|
||||
* get/set_suspen_value - get/set suspend mode output value
|
||||
* @dev - regulator device
|
||||
* Sets:
|
||||
* @uV - set the suspend output value [micro Volts]
|
||||
* @return output value [uV] on success or negative errno if fail.
|
||||
*/
|
||||
int (*set_suspend_value)(struct udevice *dev, int uV);
|
||||
int (*get_suspend_value)(struct udevice *dev);
|
||||
|
||||
/**
|
||||
* The regulator output current function calls operates on a micro Amps.
|
||||
*
|
||||
@@ -217,6 +233,19 @@ struct dm_regulator_ops {
|
||||
int (*get_enable)(struct udevice *dev);
|
||||
int (*set_enable)(struct udevice *dev, bool enable);
|
||||
|
||||
/**
|
||||
* The most basic feature of the regulator output is its enable state
|
||||
* in suspend mode.
|
||||
*
|
||||
* get/set_suspend_enable - get/set enable state of the suspend output
|
||||
* @dev - regulator device
|
||||
* Sets:
|
||||
* @enable - set true - enable or false - disable
|
||||
* @return true/false for get or -errno if fail; 0 / -errno for set.
|
||||
*/
|
||||
int (*set_suspend_enable)(struct udevice *dev, bool enable);
|
||||
int (*get_suspend_enable)(struct udevice *dev);
|
||||
|
||||
/**
|
||||
* The 'get/set_mode()' function calls should operate on a driver-
|
||||
* specific mode id definitions, which should be found in:
|
||||
@@ -261,6 +290,23 @@ int regulator_get_value(struct udevice *dev);
|
||||
*/
|
||||
int regulator_set_value(struct udevice *dev, int uV);
|
||||
|
||||
/**
|
||||
* regulator_set_suspend_value: set the suspend microvoltage value of a given regulator.
|
||||
*
|
||||
* @dev - pointer to the regulator device
|
||||
* @uV - the output suspend value to set [micro Volts]
|
||||
* @return - 0 on success or -errno val if fails
|
||||
*/
|
||||
int regulator_set_suspend_value(struct udevice *dev, int uV);
|
||||
|
||||
/**
|
||||
* regulator_get_suspend_value: get the suspend microvoltage value of a given regulator.
|
||||
*
|
||||
* @dev - pointer to the regulator device
|
||||
* @return - positive output value [uV] on success or negative errno if fail.
|
||||
*/
|
||||
int regulator_get_suspend_value(struct udevice *dev);
|
||||
|
||||
/**
|
||||
* regulator_set_value_force: set the microvoltage value of a given regulator
|
||||
* without any min-,max condition check
|
||||
@@ -316,6 +362,23 @@ int regulator_set_enable(struct udevice *dev, bool enable);
|
||||
*/
|
||||
int regulator_set_enable_if_allowed(struct udevice *dev, bool enable);
|
||||
|
||||
/**
|
||||
* regulator_set_suspend_enable: set regulator suspend enable state
|
||||
*
|
||||
* @dev - pointer to the regulator device
|
||||
* @enable - set true or false
|
||||
* @return - 0 on success or -errno val if fails
|
||||
*/
|
||||
int regulator_set_suspend_enable(struct udevice *dev, bool enable);
|
||||
|
||||
/**
|
||||
* regulator_get_suspend_enable: get regulator suspend enable state
|
||||
*
|
||||
* @dev - pointer to the regulator device
|
||||
* @return - true/false of enable state or -errno val if fails
|
||||
*/
|
||||
int regulator_get_suspend_enable(struct udevice *dev);
|
||||
|
||||
/**
|
||||
* regulator_get_mode: get active operation mode id of a given regulator
|
||||
*
|
||||
|
||||
@@ -169,14 +169,56 @@ enum {
|
||||
RK808_NUM_OF_REGS,
|
||||
};
|
||||
|
||||
enum {
|
||||
RK817_REG_SYS_CFG3 = 0xf4,
|
||||
};
|
||||
|
||||
enum {
|
||||
RK816_REG_DCDC_EN1 = 0x23,
|
||||
RK816_REG_DCDC_EN2,
|
||||
RK816_REG_DCDC_SLP_EN,
|
||||
RK816_REG_LDO_SLP_EN,
|
||||
RK816_REG_LDO_EN1 = 0x27,
|
||||
RK816_REG_LDO_EN2,
|
||||
};
|
||||
|
||||
enum {
|
||||
RK805_ID = 0x8050,
|
||||
RK808_ID = 0x0000,
|
||||
RK809_ID = 0x8090,
|
||||
RK816_ID = 0x8160,
|
||||
RK817_ID = 0x8170,
|
||||
RK818_ID = 0x8180,
|
||||
};
|
||||
|
||||
enum {
|
||||
RK817_POWER_EN0 = 0xb1,
|
||||
RK817_POWER_EN1,
|
||||
RK817_POWER_EN2,
|
||||
RK817_POWER_EN3,
|
||||
};
|
||||
|
||||
#define RK817_POWER_EN_SAVE0 0x99
|
||||
#define RK817_POWER_EN_SAVE1 0xa4
|
||||
|
||||
#define RK817_ID_MSB 0xed
|
||||
#define RK817_ID_LSB 0xee
|
||||
#define RK8XX_ID_MSK 0xfff0
|
||||
|
||||
#define RK817_PMIC_SYS_CFG3 0xf4
|
||||
#define RK817_GPIO_INT_CFG 0xfe
|
||||
|
||||
#define RK8XX_ON_SOURCE 0xae
|
||||
#define RK8XX_OFF_SOURCE 0xaf
|
||||
#define RK817_BUCK4_CMIN 0xc6
|
||||
#define RK817_ON_SOURCE 0xf5
|
||||
#define RK817_OFF_SOURCE 0xf6
|
||||
|
||||
struct reg_data {
|
||||
u8 reg;
|
||||
u8 val;
|
||||
u8 mask;
|
||||
};
|
||||
struct rk8xx_reg_table {
|
||||
char *name;
|
||||
u8 reg_ctl;
|
||||
|
||||
Reference in New Issue
Block a user