mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 19:30:30 +09:00
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:
@@ -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[] = {
|
||||
|
||||
Reference in New Issue
Block a user