All of lore.kernel.org
 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 09:45:42 +0100	[thread overview]
Message-ID: <74f7a301-2901-ceba-67fe-0e24fc197e3c@denx.de> (raw)
In-Reply-To: <f81fbbb9-7ac4-b063-6c78-f4279ac4f9cc@xilinx.com>

Hello Michal,

Am 11.02.2019 um 07:58 schrieb Michal Simek:
> On 11. 02. 19 7:20, Heiko Schocher wrote:
>> 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?
> 
> Please take it directly.

Ok, done. If all builds fine now, I make a pull request for Tom,
thanks!

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  8:45 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
2019-02-11  6:58         ` Michal Simek
2019-02-11  8:45           ` Heiko Schocher [this message]
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=74f7a301-2901-ceba-67fe-0e24fc197e3c@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 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.