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 0/3] i2c: improve s3c24x0 with High-speed and new SYS_I2C framework support
Date: Tue, 01 Oct 2013 08:36:51 +0200	[thread overview]
Message-ID: <524A6D83.2070909@denx.de> (raw)
In-Reply-To: <CAHfPSqBQVhcU0Z=8YD8vvN3JfwXyyXopaWtcKxQRfigsT1y4fg@mail.gmail.com>

Hello Naveen,

Am 01.10.2013 08:19, schrieb Naveen Krishna Ch:
> Hello Heiko,
>
> On 1 October 2013 11:35, Heiko Schocher<hs@denx.de>  wrote:
>> Hello Naveen,
>>
>> Am 30.09.2013 12:03, schrieb Naveen Krishna Ch:
>>
>>> Helo Heiko,
>>>
>>> Thanks for timely reply.
>>>
>>> On 30 September 2013 13:35, Heiko Schocher<hs@denx.de>   wrote:
>>>>
>>>> Hello Naveen,
>>>>
>>>> Am 30.09.2013 08:58, schrieb Naveen Krishna Chatradhi:
>>>>
>>>>> This patchset fixes few bugs in the existing s3c24x0.c code (standard
>>>>> i2c)
>>>>> and add support for High-speed i2c bus controller available on Exynos5
>>>>> SoCs
>>>>> from Samsung.
>>>>>
>>>>> Exynos5250 channels [0 ~ 3] can configured for I2C contoller or
>>>>>               new HSI2C controller
>>>>>               channels [3 ~ 7] are standard I2C controller channels
>>>>> Exynos5420 channels [0 ~ 3] are standard I2C controller channels and
>>>>>               channels [4 ~ 10] are High-speed controller channels
>>>>>
>>>>> Patchset:
>>>>> 1.  exynos: i2c: Fix i2c driver to handle NACKs properly
>>>>>        Improvements and fixes from Vadim Bendebury for standard i2c calls
>>>>>
>>>>> 2.  exynos: i2c: Change FDT bus setup code to enumerate ports correctly
>>>>>        FDT bus setup code from Simon Glass
>>>>>
>>>>> 3.  PATCH v5: i2c: s3c24xx: add hsi2c controller support
>>>>>        High-speed controller register description and defines new i2c
>>>>> read/write,
>>>>>        probe and set_bus calls.
>>>>>
>>>>>        This is been reviewed earlier at
>>>>>        http://lists.denx.de/pipermail/u-boot/2013-May/153245.html
>>>>>        Thanks for review and improvements from Vadim Bendebury.
>>>>>
>>>>> Question:
>>>>> 4. RFC: samsung: i2c: Enable new CONFIG_SYS_I2C framework
>>>>> I've tried to implement the new I2C multi bus framework in u-boot tree,
>>>>> taking tegra-i2c.c as reference.
[...]
>>> channel:
>>> --0----1----2----3------4--------5---------6-------7--------8-------9-------10
>>> controller: i2c, i2c, i2c, i2c, hsi2c, hsi2c, hsi2c, hsi2c, hsi2c, hsi2c,
>>> hsi2c.
>>> But the "i2c bus" command is showing the bus number according to the
>>> "name"
>>> string comparison.  Which seems wrong. Isn't it ??
>>
>>
>> Hmm.. you are right, seems that the compiler sorts them alphabetical ...
>> So, two ways:
>> - use another name, saying first a two digit for the channel ?
>> - or, use CONFIG_SYS_NUM_I2C_BUSES, CONFIG_SYS_I2C_DIRECT_BUS
>>    and CONFIG_SYS_I2C_BUSES as described in the README (grep
>>    for CONFIG_SYS_I2C_BUSES in include/configs and you will find
>>    some examples ...) and you can define, which adapter is on which
>>    i2c_bus number ...
> Will try and implement it this way.

Ok.

