All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <577CC7D0.2040402@rock-chips.com>

diff --git a/a/1.txt b/N1/1.txt
index b207e40..4232302 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -31,7 +31,7 @@ On 2016年07月06日 16:03, Wadim Egorov wrote:
 >>>>> So we can reuse the RTC and Clkout functionality.
 >>>> Swap '.' for ','.
 >>>>
->>>>> Signed-off-by: Wadim Egorov <w.egorov@phytec.de>
+>>>>> Signed-off-by: Wadim Egorov <w.egorov-guT5V/WYfQezQB+pC5nmwQ@public.gmane.org>
 >>>>> ---
 >>>>>    drivers/mfd/Kconfig       |   4 +-
 >>>>>    drivers/mfd/rk808.c       | 231
@@ -72,12 +72,12 @@ On 2016年07月06日 16:03, Wadim Egorov wrote:
 >>>>>     *
 >>>>>     * Copyright (c) 2014, Fuzhou Rockchip Electronics Co., Ltd
 >>>>>     *
->>>>>     * Author: Chris Zhong <zyw@rock-chips.com>
->>>>>     * Author: Zhang Qing <zhangqing@rock-chips.com>
+>>>>>     * Author: Chris Zhong <zyw-TNX95d0MmH7DzftRWevZcw@public.gmane.org>
+>>>>>     * Author: Zhang Qing <zhangqing-TNX95d0MmH7DzftRWevZcw@public.gmane.org>
 >>>>>     *
 >>>>> + * Copyright (C) 2016 PHYTEC Messtechnik GmbH
 >>>>> + *
->>>>> + * Author: Wadim Egorov <w.egorov@phytec.de>
+>>>>> + * Author: Wadim Egorov <w.egorov-guT5V/WYfQezQB+pC5nmwQ@public.gmane.org>
 >>>>> + *
 >>>>>     * This program is free software; you can redistribute it and/or
 >>>>> modify it
@@ -350,3 +350,14 @@ On 2016年07月06日 16:03, Wadim Egorov wrote:
 >
 >
 >
+
+
+-- 
+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.
+--- 
+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 email to rtc-linux+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
+For more options, visit https://groups.google.com/d/optout.
diff --git a/a/content_digest b/N1/content_digest
index 5604668..8d1666e 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -3,29 +3,30 @@
  "ref\05759277D.7090101@phytec.de\0"
  "ref\0577C77DF.9060706@rock-chips.com\0"
  "ref\0577CBB62.8080806@phytec.de\0"
- "From\0Andy Yan <andy.yan@rock-chips.com>\0"
+ "ref\0577CBB62.8080806-guT5V/WYfQezQB+pC5nmwQ@public.gmane.org\0"
+ "From\0Andy Yan <andy.yan-TNX95d0MmH7DzftRWevZcw@public.gmane.org>\0"
  "Subject\0Re: [RESEND PATCH v5 1/5] mfd: RK808: Add RK818 support\0"
  "Date\0Wed, 6 Jul 2016 16:56:48 +0800\0"
- "To\0Wadim Egorov <w.egorov@phytec.de>"
- " Lee Jones <lee.jones@linaro.org>\0"
- "Cc\0mark.rutland@arm.com"
-  devicetree@vger.kernel.org
-  a.zummo@towertech.it
-  pawel.moll@arm.com
-  rtc-linux@googlegroups.com
-  ijc+devicetree@hellion.org.uk
-  mturquette@baylibre.com
-  sboyd@codeaurora.org
-  linux-kernel@vger.kernel.org
-  lgirdwood@gmail.com
-  linux-rockchip@lists.infradead.org
-  robh+dt@kernel.org
-  alexandre.belloni@free-electrons.com
-  broonie@kernel.org
-  dianders@chromium.org
-  galak@codeaurora.org
-  zyw@rock-chips.com
- " linux-clk@vger.kernel.org\0"
+ "To\0Wadim Egorov <w.egorov-guT5V/WYfQezQB+pC5nmwQ@public.gmane.org>"
+ " Lee Jones <lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>\0"
+ "Cc\0mark.rutland-5wv7dgnIgG8@public.gmane.org"
+  devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
+  a.zummo-BfzFCNDTiLLj+vYz1yj4TQ@public.gmane.org
+  pawel.moll-5wv7dgnIgG8@public.gmane.org
+  rtc-linux-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
+  ijc+devicetree-KcIKpvwj1kUDXYZnReoRVg@public.gmane.org
+  mturquette-rdvid1DuHRBWk0Htik3J/w@public.gmane.org
+  sboyd-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org
+  linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
+  lgirdwood-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org
+  linux-rockchip-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org
+  robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org
+  alexandre.belloni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org
+  broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org
+  dianders-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org
+  galak-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org
+  zyw-TNX95d0MmH7DzftRWevZcw@public.gmane.org
+ " linux-clk-u79uwXL29TY76Z2rM5mHXA@public.gmane.org\0"
  "\00:1\0"
  "b\0"
  "Hi Wadim:\n"
@@ -61,7 +62,7 @@
  ">>>>> So we can reuse the RTC and Clkout functionality.\n"
  ">>>> Swap '.' for ','.\n"
  ">>>>\n"
- ">>>>> Signed-off-by: Wadim Egorov <w.egorov@phytec.de>\n"
+ ">>>>> Signed-off-by: Wadim Egorov <w.egorov-guT5V/WYfQezQB+pC5nmwQ@public.gmane.org>\n"
  ">>>>> ---\n"
  ">>>>>    drivers/mfd/Kconfig       |   4 +-\n"
  ">>>>>    drivers/mfd/rk808.c       | 231\n"
@@ -102,12 +103,12 @@
  ">>>>>     *\n"
  ">>>>>     * Copyright (c) 2014, Fuzhou Rockchip Electronics Co., Ltd\n"
  ">>>>>     *\n"
- ">>>>>     * Author: Chris Zhong <zyw@rock-chips.com>\n"
- ">>>>>     * Author: Zhang Qing <zhangqing@rock-chips.com>\n"
+ ">>>>>     * Author: Chris Zhong <zyw-TNX95d0MmH7DzftRWevZcw@public.gmane.org>\n"
+ ">>>>>     * Author: Zhang Qing <zhangqing-TNX95d0MmH7DzftRWevZcw@public.gmane.org>\n"
  ">>>>>     *\n"
  ">>>>> + * Copyright (C) 2016 PHYTEC Messtechnik GmbH\n"
  ">>>>> + *\n"
- ">>>>> + * Author: Wadim Egorov <w.egorov@phytec.de>\n"
+ ">>>>> + * Author: Wadim Egorov <w.egorov-guT5V/WYfQezQB+pC5nmwQ@public.gmane.org>\n"
  ">>>>> + *\n"
  ">>>>>     * This program is free software; you can redistribute it and/or\n"
  ">>>>> modify it\n"
@@ -379,6 +380,17 @@
  "> version?\n"
  ">\n"
  ">\n"
- >
+ ">\n"
+ "\n"
+ "\n"
+ "-- \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"
+ "--- \n"
+ "You received this message because you are subscribed to the Google Groups \"rtc-linux\" group.\n"
+ "To unsubscribe from this group and stop receiving emails from it, send an email to rtc-linux+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org\n"
+ For more options, visit https://groups.google.com/d/optout.
 
-b9a56c564a35da2f20ef96ba685af54ad568535a32e0f9e3fbc4a6d37ccbc27c
+05b99b09d21c5275f8193e9355212a8cd96d82727ab2de426b9adc490f0b2f94

