public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Heiko Schocher <hs@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2 0/7] Align U-Boot I2C DM bus ID handling with Linux
Date: Mon, 11 Feb 2019 07:20:58 +0100	[thread overview]
Message-ID: <05b0cbd3-e372-2e86-e325-c978246de4a4@denx.de> (raw)
In-Reply-To: <eb16f091-7a41-9891-c51b-078283597433@monstr.eu>

Hello Michal,

Am 08.02.2019 um 12:24 schrieb Michal Simek:
> On 08. 02. 19 12:14, Michal Simek wrote:
>> On 08. 02. 19 10:57, Heiko Schocher wrote:
>>> Hello Michael,
>>>
>>> Am 31.01.2019 um 16:30 schrieb Michal Simek:
>>>> U-Boot with I2C_DM enabled is not capable to list i2c busses connected
>>>> to i2c mux. For getting this work there is a need to find out highest
>>>> alias ID and use this uniq number for new buses connected to I2C mux.
>>>> This series is making this happen.
>>>>
>>>> There is only one missing piece which is that also i2c controllers which
>>>> are not listed in DT are not using this feature.
>>>>
>>>> Removing setting up aliases from i2c mux code and unifying it in the
>>>> same code ensures that numbering schema is proper if no alias is
>>>> specified.
>>>>
>>>> ZynqMP> i2c bus
>>>> Bus 0:    i2c at ff020000
>>>>      20: gpio at 20, offset len 1, flags 0
>>>>      21: gpio at 21, offset len 1, flags 0
>>>>      75: i2c-mux at 75, offset len 1, flags 0
>>>> Bus 1:    i2c at ff020000->i2c-mux at 75->i2c at 0
>>>> Bus 2:    i2c at ff020000->i2c-mux at 75->i2c at 1
>>>> Bus 3:    i2c at ff020000->i2c-mux at 75->i2c at 2
>>>> Bus 4:    i2c at ff030000  (active 4)
>>>>      74: i2c-mux at 74, offset len 1, flags 0
>>>>      75: i2c-mux at 75, offset len 1, flags 0
>>>> Bus 5:    i2c at ff030000->i2c-mux at 74->i2c at 0  (active 5)
>>>>      54: eeprom at 54, offset len 1, flags 0
>>>> Bus 6:    i2c at ff030000->i2c-mux at 74->i2c at 1
>>>> Bus 7:    i2c at ff030000->i2c-mux at 74->i2c at 2
>>>> Bus 8:    i2c at ff030000->i2c-mux at 74->i2c at 3
>>>> Bus 9:    i2c at ff030000->i2c-mux at 74->i2c at 4
>>>> Bus 10:    i2c at ff030000->i2c-mux at 75->i2c at 0
>>>> Bus 11:    i2c at ff030000->i2c-mux at 75->i2c at 1
>>>> Bus 12:    i2c at ff030000->i2c-mux at 75->i2c at 2
>>>> Bus 13:    i2c at ff030000->i2c-mux at 75->i2c at 3
>>>> Bus 14:    i2c at ff030000->i2c-mux at 75->i2c at 4
>>>> Bus 15:    i2c at ff030000->i2c-mux at 75->i2c at 5
>>>> Bus 16:    i2c at ff030000->i2c-mux at 75->i2c at 6
>>>> Bus 17:    i2c at ff030000->i2c-mux at 75->i2c at 7
>>>>
>>>> Thanks,
>>>> Michal
>>>>
>>>> Changes in v2:
>>>> - Update kernel-doc binding
>>>> - Return -1 in case of error. -1 means that the next free alias is 0.
>>>> - New patch
>>>> - New patch
>>>> - Use dev_read_alias_highest_id()
>>>> - Use uclass private data
>>>> - Use private uclass data
>>>> - Fix headers
>>>> - Change patch description to focus only on bus name
>>>>
>>>> Michal Simek (7):
>>>>     dm: core: Add of_alias_get_highest_id()
>>>>     fdt: Introduce fdtdec_get_alias_highest_id()
>>>>     dm: core: Introduce dev_read_alias_highest_id()
>>>>     dm: core: Add tests for dev_read_alias_highest_id()
>>>>     i2c: dm: Record maximum id of devices before probing devices
>>>>     i2c: Fill req_seq in i2c_post_bind()
>>>>     i2c: mux: Generate longer i2c mux name
>>>>
>>>>    drivers/core/of_access.c           | 18 ++++++++++++++
>>>>    drivers/core/read.c                |  8 ++++++
>>>>    drivers/i2c/i2c-uclass.c           | 50
>>>> +++++++++++++++++++++++++++++++++++---
>>>>    drivers/i2c/muxes/i2c-mux-uclass.c | 29 +++++++++++++++++++---
>>>>    include/dm/of_access.h             | 10 ++++++++
>>>>    include/dm/read.h                  | 16 ++++++++++++
>>>>    include/fdtdec.h                   | 13 ++++++++++
>>>>    lib/fdtdec.c                       | 33 +++++++++++++++++++++++++
>>>>    test/dm/test-fdt.c                 | 23 ++++++++++++++++++
>>>>    9 files changed, 194 insertions(+), 6 deletions(-)
>>>>
>>>
>>> I just applied your patches and triggered a build on travis:
>>>
>>> It shows error for omap boards:
>>>
>>> https://travis-ci.org/hsdenx/u-boot-i2c/jobs/490393822
>>>
>>> I try to find time to look into it, but may you have time too?
>>>
>>
>> This should be the fix.  (I tried that on omap35_logic_somlv_defconfig)
>>
>> diff --git a/drivers/i2c/i2c-uclass.c b/drivers/i2c/i2c-uclass.c
>> index 6f3fca2d2326..391fb1289983 100644
>> --- a/drivers/i2c/i2c-uclass.c
>> +++ b/drivers/i2c/i2c-uclass.c
>> @@ -655,8 +655,12 @@ int i2c_uclass_init(struct uclass *class)
>>          if (!priv)
>>                  return -ENOMEM;
>>
>> +#if CONFIG_IS_ENABLED(OF_CONTROL)
>>          /* Get the last allocated alias. */
>>          priv->max_id = dev_read_alias_highest_id("i2c");
>> +#else
>> +       priv->max_id = -1;
>> +#endif
>>
>>          debug("%s: highest alias id is %d\n", __func__, priv->max_id);
>>
>>
>> SPL has no OF_CONTROL and also no LIBFDT that's why it is trying to call
>> it.
> 
> :-) that sentence doesn't make sense. Correction:
> ...that's why it shouldn't be called.

