All of lore.kernel.org
 help / color / mirror / Atom feed
From: Boris Brezillon <boris.brezillon@bootlin.com>
To: vitor <Vitor.Soares@synopsys.com>,
	linux-gpio@vger.kernel.org, Sekhar Nori <nsekhar@ti.com>
Cc: Wolfram Sang <wsa@the-dreams.de>,
	linux-i2c@vger.kernel.org, Jonathan Corbet <corbet@lwn.net>,
	linux-doc@vger.kernel.org,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Arnd Bergmann <arnd@arndb.de>,
	Przemyslaw Sroka <psroka@cadence.com>,
	Arkadiusz Golec <agolec@cadence.com>,
	Alan Douglas <adouglas@cadence.com>,
	Bartosz Folta <bfolta@cadence.com>, Damian Kos <dkos@cadence.com>,
	Alicja Jurasik-Urbaniak <alicja@cadence.com>,
	Cyprian Wronka <cwronka@cadence.com>,
	Suresh Punnoose <sureshp@cadence.com>,
	Rafal Ciepiela <rafalc@cadence.com>,
	Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
	Nishanth Menon <nm@ti.com>, Rob Herring <robh+dt@kernel.org>,
	Pawel Moll <pawel.moll@arm.com>,
	Mark Rutland <mark.rutland@arm.com>,
	Ian Campbell <ijc+devicetree@hel>
Subject: Re: [PATCH v6 01/10] i3c: Add core I3C infrastructure
Date: Fri, 24 Aug 2018 14:39:34 +0200	[thread overview]
Message-ID: <20180824143934.6d6b6487@bbrezillon> (raw)
In-Reply-To: <d2f40cc2-b344-69d1-4314-83524ad7b178@synopsys.com>

Hi Vitor,

On Wed, 22 Aug 2018 17:43:34 +0100
vitor <Vitor.Soares@synopsys.com> wrote:

> Hi Boris,
> 
> 
> On 19-07-2018 16:29, Boris Brezillon wrote:
> > +int i3c_bus_register(struct i3c_bus *i3cbus)
> > +{
> > +	struct i2c_dev_desc *desc;
> > +
> > +	i3c_bus_for_each_i2cdev(i3cbus, desc) {
> > +		switch (desc->boardinfo->lvr & I3C_LVR_I2C_INDEX_MASK) {
> > +		case I3C_LVR_I2C_INDEX(0):
> > +			if (i3cbus->mode < I3C_BUS_MODE_MIXED_FAST)
> > +				i3cbus->mode = I3C_BUS_MODE_MIXED_FAST;
> > +			break;
> > +
> > +		case I3C_LVR_I2C_INDEX(1):
> > +		case I3C_LVR_I2C_INDEX(2):
> > +			if (i3cbus->mode < I3C_BUS_MODE_MIXED_SLOW)
> > +				i3cbus->mode = I3C_BUS_MODE_MIXED_SLOW;
> > +			break;
> > +
> > +		default:
> > +			return -EINVAL;
> > +		}
> > +	}
> > +
> > +	if (!i3cbus->scl_rate.i3c)
> > +		i3cbus->scl_rate.i3c = I3C_BUS_TYP_I3C_SCL_RATE;
> > +
> > +	if (!i3cbus->scl_rate.i2c) {
> > +		if (i3cbus->mode == I3C_BUS_MODE_MIXED_SLOW)
> > +			i3cbus->scl_rate.i2c = I3C_BUS_I2C_FM_SCL_RATE;
> > +		else
> > +			i3cbus->scl_rate.i2c = I3C_BUS_I2C_FM_PLUS_SCL_RATE;
> > +	}
> > +
> > +	/*
> > +	 * I3C/I2C frequency may have been overridden, check that user-provided
> > +	 * values are not exceeding max possible frequency.
> > +	 */
> > +	if (i3cbus->scl_rate.i3c > I3C_BUS_MAX_I3C_SCL_RATE ||
> > +	    i3cbus->scl_rate.i2c > I3C_BUS_I2C_FM_PLUS_SCL_RATE) {
> > +		return -EINVAL;
> > +	}
> > +
> > +	dev_set_name(&i3cbus->dev, "i3c-%d", i3cbus->id);
> > +
> > +	return device_add(&i3cbus->dev);
> > +}  
> During the tests of the bus with i2c devices I found the i2c_dev_desc 
> objects aren't allocated before this function. This cause i3cbus->mode = 
> I3C_BUS_MODE_PURE.