diff --git a/a/1.txt b/N2/1.txt
index b207e40..7803d92 100644
--- a/a/1.txt
+++ b/N2/1.txt
@@ -1,12 +1,12 @@
 Hi Wadim:
 
-On 2016年07月06日 16:03, Wadim Egorov wrote:
+On 2016=E5=B9=B407=E6=9C=8806=E6=97=A5 16:03, Wadim Egorov wrote:
 > Hi Andy,
 >
 > On 06.07.2016 05:15, Andy Yan wrote:
 >> Hi Wadim:
 >>
->> On 2016年06月09日 16:23, Wadim Egorov wrote:
+>> On 2016=E5=B9=B406=E6=9C=8809=E6=97=A5 16:23, Wadim Egorov wrote:
 >>> Hi,
 >>>
 >>> On 08.06.2016 16:17, Lee Jones wrote:
@@ -81,7 +81,8 @@ On 2016年07月06日 16:03, Wadim Egorov wrote:
 >>>>> + *
 >>>>>     * This program is free software; you can redistribute it and/or
 >>>>> modify it
->>>>>     * under the terms and conditions of the GNU General Public License,
+>>>>>     * under the terms and conditions of the GNU General Public Licens=
+e,
 >>>>>     * version 2, as published by the Free Software Foundation.
 >>>>> @@ -22,12 +26,7 @@
 >>>>>    #include <linux/mfd/core.h>
@@ -104,45 +105,48 @@ On 2016年07月06日 16:03, Wadim Egorov wrote:
 >>>>> *dev, unsigned int reg)
 >>>>>        return false;
 >>>>>    }