>>>>> c). What's the alternative for the
>>>>>       board_i2c_init(), i2c_get_bus_num_fdt(), i2c_reset_port_fdt().
>>>>>      "Functions to get the I2C bus number and reset I2C bus using FDT
>>>>> node"
>>>>>
>>>>>       I think, these functions are still needed.
>>>>
>>>>
>>>>
>>>> Hmm.. that needs a general discussion, how to use fdt and i2c I think.
>>>>
>>>> I would prefer a way (not really nowing, if it is possible for all
>>>> configurations) where, if using fdt, the DT gets parsed and the
>>>> availiable i2c buses gets created ... After that, "normal" i2c access
>>>> with i2c_set_bus_num(), i2c_read/write should be possible ... this is
>>>> currently not possible with the i2c framework, but should not be so hard
>>>> to do. Except the restriction, that it would not work in SPL case, or
>>>> before relocation for i2c buses announced through dt
>>>
>>> once i2c_init_board() is done board_i2c_init() is not quite needed
>>> using i2c_init_board we can avoid the relocation problem aswell.
>>>
>>> by the definition of i2c_get_bus_num() in drivers/i2c/i2c_core.c
>>>
>>> unsigned int i2c_get_bus_num(void)
>>> {
>>>           return gd->cur_i2c_bus;
>>> }
>>>
>>> we don't need a special function i2c_get_bus_num_fdt()
>>
>>
>> Ah, ok!
>>
>>
>>> IMHO, i2c_reset_port_fdt() is the only function to be discussed
>>
>>
>> And why is i2c_init() not good? Why must we have here a new function?
> That's right, even if there is a need for  i2c_reset_port_fdt().
> it must be a i2c-core function instead of being in a driver.
>>
>>
>>>> Define CONFIG_SYS_I2C_MAX_HOPS ->   CONFIG_SYS_I2C_DIRECT_BUS is not
>>>> defined
>>>> so i2c_bus[] is used in drivers/i2c/i2c_core.c. Define the fix i2c buses
>>>> in
>>>> the board config file with CONFIG_SYS_I2C_BUSES (if you have no fix
>>>> buses,
>>>> let this empty) and add a function in drivers/i2c/i2c_core.c, which adds
>>>> new i2c buses to i2c_bus[] after the fix buses and call this new
>>>> function,
>>>> from where you interpret the fdt ...
>>>
>>> I din't quite understood this.
>>> Can you point me to some readme or Doc or discussion Please.
>>
>>
>> just the U-Boot README ... The above was just a fast idea, how it
>> is possible to add i2c buses from the info in the fdt ...
>>
>> Here some theoretical code, how it could look like:
[...]
> Thanks for this explanation.

! It is just theoretical ... you must try it ;-)

>> And maybe here and there some adaptions for getting this running...
>> Thinking of i2c_set_bus_num(), there must be now a check for
>> i2c_fix_bus I think ...
>>
>> Adapt the README ...
>>
>> And then, from the place where you interpret the fdt, call if
>> you have the information for one i2c bus, i2c_add_one_bus() ...
>>
>> Not sure, if I overlooked here something ...
>
> Will try and do this.
> Mean while can we get the other 3 patches reviewed.
> Patch 1: http://patchwork.ozlabs.org/patch/278933/

This patch seems good to me, added to u-boot-i2c.git
as it seems it is a bugfix.

> Patch 2: http://patchwork.ozlabs.org/patch/278931/
> Patch 3: http://patchwork.ozlabs.org/patch/278930/

Think, they are OK, but they go after the next release to mainline,
as we are close to the next release ...

> They were tested without the change to the new i2c framework.

Thanks for your work!

bye,
Heiko
-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany

  reply	other threads:[~2013-10-01  6:36 UTC|newest]