I just checked and DT parsing (+ I2C descs creation) is done before
i3c_bus_register() is called, so we should be good. How did you declare
your I2C devices (right now, only DT declaration is supported).

> 
> I want to do something for the slave and secondary master, do you 
> already have infrastructure that you can share?

What do you mean?

Regards,

Boris

WARNING: multiple messages have this Message-ID (diff)
From: Boris Brezillon <boris.brezillon@bootlin.com>
To: vitor <Vitor.Soares@synopsys.com>, <linux-gpio@vger.kernel.org>,
	Sekhar Nori <nsekhar@ti.com>
Cc: Wolfram Sang <wsa@the-dreams.de>, <linux-i2c@vger.kernel.org>,
	Jonathan Corbet <corbet@lwn.net>, <linux-doc@vger.kernel.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Arnd Bergmann <arnd@arndb.de>,
	Przemyslaw Sroka <psroka@cadence.com>,
	Arkadiusz Golec <agolec@cadence.com>,
	Alan Douglas <adouglas@cadence.com>,
	Bartosz Folta <bfolta@cadence.com>, Damian Kos <dkos@cadence.com>,
	Alicja Jurasik-Urbaniak <alicja@cadence.com>,
	Cyprian Wronka <cwronka@cadence.com>,
	Suresh Punnoose <sureshp@cadence.com>,
	Rafal Ciepiela <rafalc@cadence.com>,
	Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
	Nishanth Menon <nm@ti.com>, Rob Herring <robh+dt@kernel.org>,
	Pawel Moll <pawel.moll@arm.com>,
	Mark Rutland <mark.rutland@arm.com>,
	Ian Campbell <ijc+devicetree@hellion.org.uk>,
	"Kumar Gala" <galak@codeaurora.org>, <devicetree@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	Xiang Lin <Xiang.Lin@synaptics.com>,
	Przemyslaw Gaj <pgaj@cadence.com>, Peter Rosin <peda@axentia.se>
Subject: Re: [PATCH v6 01/10] i3c: Add core I3C infrastructure
Date: Fri, 24 Aug 2018 14:39:34 +0200	[thread overview]
Message-ID: <20180824143934.6d6b6487@bbrezillon> (raw)
In-Reply-To: <d2f40cc2-b344-69d1-4314-83524ad7b178@synopsys.com>

Hi Vitor,

On Wed, 22 Aug 2018 17:43:34 +0100
vitor <Vitor.Soares@synopsys.com> wrote:

> Hi Boris,
> 
> 
> On 19-07-2018 16:29, Boris Brezillon wrote:
> > +int i3c_bus_register(struct i3c_bus *i3cbus)
> > +{
> > +	struct i2c_dev_desc *desc;
> > +
> > +	i3c_bus_for_each_i2cdev(i3cbus, desc) {
> > +		switch (desc->boardinfo->lvr & I3C_LVR_I2C_INDEX_MASK) {
> > +		case I3C_LVR_I2C_INDEX(0):
> > +			if (i3cbus->mode < I3C_BUS_MODE_MIXED_FAST)
> > +				i3cbus->mode = I3C_BUS_MODE_MIXED_FAST;
> > +			break;
> > +
> > +		case I3C_LVR_I2C_INDEX(1):
> > +		case I3C_LVR_I2C_INDEX(2):
> > +			if (i3cbus->mode < I3C_BUS_MODE_MIXED_SLOW)
> > +				i3cbus->mode = I3C_BUS_MODE_MIXED_SLOW;
> > +			break;
> > +
> > +		default:
> > +			return -EINVAL;
> > +		}
> > +	}
> > +
> > +	if (!i3cbus->scl_rate.i3c)
> > +		i3cbus->scl_rate.i3c = I3C_BUS_TYP_I3C_SCL_RATE;
> > +
> > +	if (!i3cbus->scl_rate.i2c) {
> > +		if (i3cbus->mode == I3C_BUS_MODE_MIXED_SLOW)
> > +			i3cbus->scl_rate.i2c = I3C_BUS_I2C_FM_SCL_RATE;
> > +		else
> > +			i3cbus->scl_rate.i2c = I3C_BUS_I2C_FM_PLUS_SCL_RATE;
> > +	}
> > +
> > +	/*
> > +	 * I3C/I2C frequency may have been overridden, check that user-provided
> > +	 * values are not exceeding max possible frequency.
> > +	 */
> > +	if (i3cbus->scl_rate.i3c > I3C_BUS_MAX_I3C_SCL_RATE ||
> > +	    i3cbus->scl_rate.i2c > I3C_BUS_I2C_FM_PLUS_SCL_RATE) {
> > +		return -EINVAL;
> > +	}
> > +
> > +	dev_set_name(&i3cbus->dev, "i3c-%d", i3cbus->id);
> > +
> > +	return device_add(&i3cbus->dev);
> > +}  
> During the tests of the bus with i2c devices I found the i2c_dev_desc 
> objects aren't allocated before this function. This cause i3cbus->mode = 
> I3C_BUS_MODE_PURE.