->>>>>    +static const struct regmap_config rk818_regmap_config = {
->>>>> +    .reg_bits = 8,
->>>>> +    .val_bits = 8,
->>>>> +    .max_register = RK818_USB_CTRL_REG,
->>>>> +    .cache_type = REGCACHE_RBTREE,
->>>>> +    .volatile_reg = rk808_is_volatile_reg,
+>>>>>    +static const struct regmap_config rk818_regmap_config =3D {
+>>>>> +    .reg_bits =3D 8,
+>>>>> +    .val_bits =3D 8,
+>>>>> +    .max_register =3D RK818_USB_CTRL_REG,
+>>>>> +    .cache_type =3D REGCACHE_RBTREE,
+>>>>> +    .volatile_reg =3D rk808_is_volatile_reg,
 >>>>> +};
 >>>>> +
->>>>>    static const struct regmap_config rk808_regmap_config = {
->>>>>        .reg_bits = 8,
->>>>>        .val_bits = 8,
->>>>> @@ -83,7 +90,17 @@ static const struct mfd_cell rk808s[] = {
+>>>>>    static const struct regmap_config rk808_regmap_config =3D {
+>>>>>        .reg_bits =3D 8,
+>>>>>        .val_bits =3D 8,
+>>>>> @@ -83,7 +90,17 @@ static const struct mfd_cell rk808s[] =3D {
 >>>>>        },
 >>>>>    };
->>>>>    -static const struct rk808_reg_data pre_init_reg[] = {
->>>>> +static const struct mfd_cell rk818s[] = {
->>>>> +    { .name = "rk808-clkout", },
+>>>>>    -static const struct rk808_reg_data pre_init_reg[] =3D {
+>>>>> +static const struct mfd_cell rk818s[] =3D {
+>>>>> +    { .name =3D "rk808-clkout", },
 >>>> How does this differ to a normal -clock driver?
 >>> I don't know. It is a normal clock driver.
 >>>
->>>>> +    { .name = "rk808-regulator", },
+>>>>> +    { .name =3D "rk808-regulator", },
 >>>>> +    {
->>>>> +        .name = "rk808-rtc",
->>>>> +        .num_resources = ARRAY_SIZE(rtc_resources),
->>>>> +        .resources = &rtc_resources[0],
->>>> .resources = rtc_resources,  ?
+>>>>> +        .name =3D "rk808-rtc",
+>>>>> +        .num_resources =3D ARRAY_SIZE(rtc_resources),
+>>>>> +        .resources =3D &rtc_resources[0],
+>>>> .resources =3D rtc_resources,  ?
 >>>>
 >>>>> +    },
 >>>>> +};
 >>>>> +
->>>>> +static const struct rk8xx_reg_data rk808_pre_init_reg[] = {
->>>>>        { RK808_BUCK3_CONFIG_REG, BUCK_ILMIN_MASK,  BUCK_ILMIN_150MA },
->>>>>        { RK808_BUCK4_CONFIG_REG, BUCK_ILMIN_MASK,  BUCK_ILMIN_200MA },
->>>>>        { RK808_BOOST_CONFIG_REG, BOOST_ILMIN_MASK, BOOST_ILMIN_100MA },
+>>>>> +static const struct rk8xx_reg_data rk808_pre_init_reg[] =3D {
+>>>>>        { RK808_BUCK3_CONFIG_REG, BUCK_ILMIN_MASK,  BUCK_ILMIN_150MA }=
+,
+>>>>>        { RK808_BUCK4_CONFIG_REG, BUCK_ILMIN_MASK,  BUCK_ILMIN_200MA }=
+,
+>>>>>        { RK808_BOOST_CONFIG_REG, BOOST_ILMIN_MASK, BOOST_ILMIN_100MA =
+},
 >>>>> @@ -94,6 +111,22 @@ static const struct rk808_reg_data
->>>>> pre_init_reg[] = {
+>>>>> pre_init_reg[] =3D {
 >>>>>                                VB_LO_SEL_3500MV },
 >>>>>    };
->>>>>    +static const struct rk8xx_reg_data rk818_pre_init_reg[] = {
+>>>>>    +static const struct rk8xx_reg_data rk818_pre_init_reg[] =3D {
 >>>>> +    { RK818_USB_CTRL_REG,    RK818_USB_ILIM_SEL_MASK,
 >>>>> +                        RK818_USB_ILMIN_2000MA },
 >>>>> +    /* close charger when usb lower then 3.4V */
@@ -153,8 +157,10 @@ On 2016年07月06日 16:03, Wadim Egorov wrote:
 >>>>> +    /* enable HDMI 5V */
 >>>>> +    { RK818_H5V_EN_REG,    BIT(0),        RK818_H5V_EN },
 >>>>> +    /* improve efficiency */
->>>>> +    { RK818_BUCK2_CONFIG_REG, BUCK2_RATE_MASK,    BUCK_ILMIN_250MA },
->>>>> +    { RK818_BUCK4_CONFIG_REG, BUCK_ILMIN_MASK,    BUCK_ILMIN_250MA },
+>>>>> +    { RK818_BUCK2_CONFIG_REG, BUCK2_RATE_MASK,    BUCK_ILMIN_250MA }=
+,
+>>>>> +    { RK818_BUCK4_CONFIG_REG, BUCK_ILMIN_MASK,    BUCK_ILMIN_250MA }=
+,
 >>>>> +    { RK818_BOOST_CONFIG_REG, BOOST_ILMIN_MASK,
 >>>>> BOOST_ILMIN_100MA },
 >>>>> +    { RK808_VB_MON_REG,    MASK_ALL,    VB_LO_ACT |
@@ -163,98 +169,100 @@ On 2016年07月06日 16:03, Wadim Egorov wrote:
 >>>> The alignment here looks odd.
 >>> I will fix it in the next version.
 >>>
->>>>>    static const struct regmap_irq rk808_irqs[] = {
+>>>>>    static const struct regmap_irq rk808_irqs[] =3D {
 >>>>>        /* INT_STS */
->>>>>        [RK808_IRQ_VOUT_LO] = {
->>>>> @@ -136,6 +169,76 @@ static const struct regmap_irq rk808_irqs[] = {
+>>>>>        [RK808_IRQ_VOUT_LO] =3D {
+>>>>> @@ -136,6 +169,76 @@ static const struct regmap_irq rk808_irqs[] =3D =
+{
 >>>>>        },
 >>>>>    };
->>>>>    +static const struct regmap_irq rk818_irqs[] = {
+>>>>>    +static const struct regmap_irq rk818_irqs[] =3D {
 >>>>> +    /* INT_STS */
->>>>> +    [RK818_IRQ_VOUT_LO] = {
->>>>> +        .mask = RK818_IRQ_VOUT_LO_MSK,
->>>>> +        .reg_offset = 0,
+>>>>> +    [RK818_IRQ_VOUT_LO] =3D {
+>>>>> +        .mask =3D RK818_IRQ_VOUT_LO_MSK,
+>>>>> +        .reg_offset =3D 0,
 >>>>> +    },
->>>>> +    [RK818_IRQ_VB_LO] = {
->>>>> +        .mask = RK818_IRQ_VB_LO_MSK,
->>>>> +        .reg_offset = 0,
+>>>>> +    [RK818_IRQ_VB_LO] =3D {
+>>>>> +        .mask =3D RK818_IRQ_VB_LO_MSK,
+>>>>> +        .reg_offset =3D 0,
 >>>>> +    },
->>>>> +    [RK818_IRQ_PWRON] = {
->>>>> +        .mask = RK818_IRQ_PWRON_MSK,
->>>>> +        .reg_offset = 0,
+>>>>> +    [RK818_IRQ_PWRON] =3D {
+>>>>> +        .mask =3D RK818_IRQ_PWRON_MSK,
+>>>>> +        .reg_offset =3D 0,
 >>>>> +    },
->>>>> +    [RK818_IRQ_PWRON_LP] = {
->>>>> +        .mask = RK818_IRQ_PWRON_LP_MSK,
->>>>> +        .reg_offset = 0,
+>>>>> +    [RK818_IRQ_PWRON_LP] =3D {
+>>>>> +        .mask =3D RK818_IRQ_PWRON_LP_MSK,
+>>>>> +        .reg_offset =3D 0,
 >>>>> +    },
->>>>> +    [RK818_IRQ_HOTDIE] = {
->>>>> +        .mask = RK818_IRQ_HOTDIE_MSK,
->>>>> +        .reg_offset = 0,
+>>>>> +    [RK818_IRQ_HOTDIE] =3D {
+>>>>> +        .mask =3D RK818_IRQ_HOTDIE_MSK,
+>>>>> +        .reg_offset =3D 0,
 >>>>> +    },
->>>>> +    [RK818_IRQ_RTC_ALARM] = {
->>>>> +        .mask = RK818_IRQ_RTC_ALARM_MSK,
->>>>> +        .reg_offset = 0,
+>>>>> +    [RK818_IRQ_RTC_ALARM] =3D {
+>>>>> +        .mask =3D RK818_IRQ_RTC_ALARM_MSK,
+>>>>> +        .reg_offset =3D 0,
 >>>>> +    },
->>>>> +    [RK818_IRQ_RTC_PERIOD] = {
->>>>> +        .mask = RK818_IRQ_RTC_PERIOD_MSK,
->>>>> +        .reg_offset = 0,
+>>>>> +    [RK818_IRQ_RTC_PERIOD] =3D {
+>>>>> +        .mask =3D RK818_IRQ_RTC_PERIOD_MSK,
+>>>>> +        .reg_offset =3D 0,
 >>>>> +    },
->>>>> +    [RK818_IRQ_USB_OV] = {
->>>>> +        .mask = RK818_IRQ_USB_OV_MSK,
->>>>> +        .reg_offset = 0,
+>>>>> +    [RK818_IRQ_USB_OV] =3D {
+>>>>> +        .mask =3D RK818_IRQ_USB_OV_MSK,
+>>>>> +        .reg_offset =3D 0,
 >>>>> +    },
 >>>>> +
 >>>>> +    /* INT_STS2 */
->>>>> +    [RK818_IRQ_PLUG_IN] = {
->>>>> +        .mask = RK818_IRQ_PLUG_IN_MSK,
->>>>> +        .reg_offset = 1,
+>>>>> +    [RK818_IRQ_PLUG_IN] =3D {
+>>>>> +        .mask =3D RK818_IRQ_PLUG_IN_MSK,
+>>>>> +        .reg_offset =3D 1,
 >>>>> +    },
->>>>> +    [RK818_IRQ_PLUG_OUT] = {
->>>>> +        .mask = RK818_IRQ_PLUG_OUT_MSK,
->>>>> +        .reg_offset = 1,
+>>>>> +    [RK818_IRQ_PLUG_OUT] =3D {
+>>>>> +        .mask =3D RK818_IRQ_PLUG_OUT_MSK,
+>>>>> +        .reg_offset =3D 1,
 >>>>> +    },
->>>>> +    [RK818_IRQ_CHG_OK] = {
->>>>> +        .mask = RK818_IRQ_CHG_OK_MSK,
->>>>> +        .reg_offset = 1,
+>>>>> +    [RK818_IRQ_CHG_OK] =3D {
+>>>>> +        .mask =3D RK818_IRQ_CHG_OK_MSK,
+>>>>> +        .reg_offset =3D 1,
 >>>>> +    },
->>>>> +    [RK818_IRQ_CHG_TE] = {
->>>>> +        .mask = RK818_IRQ_CHG_TE_MSK,
->>>>> +        .reg_offset = 1,
+>>>>> +    [RK818_IRQ_CHG_TE] =3D {
+>>>>> +        .mask =3D RK818_IRQ_CHG_TE_MSK,
+>>>>> +        .reg_offset =3D 1,
 >>>>> +    },
->>>>> +    [RK818_IRQ_CHG_TS1] = {
->>>>> +        .mask = RK818_IRQ_CHG_TS1_MSK,
->>>>> +        .reg_offset = 1,
+>>>>> +    [RK818_IRQ_CHG_TS1] =3D {
+>>>>> +        .mask =3D RK818_IRQ_CHG_TS1_MSK,
+>>>>> +        .reg_offset =3D 1,
 >>>>> +    },
->>>>> +    [RK818_IRQ_TS2] = {
->>>>> +        .mask = RK818_IRQ_TS2_MSK,
->>>>> +        .reg_offset = 1,
+>>>>> +    [RK818_IRQ_TS2] =3D {
+>>>>> +        .mask =3D RK818_IRQ_TS2_MSK,
+>>>>> +        .reg_offset =3D 1,
 >>>>> +    },
->>>>> +    [RK818_IRQ_CHG_CVTLIM] = {
->>>>> +        .mask = RK818_IRQ_CHG_CVTLIM_MSK,
->>>>> +        .reg_offset = 1,
+>>>>> +    [RK818_IRQ_CHG_CVTLIM] =3D {
+>>>>> +        .mask =3D RK818_IRQ_CHG_CVTLIM_MSK,
+>>>>> +        .reg_offset =3D 1,
 >>>>> +    },
->>>>> +    [RK818_IRQ_DISCHG_ILIM] = {
->>>>> +        .mask = RK818_IRQ_DISCHG_ILIM_MSK,
->>>>> +        .reg_offset = 1,
+>>>>> +    [RK818_IRQ_DISCHG_ILIM] =3D {
+>>>>> +        .mask =3D RK818_IRQ_DISCHG_ILIM_MSK,
+>>>>> +        .reg_offset =3D 1,
 >>>>> +    },
 >>>>> +};
 >>>>> +
->>>>>    static struct regmap_irq_chip rk808_irq_chip = {
->>>>>        .name = "rk808",
->>>>>        .irqs = rk808_irqs,
->>>>> @@ -148,6 +251,18 @@ static struct regmap_irq_chip rk808_irq_chip = {
->>>>>        .init_ack_masked = true,
+>>>>>    static struct regmap_irq_chip rk808_irq_chip =3D {
+>>>>>        .name =3D "rk808",
+>>>>>        .irqs =3D rk808_irqs,
+>>>>> @@ -148,6 +251,18 @@ static struct regmap_irq_chip rk808_irq_chip =3D=
+ {
+>>>>>        .init_ack_masked =3D true,
 >>>>>    };
->>>>>    +static struct regmap_irq_chip rk818_irq_chip = {
->>>>> +    .name = "rk818",
->>>>> +    .irqs = rk818_irqs,
->>>>> +    .num_irqs = ARRAY_SIZE(rk818_irqs),
->>>>> +    .num_regs = 2,
->>>>> +    .irq_reg_stride = 2,
->>>>> +    .status_base = RK818_INT_STS_REG1,
->>>>> +    .mask_base = RK818_INT_STS_MSK_REG1,
->>>>> +    .ack_base = RK818_INT_STS_REG1,
->>>>> +    .init_ack_masked = true,
+>>>>>    +static struct regmap_irq_chip rk818_irq_chip =3D {
+>>>>> +    .name =3D "rk818",
+>>>>> +    .irqs =3D rk818_irqs,
+>>>>> +    .num_irqs =3D ARRAY_SIZE(rk818_irqs),
+>>>>> +    .num_regs =3D 2,
+>>>>> +    .irq_reg_stride =3D 2,
+>>>>> +    .status_base =3D RK818_INT_STS_REG1,
+>>>>> +    .mask_base =3D RK818_INT_STS_MSK_REG1,
+>>>>> +    .ack_base =3D RK818_INT_STS_REG1,
+>>>>> +    .init_ack_masked =3D true,
 >>>>> +};
 >>>>> +
 >>>>>    static struct i2c_client *rk808_i2c_client;
@@ -263,9 +271,11 @@ On 2016年07月06日 16:03, Wadim Egorov wrote:
 >>>>> @@ -167,6 +282,48 @@ static void rk808_device_shutdown(void)
 >>>>>            dev_err(&rk808_i2c_client->dev, "power off error!\n");
 >>>>>    }
->>>>>    +static const struct of_device_id rk808_of_match[] = {
->>>>> +    { .compatible = "rockchip,rk808", .data = (void *) RK808_ID },
->>>>> +    { .compatible = "rockchip,rk818", .data = (void *) RK818_ID },
+>>>>>    +static const struct of_device_id rk808_of_match[] =3D {
+>>>>> +    { .compatible =3D "rockchip,rk808", .data =3D (void *) RK808_ID =
+},
+>>>>> +    { .compatible =3D "rockchip,rk818", .data =3D (void *) RK818_ID =
+},
 >>>>> +    { },
 >>>>> +};
 >>>>> +MODULE_DEVICE_TABLE(of, rk808_of_match);
@@ -280,29 +290,29 @@ On 2016年07月06日 16:03, Wadim Egorov wrote:
 >>>>> +{
 >>>>> +    const struct of_device_id *of_id;
 >>>>> +
->>>>> +    of_id = of_match_device(rk808_of_match, dev);
+>>>>> +    of_id =3D of_match_device(rk808_of_match, dev);
 >>>>> +    if (!of_id) {
 >>>>> +        dev_err(dev, "Unable to match OF ID\n");
 >>>>> +        return -ENODEV;
 >>>>> +    }
->>>>> +    rk808->variant = (long) of_id->data;
+>>>>> +    rk808->variant =3D (long) of_id->data;
 >>>>> +
 >>>>> +    switch (rk808->variant) {
 >>>>> +    case RK808_ID:
->>>>> +        rk808->nr_cells = ARRAY_SIZE(rk808s);
->>>>> +        rk808->cells = rk808s;
->>>>> +        rk808->regmap_cfg = &rk808_regmap_config;
->>>>> +        rk808->regmap_irq_chip = &rk808_irq_chip;
->>>>> +        rk808->pre_init_reg = rk808_pre_init_reg;
->>>>> +        rk808->nr_pre_init_regs = ARRAY_SIZE(rk808_pre_init_reg);
+>>>>> +        rk808->nr_cells =3D ARRAY_SIZE(rk808s);
+>>>>> +        rk808->cells =3D rk808s;
+>>>>> +        rk808->regmap_cfg =3D &rk808_regmap_config;
+>>>>> +        rk808->regmap_irq_chip =3D &rk808_irq_chip;
+>>>>> +        rk808->pre_init_reg =3D rk808_pre_init_reg;
+>>>>> +        rk808->nr_pre_init_regs =3D ARRAY_SIZE(rk808_pre_init_reg);
 >>>>> +        break;
 >>>>> +    case RK818_ID:
->>>>> +        rk808->nr_cells = ARRAY_SIZE(rk818s);
->>>>> +        rk808->cells = rk818s;
->>>>> +        rk808->regmap_cfg = &rk818_regmap_config;
->>>>> +        rk808->regmap_irq_chip = &rk818_irq_chip;
->>>>> +        rk808->pre_init_reg = rk818_pre_init_reg;
->>>>> +        rk808->nr_pre_init_regs = ARRAY_SIZE(rk818_pre_init_reg);
+>>>>> +        rk808->nr_cells =3D ARRAY_SIZE(rk818s);
+>>>>> +        rk808->cells =3D rk818s;
+>>>>> +        rk808->regmap_cfg =3D &rk818_regmap_config;
+>>>>> +        rk808->regmap_irq_chip =3D &rk818_irq_chip;
+>>>>> +        rk808->pre_init_reg =3D rk818_pre_init_reg;
+>>>>> +        rk808->nr_pre_init_regs =3D ARRAY_SIZE(rk818_pre_init_reg);
 >>>>> +        break;
 >>>>> +    default:
 >>>>> +        dev_err(dev, "unsupported RK8XX ID %lu\n", rk808->variant);
@@ -319,16 +329,18 @@ On 2016年07月06日 16:03, Wadim Egorov wrote:
 >>>>>        int ret;
 >>>>>        int i;
 >>>>>    -    if (!client->irq) {
->>>>> -        dev_err(&client->dev, "No interrupt support, no core IRQ\n");
+>>>>> -        dev_err(&client->dev, "No interrupt support, no core IRQ\n")=
+;
 >>>>> -        return -EINVAL;
 >>>>> -    }
 >>>>> -
->>>>>        rk808 = devm_kzalloc(&client->dev, sizeof(*rk808), GFP_KERNEL);
+>>>>>        rk808 =3D devm_kzalloc(&client->dev, sizeof(*rk808), GFP_KERNE=
+L);
 >>>>>        if (!rk808)
 >>>>>            return -ENOMEM;
->>>>>    -    rk808->regmap = devm_regmap_init_i2c(client,
+>>>>>    -    rk808->regmap =3D devm_regmap_init_i2c(client,
 >>>>> &rk808_regmap_config);
->>>>> +    ret = rk8xx_match_device(rk808, &client->dev);
+>>>>> +    ret =3D rk8xx_match_device(rk808, &client->dev);
 >>>> Is there a way to dynamically probe the device?  No device ID you can
 >>>> read directly from the silicon?
 >>> AFAIK there is no device ID register. At least it is not documented in
@@ -339,14 +351,28 @@ On 2016年07月06日 16:03, Wadim Egorov wrote:
 > thank you for sharing this information. I have no RK808 PMIC device
 > here, so I would also need the IDs for RK808.
 
-    I have checked with the RK808 IC designer, the values of register 
+    I have checked with the RK808 IC designer, the values of register=20
 0x17 and 0x18 are both 0x00.
 >
 > Lee, you have already applied this series. But I can't find the patches
 > in your kernel tree.
-> I would like to read the device ID from the register in the probe function.
+> I would like to read the device ID from the register in the probe functio=
+n.
 > Do you want me to base my changes on top of this series or send a new
 > version?
 >
 >
 >
+
+
+--=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/N2/content_digest
index 5604668..53b6e02 100644
--- a/a/content_digest
+++ b/N2/content_digest
@@ -4,7 +4,7 @@
  "ref\0577C77DF.9060706@rock-chips.com\0"
  "ref\0577CBB62.8080806@phytec.de\0"
  "From\0Andy Yan <andy.yan@rock-chips.com>\0"
- "Subject\0Re: [RESEND PATCH v5 1/5] mfd: RK808: Add RK818 support\0"
+ "Subject\0[rtc-linux] Re: [RESEND PATCH v5 1/5] mfd: RK808: Add RK818 support\0"
  "Date\0Wed, 6 Jul 2016 16:56:48 +0800\0"
  "To\0Wadim Egorov <w.egorov@phytec.de>"
  " Lee Jones <lee.jones@linaro.org>\0"
@@ -30,13 +30,13 @@
  "b\0"
  "Hi Wadim:\n"
  "\n"
- "On 2016\345\271\26407\346\234\21006\346\227\245 16:03, Wadim Egorov wrote:\n"
+ "On 2016=E5=B9=B407=E6=9C=8806=E6=97=A5 16:03, Wadim Egorov wrote:\n"
  "> Hi Andy,\n"
  ">\n"
  "> On 06.07.2016 05:15, Andy Yan wrote:\n"
  ">> Hi Wadim:\n"
  ">>\n"
- ">> On 2016\345\271\26406\346\234\21009\346\227\245 16:23, Wadim Egorov wrote:\n"
+ ">> On 2016=E5=B9=B406=E6=9C=8809=E6=97=A5 16:23, Wadim Egorov wrote:\n"
  ">>> Hi,\n"
  ">>>\n"
  ">>> On 08.06.2016 16:17, Lee Jones wrote:\n"
@@ -111,7 +111,8 @@
  ">>>>> + *\n"
  ">>>>>     * This program is free software; you can redistribute it and/or\n"
  ">>>>> modify it\n"
- ">>>>>     * under the terms and conditions of the GNU General Public License,\n"
+ ">>>>>     * under the terms and conditions of the GNU General Public Licens=\n"
+ "e,\n"
  ">>>>>     * version 2, as published by the Free Software Foundation.\n"
  ">>>>> @@ -22,12 +26,7 @@\n"
  ">>>>>    #include <linux/mfd/core.h>\n"
@@ -134,45 +135,48 @@
  ">>>>> *dev, unsigned int reg)\n"
  ">>>>>        return false;\n"
  ">>>>>    }\n"
- ">>>>>    +static const struct regmap_config rk818_regmap_config = {\n"
- ">>>>> +    .reg_bits = 8,\n"
- ">>>>> +    .val_bits = 8,\n"
- ">>>>> +    .max_register = RK818_USB_CTRL_REG,\n"
- ">>>>> +    .cache_type = REGCACHE_RBTREE,\n"
- ">>>>> +    .volatile_reg = rk808_is_volatile_reg,\n"
+ ">>>>>    +static const struct regmap_config rk818_regmap_config =3D {\n"
+ ">>>>> +    .reg_bits =3D 8,\n"
+ ">>>>> +    .val_bits =3D 8,\n"
+ ">>>>> +    .max_register =3D RK818_USB_CTRL_REG,\n"
+ ">>>>> +    .cache_type =3D REGCACHE_RBTREE,\n"
+ ">>>>> +    .volatile_reg =3D rk808_is_volatile_reg,\n"
  ">>>>> +};\n"
  ">>>>> +\n"
- ">>>>>    static const struct regmap_config rk808_regmap_config = {\n"
- ">>>>>        .reg_bits = 8,\n"
- ">>>>>        .val_bits = 8,\n"
- ">>>>> @@ -83,7 +90,17 @@ static const struct mfd_cell rk808s[] = {\n"
+ ">>>>>    static const struct regmap_config rk808_regmap_config =3D {\n"
+ ">>>>>        .reg_bits =3D 8,\n"
+ ">>>>>        .val_bits =3D 8,\n"
+ ">>>>> @@ -83,7 +90,17 @@ static const struct mfd_cell rk808s[] =3D {\n"
  ">>>>>        },\n"
  ">>>>>    };\n"
- ">>>>>    -static const struct rk808_reg_data pre_init_reg[] = {\n"
- ">>>>> +static const struct mfd_cell rk818s[] = {\n"
- ">>>>> +    { .name = \"rk808-clkout\", },\n"
+ ">>>>>    -static const struct rk808_reg_data pre_init_reg[] =3D {\n"
+ ">>>>> +static const struct mfd_cell rk818s[] =3D {\n"
+ ">>>>> +    { .name =3D \"rk808-clkout\", },\n"
  ">>>> How does this differ to a normal -clock driver?\n"
  ">>> I don't know. It is a normal clock driver.\n"
  ">>>\n"
- ">>>>> +    { .name = \"rk808-regulator\", },\n"
+ ">>>>> +    { .name =3D \"rk808-regulator\", },\n"
  ">>>>> +    {\n"
- ">>>>> +        .name = \"rk808-rtc\",\n"
- ">>>>> +        .num_resources = ARRAY_SIZE(rtc_resources),\n"
- ">>>>> +        .resources = &rtc_resources[0],\n"
- ">>>> .resources = rtc_resources,  ?\n"
+ ">>>>> +        .name =3D \"rk808-rtc\",\n"
+ ">>>>> +        .num_resources =3D ARRAY_SIZE(rtc_resources),\n"
+ ">>>>> +        .resources =3D &rtc_resources[0],\n"
+ ">>>> .resources =3D rtc_resources,  ?\n"
  ">>>>\n"
  ">>>>> +    },\n"
  ">>>>> +};\n"
  ">>>>> +\n"
- ">>>>> +static const struct rk8xx_reg_data rk808_pre_init_reg[] = {\n"
- ">>>>>        { RK808_BUCK3_CONFIG_REG, BUCK_ILMIN_MASK,  BUCK_ILMIN_150MA },\n"
- ">>>>>        { RK808_BUCK4_CONFIG_REG, BUCK_ILMIN_MASK,  BUCK_ILMIN_200MA },\n"
- ">>>>>        { RK808_BOOST_CONFIG_REG, BOOST_ILMIN_MASK, BOOST_ILMIN_100MA },\n"
+ ">>>>> +static const struct rk8xx_reg_data rk808_pre_init_reg[] =3D {\n"
+ ">>>>>        { RK808_BUCK3_CONFIG_REG, BUCK_ILMIN_MASK,  BUCK_ILMIN_150MA }=\n"
+ ",\n"
+ ">>>>>        { RK808_BUCK4_CONFIG_REG, BUCK_ILMIN_MASK,  BUCK_ILMIN_200MA }=\n"
+ ",\n"
+ ">>>>>        { RK808_BOOST_CONFIG_REG, BOOST_ILMIN_MASK, BOOST_ILMIN_100MA =\n"
+ "},\n"
  ">>>>> @@ -94,6 +111,22 @@ static const struct rk808_reg_data\n"
- ">>>>> pre_init_reg[] = {\n"
+ ">>>>> pre_init_reg[] =3D {\n"
  ">>>>>                                VB_LO_SEL_3500MV },\n"
  ">>>>>    };\n"
- ">>>>>    +static const struct rk8xx_reg_data rk818_pre_init_reg[] = {\n"
+ ">>>>>    +static const struct rk8xx_reg_data rk818_pre_init_reg[] =3D {\n"
  ">>>>> +    { RK818_USB_CTRL_REG,    RK818_USB_ILIM_SEL_MASK,\n"
  ">>>>> +                        RK818_USB_ILMIN_2000MA },\n"
  ">>>>> +    /* close charger when usb lower then 3.4V */\n"
@@ -183,8 +187,10 @@
  ">>>>> +    /* enable HDMI 5V */\n"
  ">>>>> +    { RK818_H5V_EN_REG,    BIT(0),        RK818_H5V_EN },\n"
  ">>>>> +    /* improve efficiency */\n"
- ">>>>> +    { RK818_BUCK2_CONFIG_REG, BUCK2_RATE_MASK,    BUCK_ILMIN_250MA },\n"
- ">>>>> +    { RK818_BUCK4_CONFIG_REG, BUCK_ILMIN_MASK,    BUCK_ILMIN_250MA },\n"
+ ">>>>> +    { RK818_BUCK2_CONFIG_REG, BUCK2_RATE_MASK,    BUCK_ILMIN_250MA }=\n"
+ ",\n"
+ ">>>>> +    { RK818_BUCK4_CONFIG_REG, BUCK_ILMIN_MASK,    BUCK_ILMIN_250MA }=\n"
+ ",\n"
  ">>>>> +    { RK818_BOOST_CONFIG_REG, BOOST_ILMIN_MASK,\n"
  ">>>>> BOOST_ILMIN_100MA },\n"
  ">>>>> +    { RK808_VB_MON_REG,    MASK_ALL,    VB_LO_ACT |\n"
@@ -193,98 +199,100 @@
  ">>>> The alignment here looks odd.\n"
  ">>> I will fix it in the next version.\n"
  ">>>\n"
- ">>>>>    static const struct regmap_irq rk808_irqs[] = {\n"
+ ">>>>>    static const struct regmap_irq rk808_irqs[] =3D {\n"
  ">>>>>        /* INT_STS */\n"
- ">>>>>        [RK808_IRQ_VOUT_LO] = {\n"
- ">>>>> @@ -136,6 +169,76 @@ static const struct regmap_irq rk808_irqs[] = {\n"
+ ">>>>>        [RK808_IRQ_VOUT_LO] =3D {\n"
+ ">>>>> @@ -136,6 +169,76 @@ static const struct regmap_irq rk808_irqs[] =3D =\n"
+ "{\n"
  ">>>>>        },\n"
  ">>>>>    };\n"
- ">>>>>    +static const struct regmap_irq rk818_irqs[] = {\n"
+ ">>>>>    +static const struct regmap_irq rk818_irqs[] =3D {\n"
  ">>>>> +    /* INT_STS */\n"
- ">>>>> +    [RK818_IRQ_VOUT_LO] = {\n"
- ">>>>> +        .mask = RK818_IRQ_VOUT_LO_MSK,\n"
- ">>>>> +        .reg_offset = 0,\n"
+ ">>>>> +    [RK818_IRQ_VOUT_LO] =3D {\n"
+ ">>>>> +        .mask =3D RK818_IRQ_VOUT_LO_MSK,\n"
+ ">>>>> +        .reg_offset =3D 0,\n"
  ">>>>> +    },\n"
- ">>>>> +    [RK818_IRQ_VB_LO] = {\n"
- ">>>>> +        .mask = RK818_IRQ_VB_LO_MSK,\n"
- ">>>>> +        .reg_offset = 0,\n"
+ ">>>>> +    [RK818_IRQ_VB_LO] =3D {\n"
+ ">>>>> +        .mask =3D RK818_IRQ_VB_LO_MSK,\n"
+ ">>>>> +        .reg_offset =3D 0,\n"
  ">>>>> +    },\n"
- ">>>>> +    [RK818_IRQ_PWRON] = {\n"
- ">>>>> +        .mask = RK818_IRQ_PWRON_MSK,\n"
- ">>>>> +        .reg_offset = 0,\n"
+ ">>>>> +    [RK818_IRQ_PWRON] =3D {\n"
+ ">>>>> +        .mask =3D RK818_IRQ_PWRON_MSK,\n"
+ ">>>>> +        .reg_offset =3D 0,\n"
  ">>>>> +    },\n"
- ">>>>> +    [RK818_IRQ_PWRON_LP] = {\n"
- ">>>>> +        .mask = RK818_IRQ_PWRON_LP_MSK,\n"
- ">>>>> +        .reg_offset = 0,\n"
+ ">>>>> +    [RK818_IRQ_PWRON_LP] =3D {\n"
+ ">>>>> +        .mask =3D RK818_IRQ_PWRON_LP_MSK,\n"
+ ">>>>> +        .reg_offset =3D 0,\n"
  ">>>>> +    },\n"
- ">>>>> +    [RK818_IRQ_HOTDIE] = {\n"
- ">>>>> +        .mask = RK818_IRQ_HOTDIE_MSK,\n"
- ">>>>> +        .reg_offset = 0,\n"
+ ">>>>> +    [RK818_IRQ_HOTDIE] =3D {\n"
+ ">>>>> +        .mask =3D RK818_IRQ_HOTDIE_MSK,\n"
+ ">>>>> +        .reg_offset =3D 0,\n"
  ">>>>> +    },\n"
- ">>>>> +    [RK818_IRQ_RTC_ALARM] = {\n"
- ">>>>> +        .mask = RK818_IRQ_RTC_ALARM_MSK,\n"
- ">>>>> +        .reg_offset = 0,\n"
+ ">>>>> +    [RK818_IRQ_RTC_ALARM] =3D {\n"
+ ">>>>> +        .mask =3D RK818_IRQ_RTC_ALARM_MSK,\n"
+ ">>>>> +        .reg_offset =3D 0,\n"
  ">>>>> +    },\n"
- ">>>>> +    [RK818_IRQ_RTC_PERIOD] = {\n"
- ">>>>> +        .mask = RK818_IRQ_RTC_PERIOD_MSK,\n"
- ">>>>> +        .reg_offset = 0,\n"
+ ">>>>> +    [RK818_IRQ_RTC_PERIOD] =3D {\n"
+ ">>>>> +        .mask =3D RK818_IRQ_RTC_PERIOD_MSK,\n"
+ ">>>>> +        .reg_offset =3D 0,\n"
  ">>>>> +    },\n"
- ">>>>> +    [RK818_IRQ_USB_OV] = {\n"
- ">>>>> +        .mask = RK818_IRQ_USB_OV_MSK,\n"
- ">>>>> +        .reg_offset = 0,\n"
+ ">>>>> +    [RK818_IRQ_USB_OV] =3D {\n"
+ ">>>>> +        .mask =3D RK818_IRQ_USB_OV_MSK,\n"
+ ">>>>> +        .reg_offset =3D 0,\n"
  ">>>>> +    },\n"
  ">>>>> +\n"
  ">>>>> +    /* INT_STS2 */\n"
- ">>>>> +    [RK818_IRQ_PLUG_IN] = {\n"
- ">>>>> +        .mask = RK818_IRQ_PLUG_IN_MSK,\n"
- ">>>>> +        .reg_offset = 1,\n"
+ ">>>>> +    [RK818_IRQ_PLUG_IN] =3D {\n"
+ ">>>>> +        .mask =3D RK818_IRQ_PLUG_IN_MSK,\n"
+ ">>>>> +        .reg_offset =3D 1,\n"
  ">>>>> +    },\n"
- ">>>>> +    [RK818_IRQ_PLUG_OUT] = {\n"
- ">>>>> +        .mask = RK818_IRQ_PLUG_OUT_MSK,\n"
- ">>>>> +        .reg_offset = 1,\n"
+ ">>>>> +    [RK818_IRQ_PLUG_OUT] =3D {\n"
+ ">>>>> +        .mask =3D RK818_IRQ_PLUG_OUT_MSK,\n"
+ ">>>>> +        .reg_offset =3D 1,\n"
  ">>>>> +    },\n"
- ">>>>> +    [RK818_IRQ_CHG_OK] = {\n"
- ">>>>> +        .mask = RK818_IRQ_CHG_OK_MSK,\n"
- ">>>>> +        .reg_offset = 1,\n"
+ ">>>>> +    [RK818_IRQ_CHG_OK] =3D {\n"
+ ">>>>> +        .mask =3D RK818_IRQ_CHG_OK_MSK,\n"
+ ">>>>> +        .reg_offset =3D 1,\n"
  ">>>>> +    },\n"
- ">>>>> +    [RK818_IRQ_CHG_TE] = {\n"
- ">>>>> +        .mask = RK818_IRQ_CHG_TE_MSK,\n"
- ">>>>> +        .reg_offset = 1,\n"
+ ">>>>> +    [RK818_IRQ_CHG_TE] =3D {\n"
+ ">>>>> +        .mask =3D RK818_IRQ_CHG_TE_MSK,\n"
+ ">>>>> +        .reg_offset =3D 1,\n"
  ">>>>> +    },\n"
- ">>>>> +    [RK818_IRQ_CHG_TS1] = {\n"
- ">>>>> +        .mask = RK818_IRQ_CHG_TS1_MSK,\n"
- ">>>>> +        .reg_offset = 1,\n"
+ ">>>>> +    [RK818_IRQ_CHG_TS1] =3D {\n"
+ ">>>>> +        .mask =3D RK818_IRQ_CHG_TS1_MSK,\n"
+ ">>>>> +        .reg_offset =3D 1,\n"
  ">>>>> +    },\n"
- ">>>>> +    [RK818_IRQ_TS2] = {\n"
- ">>>>> +        .mask = RK818_IRQ_TS2_MSK,\n"
- ">>>>> +        .reg_offset = 1,\n"
+ ">>>>> +    [RK818_IRQ_TS2] =3D {\n"
+ ">>>>> +        .mask =3D RK818_IRQ_TS2_MSK,\n"
+ ">>>>> +        .reg_offset =3D 1,\n"
  ">>>>> +    },\n"
- ">>>>> +    [RK818_IRQ_CHG_CVTLIM] = {\n"
- ">>>>> +        .mask = RK818_IRQ_CHG_CVTLIM_MSK,\n"
- ">>>>> +        .reg_offset = 1,\n"
+ ">>>>> +    [RK818_IRQ_CHG_CVTLIM] =3D {\n"
+ ">>>>> +        .mask =3D RK818_IRQ_CHG_CVTLIM_MSK,\n"
+ ">>>>> +        .reg_offset =3D 1,\n"
  ">>>>> +    },\n"
- ">>>>> +    [RK818_IRQ_DISCHG_ILIM] = {\n"
- ">>>>> +        .mask = RK818_IRQ_DISCHG_ILIM_MSK,\n"
- ">>>>> +        .reg_offset = 1,\n"
+ ">>>>> +    [RK818_IRQ_DISCHG_ILIM] =3D {\n"
+ ">>>>> +        .mask =3D RK818_IRQ_DISCHG_ILIM_MSK,\n"
+ ">>>>> +        .reg_offset =3D 1,\n"
  ">>>>> +    },\n"
  ">>>>> +};\n"
  ">>>>> +\n"
- ">>>>>    static struct regmap_irq_chip rk808_irq_chip = {\n"
- ">>>>>        .name = \"rk808\",\n"
- ">>>>>        .irqs = rk808_irqs,\n"
- ">>>>> @@ -148,6 +251,18 @@ static struct regmap_irq_chip rk808_irq_chip = {\n"
- ">>>>>        .init_ack_masked = true,\n"
+ ">>>>>    static struct regmap_irq_chip rk808_irq_chip =3D {\n"
+ ">>>>>        .name =3D \"rk808\",\n"
+ ">>>>>        .irqs =3D rk808_irqs,\n"
+ ">>>>> @@ -148,6 +251,18 @@ static struct regmap_irq_chip rk808_irq_chip =3D=\n"
+ " {\n"
+ ">>>>>        .init_ack_masked =3D true,\n"
  ">>>>>    };\n"
- ">>>>>    +static struct regmap_irq_chip rk818_irq_chip = {\n"
- ">>>>> +    .name = \"rk818\",\n"
- ">>>>> +    .irqs = rk818_irqs,\n"
- ">>>>> +    .num_irqs = ARRAY_SIZE(rk818_irqs),\n"
- ">>>>> +    .num_regs = 2,\n"
- ">>>>> +    .irq_reg_stride = 2,\n"
- ">>>>> +    .status_base = RK818_INT_STS_REG1,\n"
- ">>>>> +    .mask_base = RK818_INT_STS_MSK_REG1,\n"
- ">>>>> +    .ack_base = RK818_INT_STS_REG1,\n"
- ">>>>> +    .init_ack_masked = true,\n"
+ ">>>>>    +static struct regmap_irq_chip rk818_irq_chip =3D {\n"
+ ">>>>> +    .name =3D \"rk818\",\n"
+ ">>>>> +    .irqs =3D rk818_irqs,\n"
+ ">>>>> +    .num_irqs =3D ARRAY_SIZE(rk818_irqs),\n"
+ ">>>>> +    .num_regs =3D 2,\n"
+ ">>>>> +    .irq_reg_stride =3D 2,\n"
+ ">>>>> +    .status_base =3D RK818_INT_STS_REG1,\n"
+ ">>>>> +    .mask_base =3D RK818_INT_STS_MSK_REG1,\n"
+ ">>>>> +    .ack_base =3D RK818_INT_STS_REG1,\n"
+ ">>>>> +    .init_ack_masked =3D true,\n"
  ">>>>> +};\n"
  ">>>>> +\n"
  ">>>>>    static struct i2c_client *rk808_i2c_client;\n"
@@ -293,9 +301,11 @@
  ">>>>> @@ -167,6 +282,48 @@ static void rk808_device_shutdown(void)\n"
  ">>>>>            dev_err(&rk808_i2c_client->dev, \"power off error!\\n\");\n"
  ">>>>>    }\n"
- ">>>>>    +static const struct of_device_id rk808_of_match[] = {\n"
- ">>>>> +    { .compatible = \"rockchip,rk808\", .data = (void *) RK808_ID },\n"
- ">>>>> +    { .compatible = \"rockchip,rk818\", .data = (void *) RK818_ID },\n"
+ ">>>>>    +static const struct of_device_id rk808_of_match[] =3D {\n"
+ ">>>>> +    { .compatible =3D \"rockchip,rk808\", .data =3D (void *) RK808_ID =\n"
+ "},\n"
+ ">>>>> +    { .compatible =3D \"rockchip,rk818\", .data =3D (void *) RK818_ID =\n"
+ "},\n"
  ">>>>> +    { },\n"
  ">>>>> +};\n"
  ">>>>> +MODULE_DEVICE_TABLE(of, rk808_of_match);\n"
@@ -310,29 +320,29 @@
  ">>>>> +{\n"
  ">>>>> +    const struct of_device_id *of_id;\n"
  ">>>>> +\n"
- ">>>>> +    of_id = of_match_device(rk808_of_match, dev);\n"
+ ">>>>> +    of_id =3D of_match_device(rk808_of_match, dev);\n"
  ">>>>> +    if (!of_id) {\n"
  ">>>>> +        dev_err(dev, \"Unable to match OF ID\\n\");\n"
  ">>>>> +        return -ENODEV;\n"
  ">>>>> +    }\n"
- ">>>>> +    rk808->variant = (long) of_id->data;\n"
+ ">>>>> +    rk808->variant =3D (long) of_id->data;\n"
  ">>>>> +\n"
  ">>>>> +    switch (rk808->variant) {\n"
  ">>>>> +    case RK808_ID:\n"
- ">>>>> +        rk808->nr_cells = ARRAY_SIZE(rk808s);\n"
- ">>>>> +        rk808->cells = rk808s;\n"
- ">>>>> +        rk808->regmap_cfg = &rk808_regmap_config;\n"
- ">>>>> +        rk808->regmap_irq_chip = &rk808_irq_chip;\n"
- ">>>>> +        rk808->pre_init_reg = rk808_pre_init_reg;\n"
- ">>>>> +        rk808->nr_pre_init_regs = ARRAY_SIZE(rk808_pre_init_reg);\n"
+ ">>>>> +        rk808->nr_cells =3D ARRAY_SIZE(rk808s);\n"
+ ">>>>> +        rk808->cells =3D rk808s;\n"
+ ">>>>> +        rk808->regmap_cfg =3D &rk808_regmap_config;\n"
+ ">>>>> +        rk808->regmap_irq_chip =3D &rk808_irq_chip;\n"
+ ">>>>> +        rk808->pre_init_reg =3D rk808_pre_init_reg;\n"
+ ">>>>> +        rk808->nr_pre_init_regs =3D ARRAY_SIZE(rk808_pre_init_reg);\n"
  ">>>>> +        break;\n"
  ">>>>> +    case RK818_ID:\n"
- ">>>>> +        rk808->nr_cells = ARRAY_SIZE(rk818s);\n"
- ">>>>> +        rk808->cells = rk818s;\n"
- ">>>>> +        rk808->regmap_cfg = &rk818_regmap_config;\n"
- ">>>>> +        rk808->regmap_irq_chip = &rk818_irq_chip;\n"
- ">>>>> +        rk808->pre_init_reg = rk818_pre_init_reg;\n"
- ">>>>> +        rk808->nr_pre_init_regs = ARRAY_SIZE(rk818_pre_init_reg);\n"
+ ">>>>> +        rk808->nr_cells =3D ARRAY_SIZE(rk818s);\n"
+ ">>>>> +        rk808->cells =3D rk818s;\n"
+ ">>>>> +        rk808->regmap_cfg =3D &rk818_regmap_config;\n"
+ ">>>>> +        rk808->regmap_irq_chip =3D &rk818_irq_chip;\n"
+ ">>>>> +        rk808->pre_init_reg =3D rk818_pre_init_reg;\n"
+ ">>>>> +        rk808->nr_pre_init_regs =3D ARRAY_SIZE(rk818_pre_init_reg);\n"
  ">>>>> +        break;\n"
  ">>>>> +    default:\n"
  ">>>>> +        dev_err(dev, \"unsupported RK8XX ID %lu\\n\", rk808->variant);\n"
@@ -349,16 +359,18 @@
  ">>>>>        int ret;\n"
  ">>>>>        int i;\n"
  ">>>>>    -    if (!client->irq) {\n"
- ">>>>> -        dev_err(&client->dev, \"No interrupt support, no core IRQ\\n\");\n"
+ ">>>>> -        dev_err(&client->dev, \"No interrupt support, no core IRQ\\n\")=\n"
+ ";\n"
  ">>>>> -        return -EINVAL;\n"
  ">>>>> -    }\n"
  ">>>>> -\n"
- ">>>>>        rk808 = devm_kzalloc(&client->dev, sizeof(*rk808), GFP_KERNEL);\n"
+ ">>>>>        rk808 =3D devm_kzalloc(&client->dev, sizeof(*rk808), GFP_KERNE=\n"
+ "L);\n"
  ">>>>>        if (!rk808)\n"
  ">>>>>            return -ENOMEM;\n"
- ">>>>>    -    rk808->regmap = devm_regmap_init_i2c(client,\n"
+ ">>>>>    -    rk808->regmap =3D devm_regmap_init_i2c(client,\n"
  ">>>>> &rk808_regmap_config);\n"
- ">>>>> +    ret = rk8xx_match_device(rk808, &client->dev);\n"
+ ">>>>> +    ret =3D rk8xx_match_device(rk808, &client->dev);\n"
  ">>>> Is there a way to dynamically probe the device?  No device ID you can\n"
  ">>>> read directly from the silicon?\n"
  ">>> AFAIK there is no device ID register. At least it is not documented in\n"
@@ -369,16 +381,30 @@
  "> thank you for sharing this information. I have no RK808 PMIC device\n"
  "> here, so I would also need the IDs for RK808.\n"
  "\n"
- "    I have checked with the RK808 IC designer, the values of register \n"
+ "    I have checked with the RK808 IC designer, the values of register=20\n"
  "0x17 and 0x18 are both 0x00.\n"
  ">\n"
  "> Lee, you have already applied this series. But I can't find the patches\n"
  "> in your kernel tree.\n"
- "> I would like to read the device ID from the register in the probe function.\n"
+ "> I would like to read the device ID from the register in the probe functio=\n"
+ "n.\n"
  "> Do you want me to base my changes on top of this series or send a new\n"
  "> version?\n"
  ">\n"
  ">\n"
- >
+ ">\n"
+ "\n"
+ "\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.
 
-b9a56c564a35da2f20ef96ba685af54ad568535a32e0f9e3fbc4a6d37ccbc27c
+32f2fc475a94b3c1d33ed75fb114a6cf0e8c0b88bd9e4fca7f3b2fcd955c7da0

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.