diff for duplicates of <20160111084629.GD14104@x1> diff --git a/a/1.txt b/N1/1.txt index 4acfde4..0113264 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -1,10 +1,10 @@ On Thu, 31 Dec 2015, zhangqing@263.net wrote: > From: zhangqing <zhangqing@rock-chips.com> -> +>=20 > make rtc-rk8xx.c compatible for all pmic chips. > for pmic chips(rk808\rk807\rk816\rk818) in the future. -> +>=20 > Signed-off-by: zhangqing <zhangqing@rock-chips.com> > --- > drivers/mfd/rk808.c | 2 +- @@ -13,22 +13,23 @@ Acked-by: Lee Jones <lee.jones@linaro.org> > drivers/rtc/Kconfig | 8 +- > drivers/rtc/Makefile | 2 +- -> drivers/rtc/{rtc-rk808.c => rtc-rk8xx.c} | 218 ++++++++++++++++++------------- +> drivers/rtc/{rtc-rk808.c =3D> rtc-rk8xx.c} | 218 ++++++++++++++++++-----= +-------- > 4 files changed, 131 insertions(+), 99 deletions(-) -> rename drivers/rtc/{rtc-rk808.c => rtc-rk8xx.c} (64%) -> +> rename drivers/rtc/{rtc-rk808.c =3D> rtc-rk8xx.c} (64%) +>=20 > diff --git a/drivers/mfd/rk808.c b/drivers/mfd/rk808.c > index 4b1e439..21da22b 100644 > --- a/drivers/mfd/rk808.c > +++ b/drivers/mfd/rk808.c -> @@ -77,7 +77,7 @@ static const struct mfd_cell rk808s[] = { -> { .name = "rk808-clkout", }, -> { .name = "rk808-regulator", }, +> @@ -77,7 +77,7 @@ static const struct mfd_cell rk808s[] =3D { +> { .name =3D "rk808-clkout", }, +> { .name =3D "rk808-regulator", }, > { -> - .name = "rk808-rtc", -> + .name = "rk8xx-rtc", -> .num_resources = ARRAY_SIZE(rtc_resources), -> .resources = &rtc_resources[0], +> - .name =3D "rk808-rtc", +> + .name =3D "rk8xx-rtc", +> .num_resources =3D ARRAY_SIZE(rtc_resources), +> .resources =3D &rtc_resources[0], > }, > diff --git a/drivers/rtc/Kconfig b/drivers/rtc/Kconfig > index 376322f..d669473d 100644 @@ -37,7 +38,7 @@ Acked-by: Lee Jones <lee.jones@linaro.org> > @@ -325,15 +325,15 @@ config RTC_DRV_MAX77686 > This driver can also be built as a module. If so, the module > will be called rtc-max77686. -> +> =20 > -config RTC_DRV_RK808 > - tristate "Rockchip RK808 RTC" > +config RTC_DRV_RK8XX @@ -47,26 +48,26 @@ Acked-by: Lee Jones <lee.jones@linaro.org> > If you say yes here you will get support for the > - RTC of RK808 PMIC. > + RTC of RK8XX PMIC. -> +> =20 > This driver can also be built as a module. If so, the module > - will be called rk808-rtc. > + will be called rk8xx-rtc. -> +> =20 > config RTC_DRV_MAX77802 > tristate "Maxim 77802 RTC" > diff --git a/drivers/rtc/Makefile b/drivers/rtc/Makefile > index 62d61b2..5b1384a 100644 > --- a/drivers/rtc/Makefile > +++ b/drivers/rtc/Makefile -> @@ -120,7 +120,7 @@ obj-$(CONFIG_RTC_DRV_PUV3) += rtc-puv3.o -> obj-$(CONFIG_RTC_DRV_PXA) += rtc-pxa.o -> obj-$(CONFIG_RTC_DRV_R9701) += rtc-r9701.o -> obj-$(CONFIG_RTC_DRV_RC5T583) += rtc-rc5t583.o -> -obj-$(CONFIG_RTC_DRV_RK808) += rtc-rk808.o -> +obj-$(CONFIG_RTC_DRV_RK8XX) += rtc-rk8xx.o -> obj-$(CONFIG_RTC_DRV_RP5C01) += rtc-rp5c01.o -> obj-$(CONFIG_RTC_DRV_RS5C313) += rtc-rs5c313.o -> obj-$(CONFIG_RTC_DRV_RS5C348) += rtc-rs5c348.o +> @@ -120,7 +120,7 @@ obj-$(CONFIG_RTC_DRV_PUV3) +=3D rtc-puv3.o +> obj-$(CONFIG_RTC_DRV_PXA) +=3D rtc-pxa.o +> obj-$(CONFIG_RTC_DRV_R9701) +=3D rtc-r9701.o +> obj-$(CONFIG_RTC_DRV_RC5T583) +=3D rtc-rc5t583.o +> -obj-$(CONFIG_RTC_DRV_RK808) +=3D rtc-rk808.o +> +obj-$(CONFIG_RTC_DRV_RK8XX) +=3D rtc-rk8xx.o +> obj-$(CONFIG_RTC_DRV_RP5C01) +=3D rtc-rp5c01.o +> obj-$(CONFIG_RTC_DRV_RS5C313) +=3D rtc-rs5c313.o +> obj-$(CONFIG_RTC_DRV_RS5C348) +=3D rtc-rs5c348.o > diff --git a/drivers/rtc/rtc-rk808.c b/drivers/rtc/rtc-rk8xx.c > similarity index 64% > rename from drivers/rtc/rtc-rk808.c @@ -108,31 +109,35 @@ Acked-by: Lee Jones <lee.jones@linaro.org> > +#define RK8XX_RTC_INT_REG 0x12 > +#define RK8XX_RTC_COMP_LSB_REG 0x13 > +#define RK8XX_RTC_COMP_MSB_REG 0x14 -> +> =20 > /* RTC_CTRL_REG bitfields */ > #define BIT_RTC_CTRL_REG_STOP_RTC_M BIT(0) -> +> =20 > -/* RK808 has a shadowed register for saving a "frozen" RTC time. > +/* RK8xx has a shadowed register for saving a "frozen" RTC time. -> * When user setting "GET_TIME" to 1, the time will save in this shadowed -> * register. If set "READSEL" to 1, user read rtc time register, actually +> * When user setting "GET_TIME" to 1, the time will save in this shadowe= +d +> * register. If set "READSEL" to 1, user read rtc time register, actuall= +y > * get the time of that moment. If we need the real time, clr this bit. > @@ -47,17 +66,25 @@ -> +> =20 > /* REG_SECONDS_REG through REG_YEARS_REG is how many registers? */ -> +> =20 > -#define NUM_TIME_REGS (RK808_WEEKS_REG - RK808_SECONDS_REG + 1) -> -#define NUM_ALARM_REGS (RK808_ALARM_YEARS_REG - RK808_ALARM_SECONDS_REG + 1) +> -#define NUM_ALARM_REGS (RK808_ALARM_YEARS_REG - RK808_ALARM_SECONDS_REG = ++ 1) > +#define NUM_TIME_REGS (RK8XX_WEEKS_REG - RK8XX_SECONDS_REG + 1) -> +#define NUM_ALARM_REGS (RK8XX_ALARM_YEARS_REG - RK8XX_ALARM_SECONDS_REG + 1) -> +> +#define NUM_ALARM_REGS (RK8XX_ALARM_YEARS_REG - RK8XX_ALARM_SECONDS_REG = ++ 1) +> =20 > -struct rk808_rtc { > - struct rk808 *rk808; -> +static const struct regmap_config rk8xx_rtc_regmap_config = { -> + .reg_bits = 8, -> + .val_bits = 8, -> + .max_register = RK8XX_RTC_COMP_MSB_REG, -> + .cache_type = REGCACHE_RBTREE, +> +static const struct regmap_config rk8xx_rtc_regmap_config =3D { +> + .reg_bits =3D 8, +> + .val_bits =3D 8, +> + .max_register =3D RK8XX_RTC_COMP_MSB_REG, +> + .cache_type =3D REGCACHE_RBTREE, > +}; > + > +struct rk8xx_rtc { @@ -141,186 +146,205 @@ Acked-by: Lee Jones <lee.jones@linaro.org> > + struct regmap *regmap; > int irq; > }; -> +> =20 > /* -> - * The Rockchip calendar used by the RK808 counts November with 31 days. We use -> + * The Rockchip calendar used by the RK8xx counts November with 31 days. We use -> * these translation functions to convert its dates to/from the Gregorian -> * calendar used by the rest of the world. We arbitrarily define Jan 1st, 2016 -> * as the day when both calendars were in sync, and treat all other dates +> - * The Rockchip calendar used by the RK808 counts November with 31 days.= + We use +> + * The Rockchip calendar used by the RK8xx counts November with 31 days.= + We use +> * these translation functions to convert its dates to/from the Gregoria= +n +> * calendar used by the rest of the world. We arbitrarily define Jan 1st= +, 2016 +> * as the day when both calendars were in sync, and treat all other date= +s > @@ -74,6 +101,7 @@ static void rockchip_to_gregorian(struct rtc_time *tm) > { > /* If it's Nov 31st, rtc_tm_to_time64() will count that like Dec 1st */ -> time64_t time = rtc_tm_to_time64(tm); +> time64_t time =3D rtc_tm_to_time64(tm); > + > rtc_time64_to_tm(time + nov2dec_transitions(tm) * 86400, tm); > } -> +> =20 > @@ -81,6 +109,7 @@ static void gregorian_to_rockchip(struct rtc_time *tm) > { -> time64_t extra_days = nov2dec_transitions(tm); -> time64_t time = rtc_tm_to_time64(tm); +> time64_t extra_days =3D nov2dec_transitions(tm); +> time64_t time =3D rtc_tm_to_time64(tm); > + > rtc_time64_to_tm(time - extra_days * 86400, tm); -> +> =20 > /* Compensate if we went back over Nov 31st (will work up to 2381) */ -> @@ -93,15 +122,14 @@ static void gregorian_to_rockchip(struct rtc_time *tm) +> @@ -93,15 +122,14 @@ static void gregorian_to_rockchip(struct rtc_time *t= +m) > } -> +> =20 > /* Read current time and date in RTC */ > -static int rk808_rtc_readtime(struct device *dev, struct rtc_time *tm) > +static int rk8xx_rtc_readtime(struct device *dev, struct rtc_time *tm) > { -> - struct rk808_rtc *rk808_rtc = dev_get_drvdata(dev); -> - struct rk808 *rk808 = rk808_rtc->rk808; -> + struct rk8xx_rtc *rk8xx_rtc = dev_get_drvdata(dev); +> - struct rk808_rtc *rk808_rtc =3D dev_get_drvdata(dev); +> - struct rk808 *rk808 =3D rk808_rtc->rk808; +> + struct rk8xx_rtc *rk8xx_rtc =3D dev_get_drvdata(dev); > u8 rtc_data[NUM_TIME_REGS]; > int ret; -> +> =20 > /* Force an update of the shadowed registers right now */ -> - ret = regmap_update_bits(rk808->regmap, RK808_RTC_CTRL_REG, -> + ret = regmap_update_bits(rk8xx_rtc->regmap, RK8XX_RTC_CTRL_REG, +> - ret =3D regmap_update_bits(rk808->regmap, RK808_RTC_CTRL_REG, +> + ret =3D regmap_update_bits(rk8xx_rtc->regmap, RK8XX_RTC_CTRL_REG, > BIT_RTC_CTRL_REG_RTC_GET_TIME, > BIT_RTC_CTRL_REG_RTC_GET_TIME); > if (ret) { -> @@ -115,7 +143,7 @@ static int rk808_rtc_readtime(struct device *dev, struct rtc_time *tm) +> @@ -115,7 +143,7 @@ static int rk808_rtc_readtime(struct device *dev, str= +uct rtc_time *tm) > * 32khz. If we clear the GET_TIME bit here, the time of i2c transfer > * certainly more than 31.25us: 16 * 2.5us at 400kHz bus frequency. > */ -> - ret = regmap_update_bits(rk808->regmap, RK808_RTC_CTRL_REG, -> + ret = regmap_update_bits(rk8xx_rtc->regmap, RK8XX_RTC_CTRL_REG, +> - ret =3D regmap_update_bits(rk808->regmap, RK808_RTC_CTRL_REG, +> + ret =3D regmap_update_bits(rk8xx_rtc->regmap, RK8XX_RTC_CTRL_REG, > BIT_RTC_CTRL_REG_RTC_GET_TIME, > 0); > if (ret) { -> @@ -123,7 +151,7 @@ static int rk808_rtc_readtime(struct device *dev, struct rtc_time *tm) +> @@ -123,7 +151,7 @@ static int rk808_rtc_readtime(struct device *dev, str= +uct rtc_time *tm) > return ret; > } -> -> - ret = regmap_bulk_read(rk808->regmap, RK808_SECONDS_REG, -> + ret = regmap_bulk_read(rk8xx_rtc->regmap, RK8XX_SECONDS_REG, +> =20 +> - ret =3D regmap_bulk_read(rk808->regmap, RK808_SECONDS_REG, +> + ret =3D regmap_bulk_read(rk8xx_rtc->regmap, RK8XX_SECONDS_REG, > rtc_data, NUM_TIME_REGS); > if (ret) { > dev_err(dev, "Failed to bulk read rtc_data: %d\n", ret); -> @@ -146,10 +174,9 @@ static int rk808_rtc_readtime(struct device *dev, struct rtc_time *tm) +> @@ -146,10 +174,9 @@ static int rk808_rtc_readtime(struct device *dev, st= +ruct rtc_time *tm) > } -> +> =20 > /* Set current time and date in RTC */ > -static int rk808_rtc_set_time(struct device *dev, struct rtc_time *tm) > +static int rk8xx_rtc_set_time(struct device *dev, struct rtc_time *tm) > { -> - struct rk808_rtc *rk808_rtc = dev_get_drvdata(dev); -> - struct rk808 *rk808 = rk808_rtc->rk808; -> + struct rk8xx_rtc *rk8xx_rtc = dev_get_drvdata(dev); +> - struct rk808_rtc *rk808_rtc =3D dev_get_drvdata(dev); +> - struct rk808 *rk808 =3D rk808_rtc->rk808; +> + struct rk8xx_rtc *rk8xx_rtc =3D dev_get_drvdata(dev); > u8 rtc_data[NUM_TIME_REGS]; > int ret; -> -> @@ -166,7 +193,7 @@ static int rk808_rtc_set_time(struct device *dev, struct rtc_time *tm) -> rtc_data[6] = bin2bcd(tm->tm_wday); -> +> =20 +> @@ -166,7 +193,7 @@ static int rk808_rtc_set_time(struct device *dev, str= +uct rtc_time *tm) +> rtc_data[6] =3D bin2bcd(tm->tm_wday); +> =20 > /* Stop RTC while updating the RTC registers */ -> - ret = regmap_update_bits(rk808->regmap, RK808_RTC_CTRL_REG, -> + ret = regmap_update_bits(rk8xx_rtc->regmap, RK8XX_RTC_CTRL_REG, +> - ret =3D regmap_update_bits(rk808->regmap, RK808_RTC_CTRL_REG, +> + ret =3D regmap_update_bits(rk8xx_rtc->regmap, RK8XX_RTC_CTRL_REG, > BIT_RTC_CTRL_REG_STOP_RTC_M, > BIT_RTC_CTRL_REG_STOP_RTC_M); > if (ret) { -> @@ -174,14 +201,14 @@ static int rk808_rtc_set_time(struct device *dev, struct rtc_time *tm) +> @@ -174,14 +201,14 @@ static int rk808_rtc_set_time(struct device *dev, s= +truct rtc_time *tm) > return ret; > } -> -> - ret = regmap_bulk_write(rk808->regmap, RK808_SECONDS_REG, -> + ret = regmap_bulk_write(rk8xx_rtc->regmap, RK8XX_SECONDS_REG, +> =20 +> - ret =3D regmap_bulk_write(rk808->regmap, RK808_SECONDS_REG, +> + ret =3D regmap_bulk_write(rk8xx_rtc->regmap, RK8XX_SECONDS_REG, > rtc_data, NUM_TIME_REGS); > if (ret) { > dev_err(dev, "Failed to bull write rtc_data: %d\n", ret); > return ret; > } > /* Start RTC again */ -> - ret = regmap_update_bits(rk808->regmap, RK808_RTC_CTRL_REG, -> + ret = regmap_update_bits(rk8xx_rtc->regmap, RK8XX_RTC_CTRL_REG, +> - ret =3D regmap_update_bits(rk808->regmap, RK808_RTC_CTRL_REG, +> + ret =3D regmap_update_bits(rk8xx_rtc->regmap, RK8XX_RTC_CTRL_REG, > BIT_RTC_CTRL_REG_STOP_RTC_M, 0); > if (ret) { > dev_err(dev, "Failed to update RTC control: %d\n", ret); -> @@ -191,15 +218,15 @@ static int rk808_rtc_set_time(struct device *dev, struct rtc_time *tm) +> @@ -191,15 +218,15 @@ static int rk808_rtc_set_time(struct device *dev, s= +truct rtc_time *tm) > } -> +> =20 > /* Read alarm time and date in RTC */ -> -static int rk808_rtc_readalarm(struct device *dev, struct rtc_wkalrm *alrm) -> +static int rk8xx_rtc_readalarm(struct device *dev, struct rtc_wkalrm *alrm) +> -static int rk808_rtc_readalarm(struct device *dev, struct rtc_wkalrm *al= +rm) +> +static int rk8xx_rtc_readalarm(struct device *dev, struct rtc_wkalrm *al= +rm) > { -> - struct rk808_rtc *rk808_rtc = dev_get_drvdata(dev); -> - struct rk808 *rk808 = rk808_rtc->rk808; -> + struct rk8xx_rtc *rk8xx_rtc = dev_get_drvdata(dev); +> - struct rk808_rtc *rk808_rtc =3D dev_get_drvdata(dev); +> - struct rk808 *rk808 =3D rk808_rtc->rk808; +> + struct rk8xx_rtc *rk8xx_rtc =3D dev_get_drvdata(dev); > u8 alrm_data[NUM_ALARM_REGS]; > uint32_t int_reg; > int ret; -> -> - ret = regmap_bulk_read(rk808->regmap, RK808_ALARM_SECONDS_REG, -> + ret = regmap_bulk_read(rk8xx_rtc->regmap, +> =20 +> - ret =3D regmap_bulk_read(rk808->regmap, RK808_ALARM_SECONDS_REG, +> + ret =3D regmap_bulk_read(rk8xx_rtc->regmap, > + RK8XX_ALARM_SECONDS_REG, > alrm_data, NUM_ALARM_REGS); -> -> alrm->time.tm_sec = bcd2bin(alrm_data[0] & SECONDS_REG_MSK); -> @@ -210,7 +237,8 @@ static int rk808_rtc_readalarm(struct device *dev, struct rtc_wkalrm *alrm) -> alrm->time.tm_year = (bcd2bin(alrm_data[5] & YEARS_REG_MSK)) + 100; +> =20 +> alrm->time.tm_sec =3D bcd2bin(alrm_data[0] & SECONDS_REG_MSK); +> @@ -210,7 +237,8 @@ static int rk808_rtc_readalarm(struct device *dev, st= +ruct rtc_wkalrm *alrm) +> alrm->time.tm_year =3D (bcd2bin(alrm_data[5] & YEARS_REG_MSK)) + 100; > rockchip_to_gregorian(&alrm->time); -> -> - ret = regmap_read(rk808->regmap, RK808_RTC_INT_REG, &int_reg); -> + ret = regmap_read(rk8xx_rtc->regmap, +> =20 +> - ret =3D regmap_read(rk808->regmap, RK808_RTC_INT_REG, &int_reg); +> + ret =3D regmap_read(rk8xx_rtc->regmap, > + RK8XX_RTC_INT_REG, &int_reg); > if (ret) { > dev_err(dev, "Failed to read RTC INT REG: %d\n", ret); > return ret; -> @@ -226,37 +254,34 @@ static int rk808_rtc_readalarm(struct device *dev, struct rtc_wkalrm *alrm) +> @@ -226,37 +254,34 @@ static int rk808_rtc_readalarm(struct device *dev, = +struct rtc_wkalrm *alrm) > return 0; > } -> +> =20 > -static int rk808_rtc_stop_alarm(struct rk808_rtc *rk808_rtc) > +static int rk8xx_rtc_stop_alarm(struct rk8xx_rtc *rk8xx_rtc) > { -> - struct rk808 *rk808 = rk808_rtc->rk808; +> - struct rk808 *rk808 =3D rk808_rtc->rk808; > int ret; -> -> - ret = regmap_update_bits(rk808->regmap, RK808_RTC_INT_REG, -> + ret = regmap_update_bits(rk8xx_rtc->regmap, RK8XX_RTC_INT_REG, +> =20 +> - ret =3D regmap_update_bits(rk808->regmap, RK808_RTC_INT_REG, +> + ret =3D regmap_update_bits(rk8xx_rtc->regmap, RK8XX_RTC_INT_REG, > BIT_RTC_INTERRUPTS_REG_IT_ALARM_M, 0); -> +> =20 > return ret; > } -> +> =20 > -static int rk808_rtc_start_alarm(struct rk808_rtc *rk808_rtc) > +static int rk8xx_rtc_start_alarm(struct rk8xx_rtc *rk8xx_rtc) > { -> - struct rk808 *rk808 = rk808_rtc->rk808; +> - struct rk808 *rk808 =3D rk808_rtc->rk808; > int ret; -> -> - ret = regmap_update_bits(rk808->regmap, RK808_RTC_INT_REG, -> + ret = regmap_update_bits(rk8xx_rtc->regmap, RK8XX_RTC_INT_REG, +> =20 +> - ret =3D regmap_update_bits(rk808->regmap, RK808_RTC_INT_REG, +> + ret =3D regmap_update_bits(rk8xx_rtc->regmap, RK8XX_RTC_INT_REG, > BIT_RTC_INTERRUPTS_REG_IT_ALARM_M, > BIT_RTC_INTERRUPTS_REG_IT_ALARM_M); -> +> =20 > return ret; > } -> -> -static int rk808_rtc_setalarm(struct device *dev, struct rtc_wkalrm *alrm) -> +static int rk8xx_rtc_setalarm(struct device *dev, struct rtc_wkalrm *alrm) +> =20 +> -static int rk808_rtc_setalarm(struct device *dev, struct rtc_wkalrm *alr= +m) +> +static int rk8xx_rtc_setalarm(struct device *dev, struct rtc_wkalrm *alr= +m) > { -> - struct rk808_rtc *rk808_rtc = dev_get_drvdata(dev); -> - struct rk808 *rk808 = rk808_rtc->rk808; -> + struct rk8xx_rtc *rk8xx_rtc = dev_get_drvdata(dev); +> - struct rk808_rtc *rk808_rtc =3D dev_get_drvdata(dev); +> - struct rk808 *rk808 =3D rk808_rtc->rk808; +> + struct rk8xx_rtc *rk8xx_rtc =3D dev_get_drvdata(dev); > u8 alrm_data[NUM_ALARM_REGS]; > int ret; -> -> - ret = rk808_rtc_stop_alarm(rk808_rtc); -> + ret = rk8xx_rtc_stop_alarm(rk8xx_rtc); +> =20 +> - ret =3D rk808_rtc_stop_alarm(rk808_rtc); +> + ret =3D rk8xx_rtc_stop_alarm(rk8xx_rtc); > if (ret) { > dev_err(dev, "Failed to stop alarm: %d\n", ret); > return ret; -> @@ -274,14 +299,15 @@ static int rk808_rtc_setalarm(struct device *dev, struct rtc_wkalrm *alrm) -> alrm_data[4] = bin2bcd(alrm->time.tm_mon + 1); -> alrm_data[5] = bin2bcd(alrm->time.tm_year - 100); -> -> - ret = regmap_bulk_write(rk808->regmap, RK808_ALARM_SECONDS_REG, -> + ret = regmap_bulk_write(rk8xx_rtc->regmap, +> @@ -274,14 +299,15 @@ static int rk808_rtc_setalarm(struct device *dev, s= +truct rtc_wkalrm *alrm) +> alrm_data[4] =3D bin2bcd(alrm->time.tm_mon + 1); +> alrm_data[5] =3D bin2bcd(alrm->time.tm_year - 100); +> =20 +> - ret =3D regmap_bulk_write(rk808->regmap, RK808_ALARM_SECONDS_REG, +> + ret =3D regmap_bulk_write(rk8xx_rtc->regmap, > + RK8XX_ALARM_SECONDS_REG, > alrm_data, NUM_ALARM_REGS); > if (ret) { @@ -328,89 +352,92 @@ Acked-by: Lee Jones <lee.jones@linaro.org> > return ret; > } > if (alrm->enabled) { -> - ret = rk808_rtc_start_alarm(rk808_rtc); -> + ret = rk8xx_rtc_start_alarm(rk8xx_rtc); +> - ret =3D rk808_rtc_start_alarm(rk808_rtc); +> + ret =3D rk8xx_rtc_start_alarm(rk8xx_rtc); > if (ret) { > dev_err(dev, "Failed to start alarm: %d\n", ret); > return ret; -> @@ -290,15 +316,15 @@ static int rk808_rtc_setalarm(struct device *dev, struct rtc_wkalrm *alrm) +> @@ -290,15 +316,15 @@ static int rk808_rtc_setalarm(struct device *dev, s= +truct rtc_wkalrm *alrm) > return 0; > } -> +> =20 > -static int rk808_rtc_alarm_irq_enable(struct device *dev, > +static int rk8xx_rtc_alarm_irq_enable(struct device *dev, > unsigned int enabled) > { -> - struct rk808_rtc *rk808_rtc = dev_get_drvdata(dev); -> + struct rk8xx_rtc *rk8xx_rtc = dev_get_drvdata(dev); -> +> - struct rk808_rtc *rk808_rtc =3D dev_get_drvdata(dev); +> + struct rk8xx_rtc *rk8xx_rtc =3D dev_get_drvdata(dev); +> =20 > if (enabled) > - return rk808_rtc_start_alarm(rk808_rtc); > + return rk8xx_rtc_start_alarm(rk8xx_rtc); -> +> =20 > - return rk808_rtc_stop_alarm(rk808_rtc); > + return rk8xx_rtc_stop_alarm(rk8xx_rtc); > } -> +> =20 > /* -> @@ -311,14 +337,13 @@ static int rk808_rtc_alarm_irq_enable(struct device *dev, +> @@ -311,14 +337,13 @@ static int rk808_rtc_alarm_irq_enable(struct device= + *dev, > * bit 2: every hour > * bit 3: every day > */ > -static irqreturn_t rk808_alarm_irq(int irq, void *data) > +static irqreturn_t rk8xx_alarm_irq(int irq, void *data) > { -> - struct rk808_rtc *rk808_rtc = data; -> - struct rk808 *rk808 = rk808_rtc->rk808; -> - struct i2c_client *client = rk808->i2c; -> + struct rk8xx_rtc *rk8xx_rtc = data; -> + struct i2c_client *client = rk8xx_rtc->i2c; +> - struct rk808_rtc *rk808_rtc =3D data; +> - struct rk808 *rk808 =3D rk808_rtc->rk808; +> - struct i2c_client *client =3D rk808->i2c; +> + struct rk8xx_rtc *rk8xx_rtc =3D data; +> + struct i2c_client *client =3D rk8xx_rtc->i2c; > int ret; -> -> - ret = regmap_write(rk808->regmap, RK808_RTC_STATUS_REG, -> + ret = regmap_write(rk8xx_rtc->regmap, RK8XX_RTC_STATUS_REG, +> =20 +> - ret =3D regmap_write(rk808->regmap, RK808_RTC_STATUS_REG, +> + ret =3D regmap_write(rk8xx_rtc->regmap, RK8XX_RTC_STATUS_REG, > RTC_STATUS_MASK); > if (ret) { > dev_err(&client->dev, -> @@ -326,29 +351,29 @@ static irqreturn_t rk808_alarm_irq(int irq, void *data) +> @@ -326,29 +351,29 @@ static irqreturn_t rk808_alarm_irq(int irq, void *d= +ata) > return ret; > } -> +> =20 > - rtc_update_irq(rk808_rtc->rtc, 1, RTC_IRQF | RTC_AF); > + rtc_update_irq(rk8xx_rtc->rtc, 1, RTC_IRQF | RTC_AF); > dev_dbg(&client->dev, -> - "%s:irq=%d\n", __func__, irq); -> + "%s:irq=%d\n", __func__, irq); +> - "%s:irq=3D%d\n", __func__, irq); +> + "%s:irq=3D%d\n", __func__, irq); > return IRQ_HANDLED; > } -> -> -static const struct rtc_class_ops rk808_rtc_ops = { -> - .read_time = rk808_rtc_readtime, -> - .set_time = rk808_rtc_set_time, -> - .read_alarm = rk808_rtc_readalarm, -> - .set_alarm = rk808_rtc_setalarm, -> - .alarm_irq_enable = rk808_rtc_alarm_irq_enable, -> +static const struct rtc_class_ops rk8xx_rtc_ops = { -> + .read_time = rk8xx_rtc_readtime, -> + .set_time = rk8xx_rtc_set_time, -> + .read_alarm = rk8xx_rtc_readalarm, -> + .set_alarm = rk8xx_rtc_setalarm, -> + .alarm_irq_enable = rk8xx_rtc_alarm_irq_enable, +> =20 +> -static const struct rtc_class_ops rk808_rtc_ops =3D { +> - .read_time =3D rk808_rtc_readtime, +> - .set_time =3D rk808_rtc_set_time, +> - .read_alarm =3D rk808_rtc_readalarm, +> - .set_alarm =3D rk808_rtc_setalarm, +> - .alarm_irq_enable =3D rk808_rtc_alarm_irq_enable, +> +static const struct rtc_class_ops rk8xx_rtc_ops =3D { +> + .read_time =3D rk8xx_rtc_readtime, +> + .set_time =3D rk8xx_rtc_set_time, +> + .read_alarm =3D rk8xx_rtc_readalarm, +> + .set_alarm =3D rk8xx_rtc_setalarm, +> + .alarm_irq_enable =3D rk8xx_rtc_alarm_irq_enable, > }; -> +> =20 > #ifdef CONFIG_PM_SLEEP > /* Turn off the alarm if it should not be a wake source. */ > -static int rk808_rtc_suspend(struct device *dev) > +static int rk8xx_rtc_suspend(struct device *dev) > { -> struct platform_device *pdev = to_platform_device(dev); -> - struct rk808_rtc *rk808_rtc = dev_get_drvdata(&pdev->dev); -> + struct rk8xx_rtc *rk8xx_rtc = dev_get_drvdata(&pdev->dev); -> +> struct platform_device *pdev =3D to_platform_device(dev); +> - struct rk808_rtc *rk808_rtc =3D dev_get_drvdata(&pdev->dev); +> + struct rk8xx_rtc *rk8xx_rtc =3D dev_get_drvdata(&pdev->dev); +> =20 > if (device_may_wakeup(dev)) > - enable_irq_wake(rk808_rtc->irq); > + enable_irq_wake(rk8xx_rtc->irq); -> +> =20 > return 0; > } > @@ -356,37 +381,44 @@ static int rk808_rtc_suspend(struct device *dev) @@ -420,42 +447,42 @@ Acked-by: Lee Jones <lee.jones@linaro.org> > -static int rk808_rtc_resume(struct device *dev) > +static int rk8xx_rtc_resume(struct device *dev) > { -> struct platform_device *pdev = to_platform_device(dev); -> - struct rk808_rtc *rk808_rtc = dev_get_drvdata(&pdev->dev); -> + struct rk8xx_rtc *rk8xx_rtc = dev_get_drvdata(&pdev->dev); -> +> struct platform_device *pdev =3D to_platform_device(dev); +> - struct rk808_rtc *rk808_rtc =3D dev_get_drvdata(&pdev->dev); +> + struct rk8xx_rtc *rk8xx_rtc =3D dev_get_drvdata(&pdev->dev); +> =20 > if (device_may_wakeup(dev)) > - disable_irq_wake(rk808_rtc->irq); > + disable_irq_wake(rk8xx_rtc->irq); -> +> =20 > return 0; > } > #endif -> +> =20 > -static SIMPLE_DEV_PM_OPS(rk808_rtc_pm_ops, > - rk808_rtc_suspend, rk808_rtc_resume); > +static SIMPLE_DEV_PM_OPS(rk8xx_rtc_pm_ops, > + rk8xx_rtc_suspend, rk8xx_rtc_resume); -> +> =20 > -static int rk808_rtc_probe(struct platform_device *pdev) > +static int rk8xx_rtc_probe(struct platform_device *pdev) > { -> - struct rk808 *rk808 = dev_get_drvdata(pdev->dev.parent); +> - struct rk808 *rk808 =3D dev_get_drvdata(pdev->dev.parent); > - struct rk808_rtc *rk808_rtc; -> + struct i2c_client *client = to_i2c_client(pdev->dev.parent); +> + struct i2c_client *client =3D to_i2c_client(pdev->dev.parent); > + struct rk8xx_rtc *rk8xx_rtc; > struct rtc_time tm; > int ret; -> -> - rk808_rtc = devm_kzalloc(&pdev->dev, sizeof(*rk808_rtc), GFP_KERNEL); -> - if (rk808_rtc == NULL) -> + rk8xx_rtc = devm_kzalloc(&pdev->dev, sizeof(*rk8xx_rtc), GFP_KERNEL); -> + if (rk8xx_rtc == NULL) +> =20 +> - rk808_rtc =3D devm_kzalloc(&pdev->dev, sizeof(*rk808_rtc), GFP_KERNEL); +> - if (rk808_rtc =3D=3D NULL) +> + rk8xx_rtc =3D devm_kzalloc(&pdev->dev, sizeof(*rk8xx_rtc), GFP_KERNEL); +> + if (rk8xx_rtc =3D=3D NULL) > return -ENOMEM; -> +> =20 > - platform_set_drvdata(pdev, rk808_rtc); -> - rk808_rtc->rk808 = rk808; -> + rk8xx_rtc->regmap = devm_regmap_init_i2c(client, +> - rk808_rtc->rk808 =3D rk808; +> + rk8xx_rtc->regmap =3D devm_regmap_init_i2c(client, > + &rk8xx_rtc_regmap_config); > + if (IS_ERR(rk8xx_rtc->regmap)) { > + dev_err(&pdev->dev, "regmap initialization failed\n"); @@ -463,66 +490,69 @@ Acked-by: Lee Jones <lee.jones@linaro.org> > + } > + > + platform_set_drvdata(pdev, rk8xx_rtc); -> + rk8xx_rtc->i2c = client; -> +> + rk8xx_rtc->i2c =3D client; +> =20 > /* start rtc running by default, and use shadowed timer. */ -> - ret = regmap_update_bits(rk808->regmap, RK808_RTC_CTRL_REG, -> + ret = regmap_update_bits(rk8xx_rtc->regmap, RK8XX_RTC_CTRL_REG, +> - ret =3D regmap_update_bits(rk808->regmap, RK808_RTC_CTRL_REG, +> + ret =3D regmap_update_bits(rk8xx_rtc->regmap, RK8XX_RTC_CTRL_REG, > BIT_RTC_CTRL_REG_STOP_RTC_M | > BIT_RTC_CTRL_REG_RTC_READSEL_M, > BIT_RTC_CTRL_REG_RTC_READSEL_M); -> @@ -396,7 +428,7 @@ static int rk808_rtc_probe(struct platform_device *pdev) +> @@ -396,7 +428,7 @@ static int rk808_rtc_probe(struct platform_device *pd= +ev) > return ret; > } -> -> - ret = regmap_write(rk808->regmap, RK808_RTC_STATUS_REG, -> + ret = regmap_write(rk8xx_rtc->regmap, RK8XX_RTC_STATUS_REG, +> =20 +> - ret =3D regmap_write(rk808->regmap, RK808_RTC_STATUS_REG, +> + ret =3D regmap_write(rk8xx_rtc->regmap, RK8XX_RTC_STATUS_REG, > RTC_STATUS_MASK); > if (ret) { > dev_err(&pdev->dev, -> @@ -405,7 +437,7 @@ static int rk808_rtc_probe(struct platform_device *pdev) +> @@ -405,7 +437,7 @@ static int rk808_rtc_probe(struct platform_device *pd= +ev) > } -> +> =20 > /* set init time */ -> - ret = rk808_rtc_readtime(&pdev->dev, &tm); -> + ret = rk8xx_rtc_readtime(&pdev->dev, &tm); +> - ret =3D rk808_rtc_readtime(&pdev->dev, &tm); +> + ret =3D rk8xx_rtc_readtime(&pdev->dev, &tm); > if (ret) { > dev_err(&pdev->dev, "Failed to read RTC time\n"); > return ret; -> @@ -416,45 +448,45 @@ static int rk808_rtc_probe(struct platform_device *pdev) -> +> @@ -416,45 +448,45 @@ static int rk808_rtc_probe(struct platform_device *= +pdev) +> =20 > device_init_wakeup(&pdev->dev, 1); -> -> - rk808_rtc->rtc = devm_rtc_device_register(&pdev->dev, "rk808-rtc", +> =20 +> - rk808_rtc->rtc =3D devm_rtc_device_register(&pdev->dev, "rk808-rtc", > - &rk808_rtc_ops, THIS_MODULE); > - if (IS_ERR(rk808_rtc->rtc)) { -> - ret = PTR_ERR(rk808_rtc->rtc); -> + rk8xx_rtc->rtc = devm_rtc_device_register(&pdev->dev, "rk8xx-rtc", +> - ret =3D PTR_ERR(rk808_rtc->rtc); +> + rk8xx_rtc->rtc =3D devm_rtc_device_register(&pdev->dev, "rk8xx-rtc", > + &rk8xx_rtc_ops, THIS_MODULE); > + if (IS_ERR(rk8xx_rtc->rtc)) { -> + ret = PTR_ERR(rk8xx_rtc->rtc); +> + ret =3D PTR_ERR(rk8xx_rtc->rtc); > return ret; > } -> -> - rk808_rtc->irq = platform_get_irq(pdev, 0); +> =20 +> - rk808_rtc->irq =3D platform_get_irq(pdev, 0); > - if (rk808_rtc->irq < 0) { -> - if (rk808_rtc->irq != -EPROBE_DEFER) -> + rk8xx_rtc->irq = platform_get_irq(pdev, 0); +> - if (rk808_rtc->irq !=3D -EPROBE_DEFER) +> + rk8xx_rtc->irq =3D platform_get_irq(pdev, 0); > + if (rk8xx_rtc->irq < 0) { -> + if (rk8xx_rtc->irq != -EPROBE_DEFER) -> dev_err(&pdev->dev, "Wake up is not possible as irq = %d\n", +> + if (rk8xx_rtc->irq !=3D -EPROBE_DEFER) +> dev_err(&pdev->dev, "Wake up is not possible as irq =3D %d\n", > - rk808_rtc->irq); > - return rk808_rtc->irq; > + rk8xx_rtc->irq); > + return rk8xx_rtc->irq; > } -> +> =20 > - /* request alarm irq of rk808 */ -> - ret = devm_request_threaded_irq(&pdev->dev, rk808_rtc->irq, NULL, +> - ret =3D devm_request_threaded_irq(&pdev->dev, rk808_rtc->irq, NULL, > - rk808_alarm_irq, 0, > - "RTC alarm", rk808_rtc); > + /* request alarm irq of rk8xx */ -> + ret = devm_request_threaded_irq(&pdev->dev, rk8xx_rtc->irq, NULL, +> + ret =3D devm_request_threaded_irq(&pdev->dev, rk8xx_rtc->irq, NULL, > + rk8xx_alarm_irq, 0, > + "RTC alarm", rk8xx_rtc); > if (ret) { @@ -530,25 +560,25 @@ Acked-by: Lee Jones <lee.jones@linaro.org> > - rk808_rtc->irq, ret); > + rk8xx_rtc->irq, ret); > } -> +> =20 > return ret; > } -> -> -static struct platform_driver rk808_rtc_driver = { -> - .probe = rk808_rtc_probe, -> +static struct platform_driver rk8xx_rtc_driver = { -> + .probe = rk8xx_rtc_probe, -> .driver = { -> - .name = "rk808-rtc", -> - .pm = &rk808_rtc_pm_ops, -> + .name = "rk8xx-rtc", -> + .pm = &rk8xx_rtc_pm_ops, +> =20 +> -static struct platform_driver rk808_rtc_driver =3D { +> - .probe =3D rk808_rtc_probe, +> +static struct platform_driver rk8xx_rtc_driver =3D { +> + .probe =3D rk8xx_rtc_probe, +> .driver =3D { +> - .name =3D "rk808-rtc", +> - .pm =3D &rk808_rtc_pm_ops, +> + .name =3D "rk8xx-rtc", +> + .pm =3D &rk8xx_rtc_pm_ops, > }, > }; -> +> =20 > -module_platform_driver(rk808_rtc_driver); > +module_platform_driver(rk8xx_rtc_driver); -> +> =20 > -MODULE_DESCRIPTION("RTC driver for the rk808 series PMICs"); > +MODULE_DESCRIPTION("RTC driver for the rk8xx series PMICs"); > MODULE_AUTHOR("Chris Zhong <zyw@rock-chips.com>"); @@ -557,8 +587,21 @@ Acked-by: Lee Jones <lee.jones@linaro.org> > -MODULE_ALIAS("platform:rk808-rtc"); > +MODULE_ALIAS("platform:rk8xx-rtc"); --- +--=20 Lee Jones Linaro STMicroelectronics Landing Team Lead -Linaro.org │ Open source software for ARM SoCs +Linaro.org =E2=94=82 Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog + +--=20 +--=20 +You received this message because you are subscribed to "rtc-linux". +Membership options at http://groups.google.com/group/rtc-linux . +Please read http://groups.google.com/group/rtc-linux/web/checklist +before submitting a driver. +---=20 +You received this message because you are subscribed to the Google Groups "= +rtc-linux" group. +To unsubscribe from this group and stop receiving emails from it, send an e= +mail to rtc-linux+unsubscribe@googlegroups.com. +For more options, visit https://groups.google.com/d/optout. diff --git a/a/content_digest b/N1/content_digest index 487b61a..3648818 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,6 +1,6 @@ "ref\05684a3c1.060b620a.6fa22.2470SMTPIN_ADDED_BROKEN@mx.google.com\0" "From\0Lee Jones <lee.jones@linaro.org>\0" - "Subject\0Re: [PATCH] rtc: rk808: rename rtc-rk808.c to rtc-rk8xx.c\0" + "Subject\0[rtc-linux] Re: [PATCH] rtc: rk808: rename rtc-rk808.c to rtc-rk8xx.c\0" "Date\0Mon, 11 Jan 2016 08:46:29 +0000\0" "To\0zhangqing@263.net\0" "Cc\0heiko@sntech.de" @@ -17,10 +17,10 @@ "On Thu, 31 Dec 2015, zhangqing@263.net wrote:\n" "\n" "> From: zhangqing <zhangqing@rock-chips.com>\n" - "> \n" + ">=20\n" "> make rtc-rk8xx.c compatible for all pmic chips.\n" "> for pmic chips(rk808\\rk807\\rk816\\rk818) in the future.\n" - "> \n" + ">=20\n" "> Signed-off-by: zhangqing <zhangqing@rock-chips.com>\n" "> ---\n" "> drivers/mfd/rk808.c | 2 +-\n" @@ -29,22 +29,23 @@ "\n" "> drivers/rtc/Kconfig | 8 +-\n" "> drivers/rtc/Makefile | 2 +-\n" - "> drivers/rtc/{rtc-rk808.c => rtc-rk8xx.c} | 218 ++++++++++++++++++-------------\n" + "> drivers/rtc/{rtc-rk808.c =3D> rtc-rk8xx.c} | 218 ++++++++++++++++++-----=\n" + "--------\n" "> 4 files changed, 131 insertions(+), 99 deletions(-)\n" - "> rename drivers/rtc/{rtc-rk808.c => rtc-rk8xx.c} (64%)\n" - "> \n" + "> rename drivers/rtc/{rtc-rk808.c =3D> rtc-rk8xx.c} (64%)\n" + ">=20\n" "> diff --git a/drivers/mfd/rk808.c b/drivers/mfd/rk808.c\n" "> index 4b1e439..21da22b 100644\n" "> --- a/drivers/mfd/rk808.c\n" "> +++ b/drivers/mfd/rk808.c\n" - "> @@ -77,7 +77,7 @@ static const struct mfd_cell rk808s[] = {\n" - "> \t{ .name = \"rk808-clkout\", },\n" - "> \t{ .name = \"rk808-regulator\", },\n" + "> @@ -77,7 +77,7 @@ static const struct mfd_cell rk808s[] =3D {\n" + "> \t{ .name =3D \"rk808-clkout\", },\n" + "> \t{ .name =3D \"rk808-regulator\", },\n" "> \t{\n" - "> -\t\t.name = \"rk808-rtc\",\n" - "> +\t\t.name = \"rk8xx-rtc\",\n" - "> \t\t.num_resources = ARRAY_SIZE(rtc_resources),\n" - "> \t\t.resources = &rtc_resources[0],\n" + "> -\t\t.name =3D \"rk808-rtc\",\n" + "> +\t\t.name =3D \"rk8xx-rtc\",\n" + "> \t\t.num_resources =3D ARRAY_SIZE(rtc_resources),\n" + "> \t\t.resources =3D &rtc_resources[0],\n" "> \t},\n" "> diff --git a/drivers/rtc/Kconfig b/drivers/rtc/Kconfig\n" "> index 376322f..d669473d 100644\n" @@ -53,7 +54,7 @@ "> @@ -325,15 +325,15 @@ config RTC_DRV_MAX77686\n" "> \t This driver can also be built as a module. If so, the module\n" "> \t will be called rtc-max77686.\n" - "> \n" + "> =20\n" "> -config RTC_DRV_RK808\n" "> -\ttristate \"Rockchip RK808 RTC\"\n" "> +config RTC_DRV_RK8XX\n" @@ -63,26 +64,26 @@ "> \t If you say yes here you will get support for the\n" "> -\t RTC of RK808 PMIC.\n" "> +\t RTC of RK8XX PMIC.\n" - "> \n" + "> =20\n" "> \t This driver can also be built as a module. If so, the module\n" "> -\t will be called rk808-rtc.\n" "> +\t will be called rk8xx-rtc.\n" - "> \n" + "> =20\n" "> config RTC_DRV_MAX77802\n" "> \ttristate \"Maxim 77802 RTC\"\n" "> diff --git a/drivers/rtc/Makefile b/drivers/rtc/Makefile\n" "> index 62d61b2..5b1384a 100644\n" "> --- a/drivers/rtc/Makefile\n" "> +++ b/drivers/rtc/Makefile\n" - "> @@ -120,7 +120,7 @@ obj-$(CONFIG_RTC_DRV_PUV3)\t+= rtc-puv3.o\n" - "> obj-$(CONFIG_RTC_DRV_PXA)\t+= rtc-pxa.o\n" - "> obj-$(CONFIG_RTC_DRV_R9701)\t+= rtc-r9701.o\n" - "> obj-$(CONFIG_RTC_DRV_RC5T583)\t+= rtc-rc5t583.o\n" - "> -obj-$(CONFIG_RTC_DRV_RK808)\t+= rtc-rk808.o\n" - "> +obj-$(CONFIG_RTC_DRV_RK8XX)\t+= rtc-rk8xx.o\n" - "> obj-$(CONFIG_RTC_DRV_RP5C01)\t+= rtc-rp5c01.o\n" - "> obj-$(CONFIG_RTC_DRV_RS5C313)\t+= rtc-rs5c313.o\n" - "> obj-$(CONFIG_RTC_DRV_RS5C348)\t+= rtc-rs5c348.o\n" + "> @@ -120,7 +120,7 @@ obj-$(CONFIG_RTC_DRV_PUV3)\t+=3D rtc-puv3.o\n" + "> obj-$(CONFIG_RTC_DRV_PXA)\t+=3D rtc-pxa.o\n" + "> obj-$(CONFIG_RTC_DRV_R9701)\t+=3D rtc-r9701.o\n" + "> obj-$(CONFIG_RTC_DRV_RC5T583)\t+=3D rtc-rc5t583.o\n" + "> -obj-$(CONFIG_RTC_DRV_RK808)\t+=3D rtc-rk808.o\n" + "> +obj-$(CONFIG_RTC_DRV_RK8XX)\t+=3D rtc-rk8xx.o\n" + "> obj-$(CONFIG_RTC_DRV_RP5C01)\t+=3D rtc-rp5c01.o\n" + "> obj-$(CONFIG_RTC_DRV_RS5C313)\t+=3D rtc-rs5c313.o\n" + "> obj-$(CONFIG_RTC_DRV_RS5C348)\t+=3D rtc-rs5c348.o\n" "> diff --git a/drivers/rtc/rtc-rk808.c b/drivers/rtc/rtc-rk8xx.c\n" "> similarity index 64%\n" "> rename from drivers/rtc/rtc-rk808.c\n" @@ -124,31 +125,35 @@ "> +#define RK8XX_RTC_INT_REG\t\t\t0x12\n" "> +#define RK8XX_RTC_COMP_LSB_REG\t\t\t0x13\n" "> +#define RK8XX_RTC_COMP_MSB_REG\t\t\t0x14\n" - "> \n" + "> =20\n" "> /* RTC_CTRL_REG bitfields */\n" "> #define BIT_RTC_CTRL_REG_STOP_RTC_M\t\tBIT(0)\n" - "> \n" + "> =20\n" "> -/* RK808 has a shadowed register for saving a \"frozen\" RTC time.\n" "> +/* RK8xx has a shadowed register for saving a \"frozen\" RTC time.\n" - "> * When user setting \"GET_TIME\" to 1, the time will save in this shadowed\n" - "> * register. If set \"READSEL\" to 1, user read rtc time register, actually\n" + "> * When user setting \"GET_TIME\" to 1, the time will save in this shadowe=\n" + "d\n" + "> * register. If set \"READSEL\" to 1, user read rtc time register, actuall=\n" + "y\n" "> * get the time of that moment. If we need the real time, clr this bit.\n" "> @@ -47,17 +66,25 @@\n" - "> \n" + "> =20\n" "> /* REG_SECONDS_REG through REG_YEARS_REG is how many registers? */\n" - "> \n" + "> =20\n" "> -#define NUM_TIME_REGS\t(RK808_WEEKS_REG - RK808_SECONDS_REG + 1)\n" - "> -#define NUM_ALARM_REGS\t(RK808_ALARM_YEARS_REG - RK808_ALARM_SECONDS_REG + 1)\n" + "> -#define NUM_ALARM_REGS\t(RK808_ALARM_YEARS_REG - RK808_ALARM_SECONDS_REG =\n" + "+ 1)\n" "> +#define NUM_TIME_REGS\t(RK8XX_WEEKS_REG - RK8XX_SECONDS_REG + 1)\n" - "> +#define NUM_ALARM_REGS\t(RK8XX_ALARM_YEARS_REG - RK8XX_ALARM_SECONDS_REG + 1)\n" - "> \n" + "> +#define NUM_ALARM_REGS\t(RK8XX_ALARM_YEARS_REG - RK8XX_ALARM_SECONDS_REG =\n" + "+ 1)\n" + "> =20\n" "> -struct rk808_rtc {\n" "> -\tstruct rk808 *rk808;\n" - "> +static const struct regmap_config rk8xx_rtc_regmap_config = {\n" - "> +\t.reg_bits = 8,\n" - "> +\t.val_bits = 8,\n" - "> +\t.max_register = RK8XX_RTC_COMP_MSB_REG,\n" - "> +\t.cache_type = REGCACHE_RBTREE,\n" + "> +static const struct regmap_config rk8xx_rtc_regmap_config =3D {\n" + "> +\t.reg_bits =3D 8,\n" + "> +\t.val_bits =3D 8,\n" + "> +\t.max_register =3D RK8XX_RTC_COMP_MSB_REG,\n" + "> +\t.cache_type =3D REGCACHE_RBTREE,\n" "> +};\n" "> +\n" "> +struct rk8xx_rtc {\n" @@ -157,186 +162,205 @@ "> +\tstruct regmap *regmap;\n" "> \tint irq;\n" "> };\n" - "> \n" + "> =20\n" "> /*\n" - "> - * The Rockchip calendar used by the RK808 counts November with 31 days. We use\n" - "> + * The Rockchip calendar used by the RK8xx counts November with 31 days. We use\n" - "> * these translation functions to convert its dates to/from the Gregorian\n" - "> * calendar used by the rest of the world. We arbitrarily define Jan 1st, 2016\n" - "> * as the day when both calendars were in sync, and treat all other dates\n" + "> - * The Rockchip calendar used by the RK808 counts November with 31 days.=\n" + " We use\n" + "> + * The Rockchip calendar used by the RK8xx counts November with 31 days.=\n" + " We use\n" + "> * these translation functions to convert its dates to/from the Gregoria=\n" + "n\n" + "> * calendar used by the rest of the world. We arbitrarily define Jan 1st=\n" + ", 2016\n" + "> * as the day when both calendars were in sync, and treat all other date=\n" + "s\n" "> @@ -74,6 +101,7 @@ static void rockchip_to_gregorian(struct rtc_time *tm)\n" "> {\n" "> \t/* If it's Nov 31st, rtc_tm_to_time64() will count that like Dec 1st */\n" - "> \ttime64_t time = rtc_tm_to_time64(tm);\n" + "> \ttime64_t time =3D rtc_tm_to_time64(tm);\n" "> +\n" "> \trtc_time64_to_tm(time + nov2dec_transitions(tm) * 86400, tm);\n" "> }\n" - "> \n" + "> =20\n" "> @@ -81,6 +109,7 @@ static void gregorian_to_rockchip(struct rtc_time *tm)\n" "> {\n" - "> \ttime64_t extra_days = nov2dec_transitions(tm);\n" - "> \ttime64_t time = rtc_tm_to_time64(tm);\n" + "> \ttime64_t extra_days =3D nov2dec_transitions(tm);\n" + "> \ttime64_t time =3D rtc_tm_to_time64(tm);\n" "> +\n" "> \trtc_time64_to_tm(time - extra_days * 86400, tm);\n" - "> \n" + "> =20\n" "> \t/* Compensate if we went back over Nov 31st (will work up to 2381) */\n" - "> @@ -93,15 +122,14 @@ static void gregorian_to_rockchip(struct rtc_time *tm)\n" + "> @@ -93,15 +122,14 @@ static void gregorian_to_rockchip(struct rtc_time *t=\n" + "m)\n" "> }\n" - "> \n" + "> =20\n" "> /* Read current time and date in RTC */\n" "> -static int rk808_rtc_readtime(struct device *dev, struct rtc_time *tm)\n" "> +static int rk8xx_rtc_readtime(struct device *dev, struct rtc_time *tm)\n" "> {\n" - "> -\tstruct rk808_rtc *rk808_rtc = dev_get_drvdata(dev);\n" - "> -\tstruct rk808 *rk808 = rk808_rtc->rk808;\n" - "> +\tstruct rk8xx_rtc *rk8xx_rtc = dev_get_drvdata(dev);\n" + "> -\tstruct rk808_rtc *rk808_rtc =3D dev_get_drvdata(dev);\n" + "> -\tstruct rk808 *rk808 =3D rk808_rtc->rk808;\n" + "> +\tstruct rk8xx_rtc *rk8xx_rtc =3D dev_get_drvdata(dev);\n" "> \tu8 rtc_data[NUM_TIME_REGS];\n" "> \tint ret;\n" - "> \n" + "> =20\n" "> \t/* Force an update of the shadowed registers right now */\n" - "> -\tret = regmap_update_bits(rk808->regmap, RK808_RTC_CTRL_REG,\n" - "> +\tret = regmap_update_bits(rk8xx_rtc->regmap, RK8XX_RTC_CTRL_REG,\n" + "> -\tret =3D regmap_update_bits(rk808->regmap, RK808_RTC_CTRL_REG,\n" + "> +\tret =3D regmap_update_bits(rk8xx_rtc->regmap, RK8XX_RTC_CTRL_REG,\n" "> \t\t\t\t BIT_RTC_CTRL_REG_RTC_GET_TIME,\n" "> \t\t\t\t BIT_RTC_CTRL_REG_RTC_GET_TIME);\n" "> \tif (ret) {\n" - "> @@ -115,7 +143,7 @@ static int rk808_rtc_readtime(struct device *dev, struct rtc_time *tm)\n" + "> @@ -115,7 +143,7 @@ static int rk808_rtc_readtime(struct device *dev, str=\n" + "uct rtc_time *tm)\n" "> \t * 32khz. If we clear the GET_TIME bit here, the time of i2c transfer\n" "> \t * certainly more than 31.25us: 16 * 2.5us at 400kHz bus frequency.\n" "> \t */\n" - "> -\tret = regmap_update_bits(rk808->regmap, RK808_RTC_CTRL_REG,\n" - "> +\tret = regmap_update_bits(rk8xx_rtc->regmap, RK8XX_RTC_CTRL_REG,\n" + "> -\tret =3D regmap_update_bits(rk808->regmap, RK808_RTC_CTRL_REG,\n" + "> +\tret =3D regmap_update_bits(rk8xx_rtc->regmap, RK8XX_RTC_CTRL_REG,\n" "> \t\t\t\t BIT_RTC_CTRL_REG_RTC_GET_TIME,\n" "> \t\t\t\t 0);\n" "> \tif (ret) {\n" - "> @@ -123,7 +151,7 @@ static int rk808_rtc_readtime(struct device *dev, struct rtc_time *tm)\n" + "> @@ -123,7 +151,7 @@ static int rk808_rtc_readtime(struct device *dev, str=\n" + "uct rtc_time *tm)\n" "> \t\treturn ret;\n" "> \t}\n" - "> \n" - "> -\tret = regmap_bulk_read(rk808->regmap, RK808_SECONDS_REG,\n" - "> +\tret = regmap_bulk_read(rk8xx_rtc->regmap, RK8XX_SECONDS_REG,\n" + "> =20\n" + "> -\tret =3D regmap_bulk_read(rk808->regmap, RK808_SECONDS_REG,\n" + "> +\tret =3D regmap_bulk_read(rk8xx_rtc->regmap, RK8XX_SECONDS_REG,\n" "> \t\t\t rtc_data, NUM_TIME_REGS);\n" "> \tif (ret) {\n" "> \t\tdev_err(dev, \"Failed to bulk read rtc_data: %d\\n\", ret);\n" - "> @@ -146,10 +174,9 @@ static int rk808_rtc_readtime(struct device *dev, struct rtc_time *tm)\n" + "> @@ -146,10 +174,9 @@ static int rk808_rtc_readtime(struct device *dev, st=\n" + "ruct rtc_time *tm)\n" "> }\n" - "> \n" + "> =20\n" "> /* Set current time and date in RTC */\n" "> -static int rk808_rtc_set_time(struct device *dev, struct rtc_time *tm)\n" "> +static int rk8xx_rtc_set_time(struct device *dev, struct rtc_time *tm)\n" "> {\n" - "> -\tstruct rk808_rtc *rk808_rtc = dev_get_drvdata(dev);\n" - "> -\tstruct rk808 *rk808 = rk808_rtc->rk808;\n" - "> +\tstruct rk8xx_rtc *rk8xx_rtc = dev_get_drvdata(dev);\n" + "> -\tstruct rk808_rtc *rk808_rtc =3D dev_get_drvdata(dev);\n" + "> -\tstruct rk808 *rk808 =3D rk808_rtc->rk808;\n" + "> +\tstruct rk8xx_rtc *rk8xx_rtc =3D dev_get_drvdata(dev);\n" "> \tu8 rtc_data[NUM_TIME_REGS];\n" "> \tint ret;\n" - "> \n" - "> @@ -166,7 +193,7 @@ static int rk808_rtc_set_time(struct device *dev, struct rtc_time *tm)\n" - "> \trtc_data[6] = bin2bcd(tm->tm_wday);\n" - "> \n" + "> =20\n" + "> @@ -166,7 +193,7 @@ static int rk808_rtc_set_time(struct device *dev, str=\n" + "uct rtc_time *tm)\n" + "> \trtc_data[6] =3D bin2bcd(tm->tm_wday);\n" + "> =20\n" "> \t/* Stop RTC while updating the RTC registers */\n" - "> -\tret = regmap_update_bits(rk808->regmap, RK808_RTC_CTRL_REG,\n" - "> +\tret = regmap_update_bits(rk8xx_rtc->regmap, RK8XX_RTC_CTRL_REG,\n" + "> -\tret =3D regmap_update_bits(rk808->regmap, RK808_RTC_CTRL_REG,\n" + "> +\tret =3D regmap_update_bits(rk8xx_rtc->regmap, RK8XX_RTC_CTRL_REG,\n" "> \t\t\t\t BIT_RTC_CTRL_REG_STOP_RTC_M,\n" "> \t\t\t\t BIT_RTC_CTRL_REG_STOP_RTC_M);\n" "> \tif (ret) {\n" - "> @@ -174,14 +201,14 @@ static int rk808_rtc_set_time(struct device *dev, struct rtc_time *tm)\n" + "> @@ -174,14 +201,14 @@ static int rk808_rtc_set_time(struct device *dev, s=\n" + "truct rtc_time *tm)\n" "> \t\treturn ret;\n" "> \t}\n" - "> \n" - "> -\tret = regmap_bulk_write(rk808->regmap, RK808_SECONDS_REG,\n" - "> +\tret = regmap_bulk_write(rk8xx_rtc->regmap, RK8XX_SECONDS_REG,\n" + "> =20\n" + "> -\tret =3D regmap_bulk_write(rk808->regmap, RK808_SECONDS_REG,\n" + "> +\tret =3D regmap_bulk_write(rk8xx_rtc->regmap, RK8XX_SECONDS_REG,\n" "> \t\t\t\trtc_data, NUM_TIME_REGS);\n" "> \tif (ret) {\n" "> \t\tdev_err(dev, \"Failed to bull write rtc_data: %d\\n\", ret);\n" "> \t\treturn ret;\n" "> \t}\n" "> \t/* Start RTC again */\n" - "> -\tret = regmap_update_bits(rk808->regmap, RK808_RTC_CTRL_REG,\n" - "> +\tret = regmap_update_bits(rk8xx_rtc->regmap, RK8XX_RTC_CTRL_REG,\n" + "> -\tret =3D regmap_update_bits(rk808->regmap, RK808_RTC_CTRL_REG,\n" + "> +\tret =3D regmap_update_bits(rk8xx_rtc->regmap, RK8XX_RTC_CTRL_REG,\n" "> \t\t\t\t BIT_RTC_CTRL_REG_STOP_RTC_M, 0);\n" "> \tif (ret) {\n" "> \t\tdev_err(dev, \"Failed to update RTC control: %d\\n\", ret);\n" - "> @@ -191,15 +218,15 @@ static int rk808_rtc_set_time(struct device *dev, struct rtc_time *tm)\n" + "> @@ -191,15 +218,15 @@ static int rk808_rtc_set_time(struct device *dev, s=\n" + "truct rtc_time *tm)\n" "> }\n" - "> \n" + "> =20\n" "> /* Read alarm time and date in RTC */\n" - "> -static int rk808_rtc_readalarm(struct device *dev, struct rtc_wkalrm *alrm)\n" - "> +static int rk8xx_rtc_readalarm(struct device *dev, struct rtc_wkalrm *alrm)\n" + "> -static int rk808_rtc_readalarm(struct device *dev, struct rtc_wkalrm *al=\n" + "rm)\n" + "> +static int rk8xx_rtc_readalarm(struct device *dev, struct rtc_wkalrm *al=\n" + "rm)\n" "> {\n" - "> -\tstruct rk808_rtc *rk808_rtc = dev_get_drvdata(dev);\n" - "> -\tstruct rk808 *rk808 = rk808_rtc->rk808;\n" - "> +\tstruct rk8xx_rtc *rk8xx_rtc = dev_get_drvdata(dev);\n" + "> -\tstruct rk808_rtc *rk808_rtc =3D dev_get_drvdata(dev);\n" + "> -\tstruct rk808 *rk808 =3D rk808_rtc->rk808;\n" + "> +\tstruct rk8xx_rtc *rk8xx_rtc =3D dev_get_drvdata(dev);\n" "> \tu8 alrm_data[NUM_ALARM_REGS];\n" "> \tuint32_t int_reg;\n" "> \tint ret;\n" - "> \n" - "> -\tret = regmap_bulk_read(rk808->regmap, RK808_ALARM_SECONDS_REG,\n" - "> +\tret = regmap_bulk_read(rk8xx_rtc->regmap,\n" + "> =20\n" + "> -\tret =3D regmap_bulk_read(rk808->regmap, RK808_ALARM_SECONDS_REG,\n" + "> +\tret =3D regmap_bulk_read(rk8xx_rtc->regmap,\n" "> +\t\t\t RK8XX_ALARM_SECONDS_REG,\n" "> \t\t\t alrm_data, NUM_ALARM_REGS);\n" - "> \n" - "> \talrm->time.tm_sec = bcd2bin(alrm_data[0] & SECONDS_REG_MSK);\n" - "> @@ -210,7 +237,8 @@ static int rk808_rtc_readalarm(struct device *dev, struct rtc_wkalrm *alrm)\n" - "> \talrm->time.tm_year = (bcd2bin(alrm_data[5] & YEARS_REG_MSK)) + 100;\n" + "> =20\n" + "> \talrm->time.tm_sec =3D bcd2bin(alrm_data[0] & SECONDS_REG_MSK);\n" + "> @@ -210,7 +237,8 @@ static int rk808_rtc_readalarm(struct device *dev, st=\n" + "ruct rtc_wkalrm *alrm)\n" + "> \talrm->time.tm_year =3D (bcd2bin(alrm_data[5] & YEARS_REG_MSK)) + 100;\n" "> \trockchip_to_gregorian(&alrm->time);\n" - "> \n" - "> -\tret = regmap_read(rk808->regmap, RK808_RTC_INT_REG, &int_reg);\n" - "> +\tret = regmap_read(rk8xx_rtc->regmap,\n" + "> =20\n" + "> -\tret =3D regmap_read(rk808->regmap, RK808_RTC_INT_REG, &int_reg);\n" + "> +\tret =3D regmap_read(rk8xx_rtc->regmap,\n" "> +\t\t\t RK8XX_RTC_INT_REG, &int_reg);\n" "> \tif (ret) {\n" "> \t\tdev_err(dev, \"Failed to read RTC INT REG: %d\\n\", ret);\n" "> \t\treturn ret;\n" - "> @@ -226,37 +254,34 @@ static int rk808_rtc_readalarm(struct device *dev, struct rtc_wkalrm *alrm)\n" + "> @@ -226,37 +254,34 @@ static int rk808_rtc_readalarm(struct device *dev, =\n" + "struct rtc_wkalrm *alrm)\n" "> \treturn 0;\n" "> }\n" - "> \n" + "> =20\n" "> -static int rk808_rtc_stop_alarm(struct rk808_rtc *rk808_rtc)\n" "> +static int rk8xx_rtc_stop_alarm(struct rk8xx_rtc *rk8xx_rtc)\n" "> {\n" - "> -\tstruct rk808 *rk808 = rk808_rtc->rk808;\n" + "> -\tstruct rk808 *rk808 =3D rk808_rtc->rk808;\n" "> \tint ret;\n" - "> \n" - "> -\tret = regmap_update_bits(rk808->regmap, RK808_RTC_INT_REG,\n" - "> +\tret = regmap_update_bits(rk8xx_rtc->regmap, RK8XX_RTC_INT_REG,\n" + "> =20\n" + "> -\tret =3D regmap_update_bits(rk808->regmap, RK808_RTC_INT_REG,\n" + "> +\tret =3D regmap_update_bits(rk8xx_rtc->regmap, RK8XX_RTC_INT_REG,\n" "> \t\t\t\t BIT_RTC_INTERRUPTS_REG_IT_ALARM_M, 0);\n" - "> \n" + "> =20\n" "> \treturn ret;\n" "> }\n" - "> \n" + "> =20\n" "> -static int rk808_rtc_start_alarm(struct rk808_rtc *rk808_rtc)\n" "> +static int rk8xx_rtc_start_alarm(struct rk8xx_rtc *rk8xx_rtc)\n" "> {\n" - "> -\tstruct rk808 *rk808 = rk808_rtc->rk808;\n" + "> -\tstruct rk808 *rk808 =3D rk808_rtc->rk808;\n" "> \tint ret;\n" - "> \n" - "> -\tret = regmap_update_bits(rk808->regmap, RK808_RTC_INT_REG,\n" - "> +\tret = regmap_update_bits(rk8xx_rtc->regmap, RK8XX_RTC_INT_REG,\n" + "> =20\n" + "> -\tret =3D regmap_update_bits(rk808->regmap, RK808_RTC_INT_REG,\n" + "> +\tret =3D regmap_update_bits(rk8xx_rtc->regmap, RK8XX_RTC_INT_REG,\n" "> \t\t\t\t BIT_RTC_INTERRUPTS_REG_IT_ALARM_M,\n" "> \t\t\t\t BIT_RTC_INTERRUPTS_REG_IT_ALARM_M);\n" - "> \n" + "> =20\n" "> \treturn ret;\n" "> }\n" - "> \n" - "> -static int rk808_rtc_setalarm(struct device *dev, struct rtc_wkalrm *alrm)\n" - "> +static int rk8xx_rtc_setalarm(struct device *dev, struct rtc_wkalrm *alrm)\n" + "> =20\n" + "> -static int rk808_rtc_setalarm(struct device *dev, struct rtc_wkalrm *alr=\n" + "m)\n" + "> +static int rk8xx_rtc_setalarm(struct device *dev, struct rtc_wkalrm *alr=\n" + "m)\n" "> {\n" - "> -\tstruct rk808_rtc *rk808_rtc = dev_get_drvdata(dev);\n" - "> -\tstruct rk808 *rk808 = rk808_rtc->rk808;\n" - "> +\tstruct rk8xx_rtc *rk8xx_rtc = dev_get_drvdata(dev);\n" + "> -\tstruct rk808_rtc *rk808_rtc =3D dev_get_drvdata(dev);\n" + "> -\tstruct rk808 *rk808 =3D rk808_rtc->rk808;\n" + "> +\tstruct rk8xx_rtc *rk8xx_rtc =3D dev_get_drvdata(dev);\n" "> \tu8 alrm_data[NUM_ALARM_REGS];\n" "> \tint ret;\n" - "> \n" - "> -\tret = rk808_rtc_stop_alarm(rk808_rtc);\n" - "> +\tret = rk8xx_rtc_stop_alarm(rk8xx_rtc);\n" + "> =20\n" + "> -\tret =3D rk808_rtc_stop_alarm(rk808_rtc);\n" + "> +\tret =3D rk8xx_rtc_stop_alarm(rk8xx_rtc);\n" "> \tif (ret) {\n" "> \t\tdev_err(dev, \"Failed to stop alarm: %d\\n\", ret);\n" "> \t\treturn ret;\n" - "> @@ -274,14 +299,15 @@ static int rk808_rtc_setalarm(struct device *dev, struct rtc_wkalrm *alrm)\n" - "> \talrm_data[4] = bin2bcd(alrm->time.tm_mon + 1);\n" - "> \talrm_data[5] = bin2bcd(alrm->time.tm_year - 100);\n" - "> \n" - "> -\tret = regmap_bulk_write(rk808->regmap, RK808_ALARM_SECONDS_REG,\n" - "> +\tret = regmap_bulk_write(rk8xx_rtc->regmap,\n" + "> @@ -274,14 +299,15 @@ static int rk808_rtc_setalarm(struct device *dev, s=\n" + "truct rtc_wkalrm *alrm)\n" + "> \talrm_data[4] =3D bin2bcd(alrm->time.tm_mon + 1);\n" + "> \talrm_data[5] =3D bin2bcd(alrm->time.tm_year - 100);\n" + "> =20\n" + "> -\tret =3D regmap_bulk_write(rk808->regmap, RK808_ALARM_SECONDS_REG,\n" + "> +\tret =3D regmap_bulk_write(rk8xx_rtc->regmap,\n" "> +\t\t\t\tRK8XX_ALARM_SECONDS_REG,\n" "> \t\t\t\talrm_data, NUM_ALARM_REGS);\n" "> \tif (ret) {\n" @@ -344,89 +368,92 @@ "> \t\treturn ret;\n" "> \t}\n" "> \tif (alrm->enabled) {\n" - "> -\t\tret = rk808_rtc_start_alarm(rk808_rtc);\n" - "> +\t\tret = rk8xx_rtc_start_alarm(rk8xx_rtc);\n" + "> -\t\tret =3D rk808_rtc_start_alarm(rk808_rtc);\n" + "> +\t\tret =3D rk8xx_rtc_start_alarm(rk8xx_rtc);\n" "> \t\tif (ret) {\n" "> \t\t\tdev_err(dev, \"Failed to start alarm: %d\\n\", ret);\n" "> \t\t\treturn ret;\n" - "> @@ -290,15 +316,15 @@ static int rk808_rtc_setalarm(struct device *dev, struct rtc_wkalrm *alrm)\n" + "> @@ -290,15 +316,15 @@ static int rk808_rtc_setalarm(struct device *dev, s=\n" + "truct rtc_wkalrm *alrm)\n" "> \treturn 0;\n" "> }\n" - "> \n" + "> =20\n" "> -static int rk808_rtc_alarm_irq_enable(struct device *dev,\n" "> +static int rk8xx_rtc_alarm_irq_enable(struct device *dev,\n" "> \t\t\t\t unsigned int enabled)\n" "> {\n" - "> -\tstruct rk808_rtc *rk808_rtc = dev_get_drvdata(dev);\n" - "> +\tstruct rk8xx_rtc *rk8xx_rtc = dev_get_drvdata(dev);\n" - "> \n" + "> -\tstruct rk808_rtc *rk808_rtc =3D dev_get_drvdata(dev);\n" + "> +\tstruct rk8xx_rtc *rk8xx_rtc =3D dev_get_drvdata(dev);\n" + "> =20\n" "> \tif (enabled)\n" "> -\t\treturn rk808_rtc_start_alarm(rk808_rtc);\n" "> +\t\treturn rk8xx_rtc_start_alarm(rk8xx_rtc);\n" - "> \n" + "> =20\n" "> -\treturn rk808_rtc_stop_alarm(rk808_rtc);\n" "> +\treturn rk8xx_rtc_stop_alarm(rk8xx_rtc);\n" "> }\n" - "> \n" + "> =20\n" "> /*\n" - "> @@ -311,14 +337,13 @@ static int rk808_rtc_alarm_irq_enable(struct device *dev,\n" + "> @@ -311,14 +337,13 @@ static int rk808_rtc_alarm_irq_enable(struct device=\n" + " *dev,\n" "> * bit 2: every hour\n" "> * bit 3: every day\n" "> */\n" "> -static irqreturn_t rk808_alarm_irq(int irq, void *data)\n" "> +static irqreturn_t rk8xx_alarm_irq(int irq, void *data)\n" "> {\n" - "> -\tstruct rk808_rtc *rk808_rtc = data;\n" - "> -\tstruct rk808 *rk808 = rk808_rtc->rk808;\n" - "> -\tstruct i2c_client *client = rk808->i2c;\n" - "> +\tstruct rk8xx_rtc *rk8xx_rtc = data;\n" - "> +\tstruct i2c_client *client = rk8xx_rtc->i2c;\n" + "> -\tstruct rk808_rtc *rk808_rtc =3D data;\n" + "> -\tstruct rk808 *rk808 =3D rk808_rtc->rk808;\n" + "> -\tstruct i2c_client *client =3D rk808->i2c;\n" + "> +\tstruct rk8xx_rtc *rk8xx_rtc =3D data;\n" + "> +\tstruct i2c_client *client =3D rk8xx_rtc->i2c;\n" "> \tint ret;\n" - "> \n" - "> -\tret = regmap_write(rk808->regmap, RK808_RTC_STATUS_REG,\n" - "> +\tret = regmap_write(rk8xx_rtc->regmap, RK8XX_RTC_STATUS_REG,\n" + "> =20\n" + "> -\tret =3D regmap_write(rk808->regmap, RK808_RTC_STATUS_REG,\n" + "> +\tret =3D regmap_write(rk8xx_rtc->regmap, RK8XX_RTC_STATUS_REG,\n" "> \t\t\t RTC_STATUS_MASK);\n" "> \tif (ret) {\n" "> \t\tdev_err(&client->dev,\n" - "> @@ -326,29 +351,29 @@ static irqreturn_t rk808_alarm_irq(int irq, void *data)\n" + "> @@ -326,29 +351,29 @@ static irqreturn_t rk808_alarm_irq(int irq, void *d=\n" + "ata)\n" "> \t\treturn ret;\n" "> \t}\n" - "> \n" + "> =20\n" "> -\trtc_update_irq(rk808_rtc->rtc, 1, RTC_IRQF | RTC_AF);\n" "> +\trtc_update_irq(rk8xx_rtc->rtc, 1, RTC_IRQF | RTC_AF);\n" "> \tdev_dbg(&client->dev,\n" - "> -\t\t \"%s:irq=%d\\n\", __func__, irq);\n" - "> +\t\t\"%s:irq=%d\\n\", __func__, irq);\n" + "> -\t\t \"%s:irq=3D%d\\n\", __func__, irq);\n" + "> +\t\t\"%s:irq=3D%d\\n\", __func__, irq);\n" "> \treturn IRQ_HANDLED;\n" "> }\n" - "> \n" - "> -static const struct rtc_class_ops rk808_rtc_ops = {\n" - "> -\t.read_time = rk808_rtc_readtime,\n" - "> -\t.set_time = rk808_rtc_set_time,\n" - "> -\t.read_alarm = rk808_rtc_readalarm,\n" - "> -\t.set_alarm = rk808_rtc_setalarm,\n" - "> -\t.alarm_irq_enable = rk808_rtc_alarm_irq_enable,\n" - "> +static const struct rtc_class_ops rk8xx_rtc_ops = {\n" - "> +\t.read_time = rk8xx_rtc_readtime,\n" - "> +\t.set_time = rk8xx_rtc_set_time,\n" - "> +\t.read_alarm = rk8xx_rtc_readalarm,\n" - "> +\t.set_alarm = rk8xx_rtc_setalarm,\n" - "> +\t.alarm_irq_enable = rk8xx_rtc_alarm_irq_enable,\n" + "> =20\n" + "> -static const struct rtc_class_ops rk808_rtc_ops =3D {\n" + "> -\t.read_time =3D rk808_rtc_readtime,\n" + "> -\t.set_time =3D rk808_rtc_set_time,\n" + "> -\t.read_alarm =3D rk808_rtc_readalarm,\n" + "> -\t.set_alarm =3D rk808_rtc_setalarm,\n" + "> -\t.alarm_irq_enable =3D rk808_rtc_alarm_irq_enable,\n" + "> +static const struct rtc_class_ops rk8xx_rtc_ops =3D {\n" + "> +\t.read_time =3D rk8xx_rtc_readtime,\n" + "> +\t.set_time =3D rk8xx_rtc_set_time,\n" + "> +\t.read_alarm =3D rk8xx_rtc_readalarm,\n" + "> +\t.set_alarm =3D rk8xx_rtc_setalarm,\n" + "> +\t.alarm_irq_enable =3D rk8xx_rtc_alarm_irq_enable,\n" "> };\n" - "> \n" + "> =20\n" "> #ifdef CONFIG_PM_SLEEP\n" "> /* Turn off the alarm if it should not be a wake source. */\n" "> -static int rk808_rtc_suspend(struct device *dev)\n" "> +static int rk8xx_rtc_suspend(struct device *dev)\n" "> {\n" - "> \tstruct platform_device *pdev = to_platform_device(dev);\n" - "> -\tstruct rk808_rtc *rk808_rtc = dev_get_drvdata(&pdev->dev);\n" - "> +\tstruct rk8xx_rtc *rk8xx_rtc = dev_get_drvdata(&pdev->dev);\n" - "> \n" + "> \tstruct platform_device *pdev =3D to_platform_device(dev);\n" + "> -\tstruct rk808_rtc *rk808_rtc =3D dev_get_drvdata(&pdev->dev);\n" + "> +\tstruct rk8xx_rtc *rk8xx_rtc =3D dev_get_drvdata(&pdev->dev);\n" + "> =20\n" "> \tif (device_may_wakeup(dev))\n" "> -\t\tenable_irq_wake(rk808_rtc->irq);\n" "> +\t\tenable_irq_wake(rk8xx_rtc->irq);\n" - "> \n" + "> =20\n" "> \treturn 0;\n" "> }\n" "> @@ -356,37 +381,44 @@ static int rk808_rtc_suspend(struct device *dev)\n" @@ -436,42 +463,42 @@ "> -static int rk808_rtc_resume(struct device *dev)\n" "> +static int rk8xx_rtc_resume(struct device *dev)\n" "> {\n" - "> \tstruct platform_device *pdev = to_platform_device(dev);\n" - "> -\tstruct rk808_rtc *rk808_rtc = dev_get_drvdata(&pdev->dev);\n" - "> +\tstruct rk8xx_rtc *rk8xx_rtc = dev_get_drvdata(&pdev->dev);\n" - "> \n" + "> \tstruct platform_device *pdev =3D to_platform_device(dev);\n" + "> -\tstruct rk808_rtc *rk808_rtc =3D dev_get_drvdata(&pdev->dev);\n" + "> +\tstruct rk8xx_rtc *rk8xx_rtc =3D dev_get_drvdata(&pdev->dev);\n" + "> =20\n" "> \tif (device_may_wakeup(dev))\n" "> -\t\tdisable_irq_wake(rk808_rtc->irq);\n" "> +\t\tdisable_irq_wake(rk8xx_rtc->irq);\n" - "> \n" + "> =20\n" "> \treturn 0;\n" "> }\n" "> #endif\n" - "> \n" + "> =20\n" "> -static SIMPLE_DEV_PM_OPS(rk808_rtc_pm_ops,\n" "> -\trk808_rtc_suspend, rk808_rtc_resume);\n" "> +static SIMPLE_DEV_PM_OPS(rk8xx_rtc_pm_ops,\n" "> +\trk8xx_rtc_suspend, rk8xx_rtc_resume);\n" - "> \n" + "> =20\n" "> -static int rk808_rtc_probe(struct platform_device *pdev)\n" "> +static int rk8xx_rtc_probe(struct platform_device *pdev)\n" "> {\n" - "> -\tstruct rk808 *rk808 = dev_get_drvdata(pdev->dev.parent);\n" + "> -\tstruct rk808 *rk808 =3D dev_get_drvdata(pdev->dev.parent);\n" "> -\tstruct rk808_rtc *rk808_rtc;\n" - "> +\tstruct i2c_client *client = to_i2c_client(pdev->dev.parent);\n" + "> +\tstruct i2c_client *client =3D to_i2c_client(pdev->dev.parent);\n" "> +\tstruct rk8xx_rtc *rk8xx_rtc;\n" "> \tstruct rtc_time tm;\n" "> \tint ret;\n" - "> \n" - "> -\trk808_rtc = devm_kzalloc(&pdev->dev, sizeof(*rk808_rtc), GFP_KERNEL);\n" - "> -\tif (rk808_rtc == NULL)\n" - "> +\trk8xx_rtc = devm_kzalloc(&pdev->dev, sizeof(*rk8xx_rtc), GFP_KERNEL);\n" - "> +\tif (rk8xx_rtc == NULL)\n" + "> =20\n" + "> -\trk808_rtc =3D devm_kzalloc(&pdev->dev, sizeof(*rk808_rtc), GFP_KERNEL);\n" + "> -\tif (rk808_rtc =3D=3D NULL)\n" + "> +\trk8xx_rtc =3D devm_kzalloc(&pdev->dev, sizeof(*rk8xx_rtc), GFP_KERNEL);\n" + "> +\tif (rk8xx_rtc =3D=3D NULL)\n" "> \t\treturn -ENOMEM;\n" - "> \n" + "> =20\n" "> -\tplatform_set_drvdata(pdev, rk808_rtc);\n" - "> -\trk808_rtc->rk808 = rk808;\n" - "> +\trk8xx_rtc->regmap = devm_regmap_init_i2c(client,\n" + "> -\trk808_rtc->rk808 =3D rk808;\n" + "> +\trk8xx_rtc->regmap =3D devm_regmap_init_i2c(client,\n" "> +\t\t\t\t\t &rk8xx_rtc_regmap_config);\n" "> +\tif (IS_ERR(rk8xx_rtc->regmap)) {\n" "> +\t\tdev_err(&pdev->dev, \"regmap initialization failed\\n\");\n" @@ -479,66 +506,69 @@ "> +\t}\n" "> +\n" "> +\tplatform_set_drvdata(pdev, rk8xx_rtc);\n" - "> +\trk8xx_rtc->i2c = client;\n" - "> \n" + "> +\trk8xx_rtc->i2c =3D client;\n" + "> =20\n" "> \t/* start rtc running by default, and use shadowed timer. */\n" - "> -\tret = regmap_update_bits(rk808->regmap, RK808_RTC_CTRL_REG,\n" - "> +\tret = regmap_update_bits(rk8xx_rtc->regmap, RK8XX_RTC_CTRL_REG,\n" + "> -\tret =3D regmap_update_bits(rk808->regmap, RK808_RTC_CTRL_REG,\n" + "> +\tret =3D regmap_update_bits(rk8xx_rtc->regmap, RK8XX_RTC_CTRL_REG,\n" "> \t\t\t\t BIT_RTC_CTRL_REG_STOP_RTC_M |\n" "> \t\t\t\t BIT_RTC_CTRL_REG_RTC_READSEL_M,\n" "> \t\t\t\t BIT_RTC_CTRL_REG_RTC_READSEL_M);\n" - "> @@ -396,7 +428,7 @@ static int rk808_rtc_probe(struct platform_device *pdev)\n" + "> @@ -396,7 +428,7 @@ static int rk808_rtc_probe(struct platform_device *pd=\n" + "ev)\n" "> \t\treturn ret;\n" "> \t}\n" - "> \n" - "> -\tret = regmap_write(rk808->regmap, RK808_RTC_STATUS_REG,\n" - "> +\tret = regmap_write(rk8xx_rtc->regmap, RK8XX_RTC_STATUS_REG,\n" + "> =20\n" + "> -\tret =3D regmap_write(rk808->regmap, RK808_RTC_STATUS_REG,\n" + "> +\tret =3D regmap_write(rk8xx_rtc->regmap, RK8XX_RTC_STATUS_REG,\n" "> \t\t\t RTC_STATUS_MASK);\n" "> \tif (ret) {\n" "> \t\tdev_err(&pdev->dev,\n" - "> @@ -405,7 +437,7 @@ static int rk808_rtc_probe(struct platform_device *pdev)\n" + "> @@ -405,7 +437,7 @@ static int rk808_rtc_probe(struct platform_device *pd=\n" + "ev)\n" "> \t}\n" - "> \n" + "> =20\n" "> \t/* set init time */\n" - "> -\tret = rk808_rtc_readtime(&pdev->dev, &tm);\n" - "> +\tret = rk8xx_rtc_readtime(&pdev->dev, &tm);\n" + "> -\tret =3D rk808_rtc_readtime(&pdev->dev, &tm);\n" + "> +\tret =3D rk8xx_rtc_readtime(&pdev->dev, &tm);\n" "> \tif (ret) {\n" "> \t\tdev_err(&pdev->dev, \"Failed to read RTC time\\n\");\n" "> \t\treturn ret;\n" - "> @@ -416,45 +448,45 @@ static int rk808_rtc_probe(struct platform_device *pdev)\n" - "> \n" + "> @@ -416,45 +448,45 @@ static int rk808_rtc_probe(struct platform_device *=\n" + "pdev)\n" + "> =20\n" "> \tdevice_init_wakeup(&pdev->dev, 1);\n" - "> \n" - "> -\trk808_rtc->rtc = devm_rtc_device_register(&pdev->dev, \"rk808-rtc\",\n" + "> =20\n" + "> -\trk808_rtc->rtc =3D devm_rtc_device_register(&pdev->dev, \"rk808-rtc\",\n" "> -\t\t\t\t\t\t &rk808_rtc_ops, THIS_MODULE);\n" "> -\tif (IS_ERR(rk808_rtc->rtc)) {\n" - "> -\t\tret = PTR_ERR(rk808_rtc->rtc);\n" - "> +\trk8xx_rtc->rtc = devm_rtc_device_register(&pdev->dev, \"rk8xx-rtc\",\n" + "> -\t\tret =3D PTR_ERR(rk808_rtc->rtc);\n" + "> +\trk8xx_rtc->rtc =3D devm_rtc_device_register(&pdev->dev, \"rk8xx-rtc\",\n" "> +\t\t\t\t\t\t &rk8xx_rtc_ops, THIS_MODULE);\n" "> +\tif (IS_ERR(rk8xx_rtc->rtc)) {\n" - "> +\t\tret = PTR_ERR(rk8xx_rtc->rtc);\n" + "> +\t\tret =3D PTR_ERR(rk8xx_rtc->rtc);\n" "> \t\treturn ret;\n" "> \t}\n" - "> \n" - "> -\trk808_rtc->irq = platform_get_irq(pdev, 0);\n" + "> =20\n" + "> -\trk808_rtc->irq =3D platform_get_irq(pdev, 0);\n" "> -\tif (rk808_rtc->irq < 0) {\n" - "> -\t\tif (rk808_rtc->irq != -EPROBE_DEFER)\n" - "> +\trk8xx_rtc->irq = platform_get_irq(pdev, 0);\n" + "> -\t\tif (rk808_rtc->irq !=3D -EPROBE_DEFER)\n" + "> +\trk8xx_rtc->irq =3D platform_get_irq(pdev, 0);\n" "> +\tif (rk8xx_rtc->irq < 0) {\n" - "> +\t\tif (rk8xx_rtc->irq != -EPROBE_DEFER)\n" - "> \t\t\tdev_err(&pdev->dev, \"Wake up is not possible as irq = %d\\n\",\n" + "> +\t\tif (rk8xx_rtc->irq !=3D -EPROBE_DEFER)\n" + "> \t\t\tdev_err(&pdev->dev, \"Wake up is not possible as irq =3D %d\\n\",\n" "> -\t\t\t\trk808_rtc->irq);\n" "> -\t\treturn rk808_rtc->irq;\n" "> +\t\t\t\trk8xx_rtc->irq);\n" "> +\t\treturn rk8xx_rtc->irq;\n" "> \t}\n" - "> \n" + "> =20\n" "> -\t/* request alarm irq of rk808 */\n" - "> -\tret = devm_request_threaded_irq(&pdev->dev, rk808_rtc->irq, NULL,\n" + "> -\tret =3D devm_request_threaded_irq(&pdev->dev, rk808_rtc->irq, NULL,\n" "> -\t\t\t\t\trk808_alarm_irq, 0,\n" "> -\t\t\t\t\t\"RTC alarm\", rk808_rtc);\n" "> +\t/* request alarm irq of rk8xx */\n" - "> +\tret = devm_request_threaded_irq(&pdev->dev, rk8xx_rtc->irq, NULL,\n" + "> +\tret =3D devm_request_threaded_irq(&pdev->dev, rk8xx_rtc->irq, NULL,\n" "> +\t\t\t\t\trk8xx_alarm_irq, 0,\n" "> +\t\t\t\t\t\"RTC alarm\", rk8xx_rtc);\n" "> \tif (ret) {\n" @@ -546,25 +576,25 @@ "> -\t\t\trk808_rtc->irq, ret);\n" "> +\t\t\trk8xx_rtc->irq, ret);\n" "> \t}\n" - "> \n" + "> =20\n" "> \treturn ret;\n" "> }\n" - "> \n" - "> -static struct platform_driver rk808_rtc_driver = {\n" - "> -\t.probe = rk808_rtc_probe,\n" - "> +static struct platform_driver rk8xx_rtc_driver = {\n" - "> +\t.probe = rk8xx_rtc_probe,\n" - "> \t.driver = {\n" - "> -\t\t.name = \"rk808-rtc\",\n" - "> -\t\t.pm = &rk808_rtc_pm_ops,\n" - "> +\t\t.name = \"rk8xx-rtc\",\n" - "> +\t\t.pm = &rk8xx_rtc_pm_ops,\n" + "> =20\n" + "> -static struct platform_driver rk808_rtc_driver =3D {\n" + "> -\t.probe =3D rk808_rtc_probe,\n" + "> +static struct platform_driver rk8xx_rtc_driver =3D {\n" + "> +\t.probe =3D rk8xx_rtc_probe,\n" + "> \t.driver =3D {\n" + "> -\t\t.name =3D \"rk808-rtc\",\n" + "> -\t\t.pm =3D &rk808_rtc_pm_ops,\n" + "> +\t\t.name =3D \"rk8xx-rtc\",\n" + "> +\t\t.pm =3D &rk8xx_rtc_pm_ops,\n" "> \t},\n" "> };\n" - "> \n" + "> =20\n" "> -module_platform_driver(rk808_rtc_driver);\n" "> +module_platform_driver(rk8xx_rtc_driver);\n" - "> \n" + "> =20\n" "> -MODULE_DESCRIPTION(\"RTC driver for the rk808 series PMICs\");\n" "> +MODULE_DESCRIPTION(\"RTC driver for the rk8xx series PMICs\");\n" "> MODULE_AUTHOR(\"Chris Zhong <zyw@rock-chips.com>\");\n" @@ -573,10 +603,23 @@ "> -MODULE_ALIAS(\"platform:rk808-rtc\");\n" "> +MODULE_ALIAS(\"platform:rk8xx-rtc\");\n" "\n" - "-- \n" + "--=20\n" "Lee Jones\n" "Linaro STMicroelectronics Landing Team Lead\n" - "Linaro.org \342\224\202 Open source software for ARM SoCs\n" - Follow Linaro: Facebook | Twitter | Blog + "Linaro.org =E2=94=82 Open source software for ARM SoCs\n" + "Follow Linaro: Facebook | Twitter | Blog\n" + "\n" + "--=20\n" + "--=20\n" + "You received this message because you are subscribed to \"rtc-linux\".\n" + "Membership options at http://groups.google.com/group/rtc-linux .\n" + "Please read http://groups.google.com/group/rtc-linux/web/checklist\n" + "before submitting a driver.\n" + "---=20\n" + "You received this message because you are subscribed to the Google Groups \"=\n" + "rtc-linux\" group.\n" + "To unsubscribe from this group and stop receiving emails from it, send an e=\n" + "mail to rtc-linux+unsubscribe@googlegroups.com.\n" + For more options, visit https://groups.google.com/d/optout. -1774c867bc6e2d0bc9599aeca4b5136c279c211797e6c5aec35b6fcf7bebbda2 +71952e24e95e74303094a87678e81a9f8fb1a7420ee2e03b9710619742537278
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.