diff options
author | shengfei Xu <xsf@rock-chips.com> | 2017-07-07 17:18:10 +0800 |
---|---|---|
committer | Huang, Tao <huangtao@rock-chips.com> | 2017-07-19 14:33:51 +0800 |
commit | ce4e02a88b73f7e5828153811cc52b1c5539dcbf (patch) | |
tree | 23b5b01140813e29cd49de22e774a955f9c9e847 /drivers/gpio | |
parent | 9d1525c6d75a111ca5d743becfb57dbbfc7b2117 (diff) |
mfd: rk808: add rk816 support
include sub modules: regulator, rtc, gpio, pwrkey
Change-Id: I59cc4b943403f1e0b1210a314cfcbf61fc193bdf
Signed-off-by: shengfei Xu <xsf@rock-chips.com>
Diffstat (limited to 'drivers/gpio')
-rw-r--r-- | drivers/gpio/gpio-rk8xx.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/gpio/gpio-rk8xx.c b/drivers/gpio/gpio-rk8xx.c index 6adc8d408c4a..67577d21baab 100644 --- a/drivers/gpio/gpio-rk8xx.c +++ b/drivers/gpio/gpio-rk8xx.c @@ -29,6 +29,10 @@ #define RK805_OUT0_VALMASK BIT(0) #define RK805_OUT1_VALMASK BIT(1) +#define RK816_FUN_MASK BIT(2) +#define RK816_OUT_VALMASK BIT(3) +#define RK816_DIR_MASK BIT(4) + struct rk8xx_gpio_reg { u8 reg; u8 dir_msk; @@ -174,6 +178,15 @@ static struct rk8xx_gpio_reg rk805_gpio_reg[] = { }, }; +static struct rk8xx_gpio_reg rk816_gpio_reg[] = { + { + .reg = RK816_GPIO_IO_POL_REG, + .dir_msk = RK816_DIR_MASK, + .val_msk = RK816_OUT_VALMASK, + .fun_msk = RK816_FUN_MASK, + }, +}; + static int rk8xx_gpio_probe(struct platform_device *pdev) { struct rk808 *rk8xx = dev_get_drvdata(pdev->dev.parent); @@ -198,6 +211,10 @@ static int rk8xx_gpio_probe(struct platform_device *pdev) gi->gpio_reg = rk805_gpio_reg; gi->gpio_nr = ARRAY_SIZE(rk805_gpio_reg); break; + case RK816_ID: + gi->gpio_reg = rk816_gpio_reg; + gi->gpio_nr = ARRAY_SIZE(rk816_gpio_reg); + break; default: dev_err(&pdev->dev, "unsupported RK8XX ID %lu\n", rk8xx->variant); |