pinctrl: rockchip: add calculate slew rate for rk1808

Change-Id: Ia78e6ceda688942b655623d80fe4fe9fc1b349cc
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
This commit is contained in:
Jianqun Xu
2019-03-21 09:22:37 +08:00
committed by David Wu
parent 6bfc507057
commit 37f7f42dec

View File

@@ -2041,6 +2041,32 @@ static void rk1808_calc_drv_reg_and_bit(struct rockchip_pin_bank *bank,
*bit *= RK1808_DRV_BITS_PER_PIN;
}
#define RK1808_SR_PMU_OFFSET 0x0030
#define RK1808_SR_GRF_OFFSET 0x00c0
#define RK1808_SR_BANK_STRIDE 16
#define RK1808_SR_PINS_PER_REG 8
static int rk1808_calc_slew_rate_reg_and_bit(struct rockchip_pin_bank *bank,
int pin_num,
struct regmap **regmap,
int *reg, u8 *bit)
{
struct rockchip_pinctrl *info = bank->drvdata;
if (bank->bank_num == 0) {
*regmap = info->regmap_pmu;
*reg = RK1808_SR_PMU_OFFSET;
} else {
*regmap = info->regmap_base;
*reg = RK1808_SR_GRF_OFFSET;
*reg += (bank->bank_num - 1) * RK1808_SR_BANK_STRIDE;
}
*reg += ((pin_num / RK1808_SR_PINS_PER_REG) * 4);
*bit = pin_num % RK1808_SR_PINS_PER_REG;
return 0;
}
#define RK1808_SCHMITT_PMU_OFFSET 0x0040
#define RK1808_SCHMITT_GRF_OFFSET 0x0100
#define RK1808_SCHMITT_BANK_STRIDE 16
@@ -4410,6 +4436,7 @@ static struct rockchip_pin_ctrl rk1808_pin_ctrl = {
.pull_calc_reg = rk1808_calc_pull_reg_and_bit,
.drv_calc_reg = rk1808_calc_drv_reg_and_bit,
.schmitt_calc_reg = rk1808_calc_schmitt_reg_and_bit,
.slew_rate_calc_reg = rk1808_calc_slew_rate_reg_and_bit,
};
static struct rockchip_pin_bank rk2928_pin_banks[] = {