Thread overview: 64+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-12 10:58 [U-Boot] [PATCH] i2c: s3c24xx: add hsi2c controller support Naveen Krishna Chatradhi
2013-03-12 13:11 ` Simon Glass
2013-03-12 14:03   ` Naveen Krishna Ch
2013-04-06  1:37 ` [U-Boot] [PATCH v4] " Naveen Krishna Chatradhi
2013-04-13  4:42   ` Naveen Krishna Ch
2013-04-15  5:48     ` Heiko Schocher
2013-04-15 12:48       ` Tom Rini
2013-04-26  3:08       ` Naveen Krishna Ch
2013-04-29  6:36         ` Minkyu Kang
2013-04-30  4:14         ` Heiko Schocher
2013-05-01 19:04           ` Naveen Krishna Ch
2013-05-02 10:06             ` Heiko Schocher
2013-05-02 17:52               ` Naveen Krishna Ch
2013-09-30  6:58 ` [U-Boot] [PATCH 0/3] i2c: improve s3c24x0 with High-speed and new SYS_I2C framework support Naveen Krishna Chatradhi
2013-09-30  6:58   ` [U-Boot] [PATCH 1/4] exynos: i2c: Fix i2c driver to handle NACKs properly Naveen Krishna Chatradhi
2013-10-02 13:51     ` Heiko Schocher
2013-09-30  6:58   ` [U-Boot] [PATCH 2/4] exynos: i2c: Change FDT bus setup code to enumerate ports correctly Naveen Krishna Chatradhi
2013-10-03 11:23     ` [U-Boot] [PATCH 2/3 v2] " Naveen Krishna Chatradhi
     [not found]     ` <1380524290-9644-3-git-send-email-ch.naveen-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2013-10-15  5:13       ` [PATCH 2/3 v3] " Naveen Krishna Chatradhi
2013-10-15  5:13         ` Naveen Krishna Chatradhi
2013-10-15 10:32     ` [U-Boot] [PATCH 2/3 v4] " Naveen Krishna Chatradhi
2013-10-17  6:31       ` [U-Boot] [U-Boot, 2/3, " Heiko Schocher
2013-09-30  6:58   ` [U-Boot] [PATCH v5 3/4] i2c: s3c24xx: add hsi2c controller support Naveen Krishna Chatradhi
2013-09-30  6:58   ` [U-Boot] [PATCH] RFC: samsung: i2c: Enable new CONFIG_SYS_I2C framework Naveen Krishna Chatradhi
2013-10-14  6:06     ` Heiko Schocher
2013-11-08  7:45       ` Piotr Wilczek
2013-11-08  7:59         ` Naveen Krishna Ch
2013-11-20 10:50     ` [U-Boot] [PATCH 2/2 v2] " Naveen Krishna Chatradhi
2013-11-25 11:28       ` [U-Boot] [PATCH] i2c: samsung: register i2c busses for Exynso5420 and Exynos5250 Naveen Krishna Chatradhi
2013-11-25 11:31         ` Naveen Krishna Ch
2013-12-05 11:26         ` [U-Boot] " Heiko Schocher
2013-12-05 12:21           ` Naveen Krishna Ch
2013-12-05 12:47             ` Heiko Schocher
2013-12-06  5:47               ` Naveen Krishna Ch
2013-12-06  6:16                 ` Heiko Schocher
2013-12-06  6:42         ` [U-Boot] [PATCH v2] " Naveen Krishna Chatradhi
2013-12-09  6:58           ` [U-Boot] [U-Boot, " Heiko Schocher
2013-09-30  8:05   ` [U-Boot] [PATCH 0/3] i2c: improve s3c24x0 with High-speed and new SYS_I2C framework support Heiko Schocher
2013-09-30 10:03     ` Naveen Krishna Ch
2013-10-01  6:05       ` Heiko Schocher
2013-10-01  6:19         ` Naveen Krishna Ch
2013-10-01  6:36           ` Heiko Schocher [this message]
2013-10-03 11:22   ` [U-Boot] [PATCH 1/3 v2] exynos: i2c: Fix i2c driver to handle NACKs properly Naveen Krishna Chatradhi
2013-10-14  6:29     ` Heiko Schocher
2013-10-15  4:48       ` Naveen Krishna Ch
2013-10-15  5:10         ` Heiko Schocher
2013-10-15  6:34           ` Lukasz Majewski
2013-10-15  5:12     ` [PATCH 1/3 v3] " Naveen Krishna Chatradhi
2013-10-15  6:06       ` Heiko Schocher
     [not found]         ` <525CDB51.70408-ynQEQJNshbs@public.gmane.org>
2013-10-15  6:12           ` Naveen Krishna Ch
2013-10-15  6:12             ` Naveen Krishna Ch
2013-10-15 10:31     ` [U-Boot] [PATCH 1/3 v4] " Naveen Krishna Chatradhi
2013-10-17  6:29       ` [U-Boot] [U-Boot, 1/3, " Heiko Schocher
2013-10-15  6:07   ` [U-Boot] [PATCH 1/3 v3] " Naveen Krishna Chatradhi
2013-10-15  6:07     ` [U-Boot] [PATCH 2/3 v3] exynos: i2c: Change FDT bus setup code to enumerate ports correctly Naveen Krishna Chatradhi
2013-10-15  6:07     ` [U-Boot] [PATCH 3/3 v6] i2c: s3c24xx: add hsi2c controller support Naveen Krishna Chatradhi
2013-10-15  6:40       ` Heiko Schocher
2013-10-15  9:34         ` Naveen Krishna Ch
2013-10-15  9:39           ` Heiko Schocher
2013-10-15  9:44             ` Naveen Krishna Ch
2013-10-03 11:24 ` [U-Boot] [PATCH 3/3 v2]: " Naveen Krishna Chatradhi
2013-10-15  5:13   ` [PATCH 3/3 v6] " Naveen Krishna Chatradhi
2013-10-15 10:32 ` [U-Boot] [PATCH 3/3 v7] " Naveen Krishna Chatradhi
2013-10-17  6:32   ` [U-Boot] [U-Boot, 3/3, " Heiko Schocher

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=524A6D83.2070909@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.