Linux-i2c Archive on lore.kernel.org
 help / color / Atom feed
From: Rob Herring <robh@kernel.org>
To: Serge Semin <Sergey.Semin@baikalelectronics.ru>
Cc: Jarkko Nikula <jarkko.nikula@linux.intel.com>,
	Wolfram Sang <wsa@the-dreams.de>,
	Frank Rowand <frowand.list@gmail.com>,
	Serge Semin <fancer.lancer@gmail.com>,
	Alexey Malahov <Alexey.Malahov@baikalelectronics.ru>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Mika Westerberg <mika.westerberg@linux.intel.com>,
	linux-mips@vger.kernel.org, linux-i2c@vger.kernel.org,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3 01/12] scripts/dtc: check: Add 10bit/slave i2c reg flags support
Date: Tue, 26 May 2020 19:17:04 -0600
Message-ID: <20200527011704.GA808104@bogus> (raw)
In-Reply-To: <20200526215528.16417-2-Sergey.Semin@baikalelectronics.ru>

On Wed, May 27, 2020 at 12:55:17AM +0300, Serge Semin wrote:
> Recently the I2C-controllers slave interface support was added to the
> kernel I2C subsystem. In this case Linux can be used as, for example,
> a I2C EEPROM machine. See [1] for details. Other than instantiating
> the EEPROM-slave device from user-space there is a way to declare the
> device in dts. In this case firstly the I2C bus controller must support
> the slave interface. Secondly I2C-slave sub-node of that controller
> must have "reg"-property with flag I2C_OWN_SLAVE_ADDRESS set (flag is
> declared in [2]). That flag is declared as (1 << 30), which when set
> makes dtc unhappy about too big address set for a I2C-slave:
> 
> Warning (i2c_bus_reg): /example-2/i2c@1120000/eeprom@64: I2C bus unit address format error, expected "40000064"
> Warning (i2c_bus_reg): /example-2/i2c@1120000/eeprom@64:reg: I2C address must be less than 10-bits, got "0x40000064"
> 
> Similar problem would have happened if we had set the 10-bit address
> flag I2C_TEN_BIT_ADDRESS in the "reg"-property.
> 
> In order to fix the problem we suggest to alter the I2C-bus reg-check
> algorithm, so one would be aware of the upper bits set. Normally if no
> flag specified, the 7-bit address is expected in the "reg"-property.
> If I2C_TEN_BIT_ADDRESS is set, then the 10-bit address check will be
> performed. The I2C_OWN_SLAVE_ADDRESS flag will be just ignored.
> 
> [1] Documentation/i2c/slave-interface.rst
> [2] include/dt-bindings/i2c/i2c.h
> 
> Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru>
> Cc: Alexey Malahov <Alexey.Malahov@baikalelectronics.ru>
> Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
> Cc: Mika Westerberg <mika.westerberg@linux.intel.com>
> Cc: linux-mips@vger.kernel.org
> Cc: linux-i2c@vger.kernel.org
> ---
>  scripts/dtc/checks.c | 13 +++++++++----
>  1 file changed, 9 insertions(+), 4 deletions(-)

I've lost track of who all I've said this to already for this issue, but 
patches to dtc should be against upstream and a version of this has been 
sent there already. But it seems they've lost interest in addressing the 
review comments. So feel free to send another one. The same comment 
applies here.

Rob

  reply index

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-26 21:55 [PATCH v3 00/12] i2c: designeware: Add Baikal-T1 System I2C support Serge Semin
2020-05-26 21:55 ` [PATCH v3 01/12] scripts/dtc: check: Add 10bit/slave i2c reg flags support Serge Semin
2020-05-27  1:17   ` Rob Herring [this message]
2020-05-27  9:46     ` Serge Semin
2020-05-27 11:20     ` Serge Semin
2020-05-26 21:55 ` [PATCH v3 02/12] dt-bindings: i2c: Convert DW I2C binding to DT schema Serge Semin
2020-05-27  1:20   ` Rob Herring
2020-05-26 21:55 ` [PATCH v3 03/12] dt-bindings: i2c: Discard i2c-slave flag from the DW I2C example Serge Semin
2020-05-27  9:30   ` Andy Shevchenko
2020-05-27 12:07     ` Serge Semin
2020-05-27 13:32       ` Andy Shevchenko
2020-05-26 21:55 ` [PATCH v3 04/12] dt-bindings: i2c: dw: Add Baikal-T1 SoC I2C controller Serge Semin
2020-05-26 21:55 ` [PATCH v3 05/12] i2c: designware: Use `-y` to build multi-object modules Serge Semin
2020-05-26 21:55 ` [PATCH v3 06/12] i2c: designware: slave: Set DW I2C core module dependency Serge Semin
2020-05-26 21:55 ` [PATCH v3 07/12] i2c: designware: Add Baytrail sem config DW I2C platform dependency Serge Semin
2020-05-26 21:55 ` [PATCH v3 08/12] i2c: designware: Discard Cherry Trail model flag Serge Semin
2020-05-26 21:55 ` [PATCH v3 09/12] i2c: designware: Convert driver to using regmap API Serge Semin
2020-05-26 21:55 ` [PATCH v3 10/12] i2c: designware: Retrieve quirk flags as early as possible Serge Semin
2020-05-26 21:55 ` [PATCH v3 11/12] i2c: designware: Move reg-space remapping into a dedicated function Serge Semin
2020-05-27  9:26   ` Andy Shevchenko
2020-05-27  9:50     ` Serge Semin
2020-05-27 10:18       ` Andy Shevchenko
2020-05-26 21:55 ` [PATCH v3 12/12] i2c: designware: Add Baikal-T1 System I2C support Serge Semin
2020-05-27 13:30 ` [PATCH v3 00/12] i2c: designeware: " Andy Shevchenko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200527011704.GA808104@bogus \
    --to=robh@kernel.org \
    --cc=Alexey.Malahov@baikalelectronics.ru \
    --cc=Sergey.Semin@baikalelectronics.ru \
    --cc=devicetree@vger.kernel.org \
    --cc=fancer.lancer@gmail.com \
    --cc=frowand.list@gmail.com \
    --cc=jarkko.nikula@linux.intel.com \
    --cc=linux-i2c@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mips@vger.kernel.org \
    --cc=mika.westerberg@linux.intel.com \
    --cc=tsbogend@alpha.franken.de \
    --cc=wsa@the-dreams.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

Linux-i2c Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-i2c/0 linux-i2c/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-i2c linux-i2c/ https://lore.kernel.org/linux-i2c \
		linux-i2c@vger.kernel.org
	public-inbox-index linux-i2c

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-i2c


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git