I just checked and DT parsing (+ I2C descs creation) is done before
i3c_bus_register() is called, so we should be good. How did you declare
your I2C devices (right now, only DT declaration is supported).

> 
> I want to do something for the slave and secondary master, do you 
> already have infrastructure that you can share?

What do you mean?

Regards,

Boris

  reply	other threads:[~2018-08-24 12:39 UTC|newest]

Thread overview: 177+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-19 15:29 [PATCH v6 00/10] Add the I3C subsystem Boris Brezillon
2018-07-19 15:29 ` Boris Brezillon
2018-07-19 15:29 ` Boris Brezillon
2018-07-19 15:29 ` [PATCH v6 01/10] i3c: Add core I3C infrastructure Boris Brezillon
2018-07-19 15:29   ` Boris Brezillon
2018-08-03 21:38   ` mshettel
2018-08-03 21:38     ` mshettel
2018-08-03 21:38     ` mshettel
2018-08-04  5:33     ` Boris Brezillon
2018-08-04  5:33       ` Boris Brezillon
2018-08-04  5:33       ` Boris Brezillon
2018-08-22 16:43   ` vitor
2018-08-22 16:43     ` vitor
2018-08-24 12:39     ` Boris Brezillon [this message]
2018-08-24 12:39       ` Boris Brezillon
2018-08-24 17:52       ` vitor
2018-08-24 17:52         ` vitor
2018-08-24 18:16         ` Boris Brezillon
2018-08-24 18:16           ` Boris Brezillon
2018-08-28 11:50           ` vitor
2018-08-28 11:50             ` vitor
2018-08-28 12:02             ` Boris Brezillon
2018-08-28 12:02               ` Boris Brezillon
2018-08-28 12:55               ` Przemyslaw Gaj
2018-08-28 12:55                 ` Przemyslaw Gaj
2018-08-28 13:01                 ` Boris Brezillon
2018-08-28 13:01                   ` Boris Brezillon
2018-08-29  7:41                   ` Przemyslaw Gaj
2018-08-29  7:41                     ` Przemyslaw Gaj
2018-08-28 13:03                 ` Boris Brezillon
2018-08-28 13:03                   ` Boris Brezillon
2018-08-30 13:57                 ` vitor
2018-08-30 13:57                   ` vitor
2018-08-30 19:00                   ` Przemyslaw Gaj
2018-08-30 19:00                     ` Przemyslaw Gaj
2018-09-03  9:33                     ` vitor
2018-09-03  9:33                       ` vitor
2018-09-04 11:03                       ` Przemyslaw Gaj
2018-09-04 11:03                         ` Przemyslaw Gaj
2018-09-06 12:43                       ` Przemyslaw Gaj
2018-09-06 12:43                         ` Przemyslaw Gaj
2018-09-06 12:59                         ` Arnd Bergmann
2018-09-06 12:59                           ` Arnd Bergmann
2018-09-06 13:14                           ` Boris Brezillon
2018-09-06 13:14                             ` Boris Brezillon
2018-09-06 13:20                             ` Boris Brezillon
2018-09-06 13:20                               ` Boris Brezillon
2018-09-06 13:45                               ` Arnd Bergmann
2018-09-06 13:45                                 ` Arnd Bergmann
2018-09-06 13:50                               ` vitor
2018-09-06 13:50                                 ` vitor
2018-09-06 14:14                                 ` Boris Brezillon
2018-09-06 14:14                                   ` Boris Brezillon
2018-09-06 15:17                                   ` vitor
2018-09-06 15:17                                     ` vitor
2018-09-06 16:06                                     ` Boris Brezillon
2018-09-06 16:06                                       ` Boris Brezillon
2018-09-06 16:17                                       ` Przemyslaw Gaj
2018-09-06 16:17                                         ` Przemyslaw Gaj
2018-09-10 16:16                                         ` vitor
2018-09-10 16:16                                           ` vitor
2018-09-07  7:51                                       ` Przemyslaw Gaj
2018-09-07  7:51                                         ` Przemyslaw Gaj
2018-09-06 13:47                             ` Przemyslaw Gaj
2018-09-06 13:47                               ` Przemyslaw Gaj
2018-09-06 14:09                               ` Boris Brezillon
2018-09-06 14:09                                 ` Boris Brezillon
2018-09-06 14:20                                 ` Przemyslaw Gaj
2018-09-06 14:20                                   ` Przemyslaw Gaj
2018-07-19 15:29 ` [PATCH v6 02/10] docs: driver-api: Add I3C documentation Boris Brezillon
2018-07-19 15:29   ` Boris Brezillon
2018-07-19 15:29   ` Boris Brezillon
2018-07-19 15:29 ` [PATCH v6 03/10] i3c: Add sysfs ABI spec Boris Brezillon
2018-07-19 15:29   ` Boris Brezillon
2018-07-19 15:29   ` Boris Brezillon
2018-07-19 15:29 ` [PATCH v6 04/10] dt-bindings: i3c: Document core bindings Boris Brezillon
2018-07-19 15:29   ` Boris Brezillon
2018-07-19 15:29   ` Boris Brezillon
2018-07-19 15:29 ` [PATCH v6 05/10] dt-bindings: i3c: Add macros to help fill I3C/I2C device's reg property Boris Brezillon
2018-07-19 15:29   ` Boris Brezillon
2018-07-19 15:29   ` Boris Brezillon
2018-07-19 15:29 ` [PATCH v6 06/10] MAINTAINERS: Add myself as the I3C subsystem maintainer Boris Brezillon
2018-07-19 15:29   ` Boris Brezillon
2018-07-19 15:29   ` Boris Brezillon
2018-07-19 15:29 ` [PATCH v6 07/10] i3c: master: Add driver for Cadence IP Boris Brezillon
2018-07-19 15:29   ` Boris Brezillon
2018-07-19 15:29   ` Boris Brezillon
2018-07-19 15:29 ` [PATCH v6 08/10] dt-bindings: i3c: Document Cadence I3C master bindings Boris Brezillon
2018-07-19 15:29   ` Boris Brezillon
2018-07-19 15:29   ` Boris Brezillon
2018-07-19 15:29 ` [PATCH v6 09/10] gpio: Add a driver for Cadence I3C GPIO expander Boris Brezillon
2018-07-19 15:29   ` Boris Brezillon
2018-07-19 15:29   ` Boris Brezillon
2018-07-19 15:29 ` [PATCH v6 10/10] dt-bindings: gpio: Add bindings for Cadence I3C gpio expander Boris Brezillon
2018-07-19 15:29   ` Boris Brezillon
2018-07-19 15:29   ` Boris Brezillon
2018-07-20  8:52 ` [PATCH v6 00/10] Add the I3C subsystem Arnd Bergmann
2018-07-20  8:52   ` Arnd Bergmann
2018-07-20  8:52   ` Arnd Bergmann
2018-07-20  9:57   ` Peter Rosin
2018-07-20  9:57     ` Peter Rosin
2018-07-20  9:57     ` Peter Rosin
2018-07-20 10:05     ` Boris Brezillon
2018-07-20 10:05       ` Boris Brezillon
2018-07-20 10:05       ` Boris Brezillon
2018-07-20 10:39       ` Peter Rosin
2018-07-20 10:39         ` Peter Rosin
2018-07-20 10:39         ` Peter Rosin
2018-07-20 10:12     ` Wolfram Sang
2018-07-20 10:12       ` Wolfram Sang
2018-07-20 10:57       ` Arnd Bergmann
2018-07-20 10:57         ` Arnd Bergmann
2018-07-20 10:57         ` Arnd Bergmann
2018-07-20 11:05         ` Wolfram Sang
2018-07-20 11:05           ` Wolfram Sang
2018-07-20 11:13         ` Peter Rosin
2018-07-20 11:13           ` Peter Rosin
2018-07-20 11:13           ` Peter Rosin
2018-07-20 11:28           ` Arnd Bergmann
2018-07-20 11:28             ` Arnd Bergmann
2018-07-20 11:28             ` Arnd Bergmann
2018-07-20 13:16             ` Peter Rosin
2018-07-20 13:16               ` Peter Rosin
2018-07-20 13:16               ` Peter Rosin
2018-07-20 15:41               ` Wolfram Sang
2018-07-20 15:41                 ` Wolfram Sang
2018-07-24 14:14                 ` Arnd Bergmann
2018-07-24 14:14                   ` Arnd Bergmann
2018-07-24 14:14                   ` Arnd Bergmann
2018-07-24 15:57                   ` Wolfram Sang
2018-07-24 15:57                     ` Wolfram Sang
2018-07-24 16:04                     ` Arnd Bergmann
2018-07-24 16:04                       ` Arnd Bergmann
2018-07-24 16:04                       ` Arnd Bergmann
2018-07-24 20:22                       ` Wolfram Sang
2018-07-24 20:22                         ` Wolfram Sang
2018-07-24 16:07                     ` Boris Brezillon
2018-07-24 16:07                       ` Boris Brezillon
2018-07-24 16:07                       ` Boris Brezillon
2018-07-20 13:17             ` Boris Brezillon
2018-07-20 13:17               ` Boris Brezillon
2018-07-20 13:17               ` Boris Brezillon
2018-07-24 14:03               ` Arnd Bergmann
2018-07-24 14:03                 ` Arnd Bergmann
2018-07-24 14:03                 ` Arnd Bergmann
2018-07-24 14:28                 ` Boris Brezillon
2018-07-24 14:28                   ` Boris Brezillon
2018-07-24 14:28                   ` Boris Brezillon
2018-07-24 15:05                   ` Arnd Bergmann
2018-07-24 15:05                     ` Arnd Bergmann
2018-07-24 15:05                     ` Arnd Bergmann
2018-07-24 15:15                     ` Geert Uytterhoeven
2018-07-24 15:15                       ` Geert Uytterhoeven
2018-07-24 15:15                       ` Geert Uytterhoeven
2018-07-24 15:40                       ` Arnd Bergmann
2018-07-24 15:40                         ` Arnd Bergmann
2018-07-24 15:40                         ` Arnd Bergmann
2018-07-24 15:46                         ` Geert Uytterhoeven
2018-07-24 15:46                           ` Geert Uytterhoeven
2018-07-24 15:46                           ` Geert Uytterhoeven
2018-07-24 15:58                           ` Arnd Bergmann
2018-07-24 15:58                             ` Arnd Bergmann
2018-07-24 15:58                             ` Arnd Bergmann
2018-07-24 16:14                             ` Boris Brezillon
2018-07-24 16:14                               ` Boris Brezillon
2018-07-24 16:14                               ` Boris Brezillon
2018-07-24 16:25                               ` Arnd Bergmann
2018-07-24 16:25                                 ` Arnd Bergmann
2018-07-24 16:25                                 ` Arnd Bergmann
2018-07-24 16:54                                 ` Boris Brezillon
2018-07-24 16:54                                   ` Boris Brezillon
2018-07-24 16:54                                   ` Boris Brezillon
2018-07-24 20:21                                   ` Arnd Bergmann
2018-07-24 20:21                                     ` Arnd Bergmann
2018-07-24 20:21                                     ` Arnd Bergmann
2018-07-24 16:04                       ` Wolfram Sang
2018-07-24 16:04                         ` Wolfram Sang

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=20180824143934.6d6b6487@bbrezillon \
    --to=boris.brezillon@bootlin.com \
    --cc=Vitor.Soares@synopsys.com \
    --cc=adouglas@cadence.com \
    --cc=agolec@cadence.com \
    --cc=alicja@cadence.com \
    --cc=arnd@arndb.de \
    --cc=bfolta@cadence.com \
    --cc=corbet@lwn.net \
    --cc=cwronka@cadence.com \
    --cc=dkos@cadence.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=ijc+devicetree@hel \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-i2c@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=nm@ti.com \
    --cc=nsekhar@ti.com \
    --cc=pawel.moll@arm.com \
    --cc=psroka@cadence.com \
    --cc=rafalc@cadence.com \
    --cc=robh+dt@kernel.org \
    --cc=sureshp@cadence.com \
    --cc=thomas.petazzoni@bootlin.com \
    --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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.