Re: [PATCH v3 05/11] dt-bindings: i3c: Document core bindings

Boris Brezillon
2018-03-28T17:28:07Z

On Wed, 28 Mar 2018 11:42:07 -0500
Rob Herring <robh@kernel.org> wrote:

> >>
> >> > +where device-type is describing the type of device connected on the bus
> >> > +(gpio-controller, sensor, ...).
> >> > +
> >> > +Required properties
> >> > +-------------------
> >> > +- reg: contains 3 cells
> >> > + + first cell : encodes the I2C address. Should be 0 if the device does not
> >> > + have one (0 is not a valid I3C address).
> >>
> >> Change here to "encodes the static I2C address".
> >>
> >> 0 is not a valid I2C address?
> >
> > According to [1] it is reserved, and it's reserved in the I3C spec
> > anyway (see "Table 9 I3C Slave Address Restrictions" in the I3C spec).
>
> Sorry, what I meant was s/I3C/I2C/. The first cell is I2C address and
> 0 is not valid.

Okay, got it now :-).
>
> >> > +
> >> > + + second and third cells: should encode the ProvisionalID. The second cell
> >> > + contains the manufacturer ID left-shifted by 1.
> >> > + The third cell contains ORing of the part ID
> >> > + left-shifted by 16, the instance ID left-shifted
> >> > + by 12 and the extra information. This encoding is
> >> > + following the PID definition provided by the I3C
> >> > + specification.
> >
> > One extra question for you: should I refer to the I3C_DEV(),
> > I3C_DEV_WITH_STATIC_ADDR() and I2C_DEV() macros in the bindings doc?
> > And if I do, should I use them my example?
>
> Well, I don't want to see "device@I3C_DEV(...)" for unit-addresses.

That wouldn't work anyway.

> You can use them for reg property, but it's somewhat pointless to use
> it in one place and not the other.

Not sure I follow you. These macros have been added to ease definitions
of reg, but you'll still have to manually define the unit-address
manually. Are you saying I should not use them in dts files or just that
I should not mention it in the doc. If this is the former, then patch 6
should be dropped.

--
Boris Brezillon, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering