On 29/06/2016 at 06:35:07 +0200, fixed-term.Oleksij.Rempel wrote :
> 
> 
> On 24.06.2016 09:44, Alexandre Belloni wrote:
> > On 22/06/2016 at 08:42:22 +0200, Dirk Behme wrote :
> >> From: Oleksij Rempel <[email protected]>
> >>
> >> There might be designs where the power supply circuit is designed
> >> in a way that VDETOFF and SWOFF is reuqired to be set. Otherwise the
> >> RTC detects a power loss. Add a device tree interface for this.
> >>
> >> Signed-off-by: Carsten Resch <[email protected]>
> >> Signed-off-by: Dirk Behme <[email protected]>
> >> Signed-off-by: Oleksij Rempel <[email protected]>
> >> Cc: [email protected]
> >> ---
> >>  drivers/rtc/rtc-rv8803.c | 39 +++++++++++++++++++++++++++++++++++++++
> >>  1 file changed, 39 insertions(+)
> >>
> >> diff --git a/drivers/rtc/rtc-rv8803.c b/drivers/rtc/rtc-rv8803.c
> >> index e122b51..32a5686 100644
> >> --- a/drivers/rtc/rtc-rv8803.c
> >> +++ b/drivers/rtc/rtc-rv8803.c
> >> @@ -50,6 +50,10 @@
> >>  #define RV8803_CTRL_TIE                   BIT(4)
> >>  #define RV8803_CTRL_UIE                   BIT(5)
> >>  
> >> +#define RX8900_BACKUP_CTRL                0x18
> >> +#define RX8900_FLAG_SWOFF         BIT(2)
> >> +#define RX8900_FLAG_VDETOFF               BIT(3)
> >> +
> >>  struct rv8803_data {
> >>    struct i2c_client *client;
> >>    struct rtc_device *rtc;
> >> @@ -423,6 +427,35 @@ static struct rtc_class_ops rv8803_rtc_ops = {
> >>    .ioctl = rv8803_ioctl,
> >>  };
> >>  
> >> +static int rx8900_trickle_charger_init(struct rv8803_data *rv8803)
> >> +{
> >> +  struct i2c_client *client = rv8803->client;
> >> +  struct device_node *node = client->dev.of_node;
> >> +  int err;
> >> +  u8 flags;
> >> +
> >> +  if (!node)
> >> +          return 0;
> >> +
> >> +  if (!of_device_is_compatible(node, "epson,rx8900"))
> >> +          return 0;
> >> +
> > 
> > Can you use the i2c_device_id instead of of_device_is_compatible to
> > avoid matching on yet another string?
> 
> Sure, ... is it possible that device tree defines rx8900 but i2c will
> detect rv8803?

There is no detection in i2c, it will use the compatible strng to pass
the correct i2c_device_id.

> I assume it is potential source of errors. What would be better way to
> handle it?

i2c is doing the right thing, you just have to use the i2c_device_id.

-- 
Alexandre Belloni, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

-- 
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 [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to