Received: by 2002:ac0:a5a6:0:0:0:0:0 with SMTP id m35-v6csp4656053imm; Mon, 17 Sep 2018 18:58:04 -0700 (PDT) X-Google-Smtp-Source: ANB0VdZJD0wqlxxiJEvFZAJvZW5boyb4UM7U4w/iabKaXlcqtopONEsh//dEvunRk1m4DsgoOHh3 X-Received: by 2002:a17:902:c7:: with SMTP id a65-v6mr26846530pla.264.1537235883944; Mon, 17 Sep 2018 18:58:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1537235883; cv=none; d=google.com; s=arc-20160816; b=H1DiWz/Sm9QjBeHzQAbP8S8Zaq6vR4zHicEPMCYeKtNY+aAg/Y0Wikz8ZmZkuXeqkH kWBMvYWdbJlcZvR2N8c4nbQCfQ3TkEY1T/lL8TdiM8LDY0vGef+RWl2IgBNzh7oqfQxp mSUuR/EnCPguNVE12Umzib7Dex38IXfASUUaQ1Md01ehKe4e1UzkMm3icrH47mffwp2Z H12inQBo+5HO43e5MReBsQIYgclx/w1/l+fP6nS0hI8L6mPUgEyVR/v6hkeFc4ao/ik8 8GVy4uyva/jPCIn3iue/SKfjtPalmQQlpEbv1xJoP4RU4yaHT11syS+rlrhz5ILfJbSM reog== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature; bh=+ph/CdI69Cz/dt8dzdqU1h+T+B6FVoZon4S8uHDN0Fs=; b=xLpPgClbKcOf5+y/YIIe9BZbUJlAoH0ziMMSHP1hxPC3yBAQCJtQLNHkasI9Za6SEv aNfs8vfOk7WDjKPMhfjpRbBi1SdS78RwTavdu5t0S7Ss9bxzel7HEJnFgQ3i7SLdiBbS LAJUhlUqywX9rv9y/wO7+zH/7kcPVctevAmdHaOw3ZoDeIbpdpC+KBixePjmZQmJ1wjR cT3HkclInmhOL6z5ueUEtsIXTU/4kD7PDy6LTy5PtY0sQPn32LbCpn93hOjti9Oms7tU sx3ZjtE26qCOKBp+bK7gnwrhrrCUSYutoVNAi/hgz+l5C3DumMp86eLcyJiMHJ5KNfFP lpOA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=qugDmGVj; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id b32-v6si17698253pla.66.2018.09.17.18.57.48; Mon, 17 Sep 2018 18:58:03 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=qugDmGVj; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728675AbeIRH1q (ORCPT + 99 others); Tue, 18 Sep 2018 03:27:46 -0400 Received: from mail-it0-f66.google.com ([209.85.214.66]:55210 "EHLO mail-it0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726434AbeIRH1q (ORCPT ); Tue, 18 Sep 2018 03:27:46 -0400 Received: by mail-it0-f66.google.com with SMTP id f14-v6so1026950ita.4; Mon, 17 Sep 2018 18:57:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=+ph/CdI69Cz/dt8dzdqU1h+T+B6FVoZon4S8uHDN0Fs=; b=qugDmGVjATfRb7WnCpRzqAbYDpvGArrYFN9RN02uoDJfNHKIrqwlty0pbEzKHaxPlC lTXktfthASCbctuSLvTBs/daBrxieZFwqS18DJEg0/VG/XbXjMRH5LMkSCALkY3pua6M 3yYfk8buIfjQG2nCmc6fTqlgE3b4/VNSC3c4VVXii5bTa1YBklT28BBiBCsjRmWpmRod 2X8aRAsxu9ZfrQHNYPL1yu2wmHmHJuY319x+ERzb4b4Gw0ccjMxokDSYOucXmWlRSzIl oKraY5ToTnlp2VirQrJUETiJunQ8ZrHXRXSvnUE61x95t15+fTts6tBGNNQSeMQiXJZ1 6w0w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=+ph/CdI69Cz/dt8dzdqU1h+T+B6FVoZon4S8uHDN0Fs=; b=fZMKb+4/Lt/3W7EC4HflXmKJIXu6rOnq+NyQH9l8gQZEaWwf0vxZhCALwRpym8rPVk q5iAAnd9w1RHOTsmf9BvFQbNOZFK4wEf0TjNdxbEEYWIEZYy6NknAcGskh+pFlGYkDxW P3GESPG6LTARGtxJntCJ4QVZaMcG9TjXOmv3SXN0FG8a52GlfUG/MPt6pnm4iQKIE9H9 ss2Jeic3j2Jnm+C7pUumm0YtyNOqavqbrX1PWkkxQkOa+cn7OzHSheZn7wUqmaiJnz8f CUlJe3Ldz9EdkXGEgWY/yLeNm+9LeeVB1lPTadlSpAYvuJQJ6qi3sQcd0E4Kcn0GZV6i ggzQ== X-Gm-Message-State: APzg51BBUkzm2GCPYYXk0kswKowRlAEf47ocwCM4hQInAD3LB1QkKQ9S 3JCnwQ4JxBnBgWYdh4TC1Q== X-Received: by 2002:a24:8a42:: with SMTP id v63-v6mr901427itd.26.1537235857502; Mon, 17 Sep 2018 18:57:37 -0700 (PDT) Received: from r (CPE1cabc0918a93-CM1cabc0918a90.cpe.net.cable.rogers.com. [99.229.26.117]) by smtp.gmail.com with ESMTPSA id 138-v6sm11514792ioe.20.2018.09.17.18.57.35 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 17 Sep 2018 18:57:36 -0700 (PDT) Date: Mon, 17 Sep 2018 21:57:33 -0400 From: r yang To: Jonathan Cameron Cc: Hartmut Knaack , Lars-Peter Clausen , Peter Meerwald-Stadler , Rob Herring , Mark Rutland , linux-iio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 2/2] iio: light: bh1750: Add device tree support Message-ID: <20180918015733.GA19976@r> References: <387c145949692c0318f90d98426be95c82ea2e58.1537033044.git.decatf@gmail.com> <20180916104526.2c386591@archlinux> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20180916104526.2c386591@archlinux> User-Agent: Mutt/1.9.4 (2018-02-28) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sun, Sep 16, 2018 at 10:45:26AM +0100, Jonathan Cameron wrote: > On Sat, 15 Sep 2018 13:42:14 -0400 > ryang wrote: > > > Add device tree support for ROHM BH1750 series ambient light sensors. > > > > Signed-off-by: ryang > Just to check, how is it picking up on the enum value which is provided > in the i2c_device_id entries? > > i.e. What is setting id->driver_data in the probe? > There may be something in the i2c core that I'm missing that will do the > association but I don't remember anything trying to do this. > > Jonathan > I've looked through it and it is indeed in the i2c core. The i2c core probe function picks the id entry based on the i2c client name. The i2c client name is assigned based on the device tree compatible string. of_i2c_register_device() of_i2c_get_board_info() of_modalias_node() During probe the i2c_device_id is picked by matching the i2c client->name to i2c_device_id->name in the i2c_match_id() function. i2c_device_probe() driver->probe(client, i2c_match_id(driver->id_table, client)); I've tested this on device. It's Samsung Galaxy Tab 10.1. It has a BH1721. > > --- > > drivers/iio/light/bh1750.c | 10 ++++++++++ > > 1 file changed, 10 insertions(+) > > > > diff --git a/drivers/iio/light/bh1750.c b/drivers/iio/light/bh1750.c > > index a814828e69f5..50b599abb383 100644 > > --- a/drivers/iio/light/bh1750.c > > +++ b/drivers/iio/light/bh1750.c > > @@ -315,9 +315,19 @@ static const struct i2c_device_id bh1750_id[] = { > > }; > > MODULE_DEVICE_TABLE(i2c, bh1750_id); > > > > +static const struct of_device_id bh1750_of_match[] = { > > + { .compatible = "rohm,bh1710", }, > > + { .compatible = "rohm,bh1715", }, > > + { .compatible = "rohm,bh1721", }, > > + { .compatible = "rohm,bh1750", }, > > + { .compatible = "rohm,bh1751", }, > > + { } > > +}; > > + > > static struct i2c_driver bh1750_driver = { > > .driver = { > > .name = "bh1750", > > + .of_match_table = of_match_ptr(bh1750_of_match), > > .pm = BH1750_PM_OPS, > > }, > > .probe = bh1750_probe, >