;-)

> Maybe it should be enough to have dependency on OF_LIBFDT but Kconfig is
> saying that OF_LIBFDT is bool setup to y when OF_CONTROL is enabled.
> And in Makefile fdtdec is enabled
> 
> obj-$(CONFIG_$(SPL_TPL_)OF_CONTROL) += fdtdec.o
> or just
> obj-$(CONFIG_OF_LIBFDT) += fdtdec.o
> 
> Anyway it should be likely enough to have dependency just on OF_LIBFDT.

Ok, do you want to send a v3 of the patch:

dm: core: Add of_alias_get_highest_id()

or is it OK for you, if I add the above fix to this patch directly?

bye,
Heiko
-- 
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-52   Fax: +49-8142-66989-80   Email: hs at denx.de

  reply	other threads:[~2019-02-11  6:20 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-31 15:30 [U-Boot] [PATCH v2 0/7] Align U-Boot I2C DM bus ID handling with Linux Michal Simek
2019-01-31 15:30 ` [U-Boot] [PATCH v2 1/7] dm: core: Add of_alias_get_highest_id() Michal Simek
2019-02-07  6:46   ` Heiko Schocher
2019-02-08  4:11     ` Simon Glass
2019-02-11 15:50   ` Heiko Schocher
2019-01-31 15:30 ` [U-Boot] [PATCH v2 2/7] fdt: Introduce fdtdec_get_alias_highest_id() Michal Simek
2019-02-07  6:47   ` Heiko Schocher
2019-02-08  4:11   ` Simon Glass
2019-02-11 15:51   ` Heiko Schocher
2019-01-31 15:30 ` [U-Boot] [PATCH v2 3/7] dm: core: Introduce dev_read_alias_highest_id() Michal Simek
2019-02-07  6:48   ` Heiko Schocher
2019-02-08  4:11   ` Simon Glass
2019-02-11 15:52   ` Heiko Schocher
2019-01-31 15:31 ` [U-Boot] [PATCH v2 4/7] dm: core: Add tests for dev_read_alias_highest_id() Michal Simek
2019-02-07  6:49   ` Heiko Schocher
2019-02-08  4:11   ` Simon Glass
2019-02-11 15:52   ` Heiko Schocher
2019-01-31 15:31 ` [U-Boot] [PATCH v2 5/7] i2c: dm: Record maximum id of devices before probing devices Michal Simek
2019-02-07  6:49   ` Heiko Schocher
2019-02-11 15:54   ` Heiko Schocher
2019-01-31 15:31 ` [U-Boot] [PATCH v2 6/7] i2c: Fill req_seq in i2c_post_bind() Michal Simek
2019-02-07  6:52   ` Heiko Schocher
2019-02-11 15:54   ` Heiko Schocher
2019-01-31 15:31 ` [U-Boot] [PATCH v2 7/7] i2c: mux: Generate longer i2c mux name Michal Simek
2019-02-02 15:00   ` Simon Glass
2019-02-07  6:55   ` Heiko Schocher
2019-02-11 15:55   ` Heiko Schocher
2019-02-02 14:10 ` [U-Boot] [PATCH v2 0/7] Align U-Boot I2C DM bus ID handling with Linux Simon Glass
2019-02-05  7:57   ` Michal Simek
2019-02-05  8:20     ` Heiko Schocher
2019-02-05  9:04       ` Michal Simek
2019-02-08  4:11     ` Simon Glass
2019-02-08  6:45       ` Michal Simek
2019-02-08  9:57 ` Heiko Schocher
2019-02-08 11:14   ` Michal Simek
2019-02-08 11:24     ` Michal Simek
2019-02-11  6:20       ` Heiko Schocher [this message]
2019-02-11  6:58         ` Michal Simek
2019-02-11  8:45           ` Heiko Schocher
2019-02-11 10:06             ` Michal Simek

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=05b0cbd3-e372-2e86-e325-c978246de4a4@denx.de \
    --to=hs@denx.de \
    --cc=u-boot@lists.denx.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox