From: Lee Jones <lee.jones@linaro.org>
To: Linus Walleij <linus.walleij@linaro.org>
Cc: linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, linus.walleij@stericsson.com,
arnd@arndb.de, grant.likely@secretlab.ca,
linux-i2c@vger.kernel.org
Subject: Re: [PATCH 09/14] i2c: Add Device Tree support to the Nomadik I2C driver
Date: Tue, 12 Jun 2012 08:34:00 +0100 [thread overview]
Message-ID: <4FD6F0E8.5040606@linaro.org> (raw)
In-Reply-To: <CACRpkdaMDbH4NkiHRLAfbJZ_j4QXbwg94bvaWsdYRPH+dSfc8Q@mail.gmail.com>
On 11/06/12 21:37, Linus Walleij wrote:
> On Mon, Jun 11, 2012 at 5:25 PM, Lee Jones<lee.jones@linaro.org> wrote:
>
>> As new users are
>> added, it is expected that they will be Device Tree compliant.
>> If this is the case, we will look up their initialisation values
>> by compatible entry, then apply them forthwith.
> (...)
>> +static struct nmk_i2c_controller u8500_i2c = {
>> + /*
>> + * slave data setup time, which is
>> + * 250 ns,100ns,10ns which is 14,6,2
>> + * respectively for a 48 Mhz
>> + * i2c clock
>> + */
>> + .slsu = 0xe,
>> + /* Tx FIFO threshold */
>> + .tft = 1,
>> + /* Rx FIFO threshold */
>> + .rft = 8,
>> + /* std. mode operation */
>> + .clk_freq = 100000,
>> + /* Slave response timeout(ms) */
>> + .timeout = 200,
>> + .sm = I2C_FREQ_MODE_FAST,
>> +};
>
> So why don't we create proper device tree bindings for the above platform
> data?
>
> For example several driver under
> Documentation/devicetree/bindings/i2c/*
> define the .clk_freq above as "clock-frequency"
>
> samsung-i2c even has this:
> samsung,i2c-sda-delay =<100>;
> samsung,i2c-max-bus-freq =<100000>;
>
> Where i2c-sda-delay corresponds to slsu above.
>
> I suspect .sm can be derived from the frequency so it
> is "FAST" whenever the frequency> 100000.
>
> This looks to me like a way to push the burden of doing the real
> device tree binding for the above to the next user.
> (Which will likely be me, so therefore I care a bit ...)
On the contrary. This will avoid any added Device Tree complexity and
ensure that no extra vendor specific bindings are required. When a new
user wishes to use the driver, all they (you) have to do is create a new
struct with the platform specific information and add the entry to
nmk_gpio_match[], simples.
I've even added the logic to extract any information you provide via
nmk_gpio_match[] for use as platform data. This keeps it both out of
platform code and the Device Tree binary. Everyone's a winner. :)
--
Lee Jones
Linaro ST-Ericsson Landing Team Lead
M: +44 77 88 633 515
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
WARNING: multiple messages have this Message-ID (diff)
From: Lee Jones <lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
To: Linus Walleij <linus.walleij-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
Cc: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linus.walleij-0IS4wlFg1OjSUeElwK9/Pw@public.gmane.org,
arnd-r2nGTMty4D4@public.gmane.org,
grant.likely-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org,
linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH 09/14] i2c: Add Device Tree support to the Nomadik I2C driver
Date: Tue, 12 Jun 2012 08:34:00 +0100 [thread overview]
Message-ID: <4FD6F0E8.5040606@linaro.org> (raw)
In-Reply-To: <CACRpkdaMDbH4NkiHRLAfbJZ_j4QXbwg94bvaWsdYRPH+dSfc8Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
On 11/06/12 21:37, Linus Walleij wrote:
> On Mon, Jun 11, 2012 at 5:25 PM, Lee Jones<lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> wrote:
>
>> As new users are
>> added, it is expected that they will be Device Tree compliant.
>> If this is the case, we will look up their initialisation values
>> by compatible entry, then apply them forthwith.
> (...)
>> +static struct nmk_i2c_controller u8500_i2c = {
>> + /*
>> + * slave data setup time, which is
>> + * 250 ns,100ns,10ns which is 14,6,2
>> + * respectively for a 48 Mhz
>> + * i2c clock
>> + */
>> + .slsu = 0xe,
>> + /* Tx FIFO threshold */
>> + .tft = 1,
>> + /* Rx FIFO threshold */
>> + .rft = 8,
>> + /* std. mode operation */
>> + .clk_freq = 100000,
>> + /* Slave response timeout(ms) */
>> + .timeout = 200,
>> + .sm = I2C_FREQ_MODE_FAST,
>> +};
>
> So why don't we create proper device tree bindings for the above platform
> data?
>
> For example several driver under
> Documentation/devicetree/bindings/i2c/*
> define the .clk_freq above as "clock-frequency"
>
> samsung-i2c even has this:
> samsung,i2c-sda-delay =<100>;
> samsung,i2c-max-bus-freq =<100000>;
>
> Where i2c-sda-delay corresponds to slsu above.
>
> I suspect .sm can be derived from the frequency so it
> is "FAST" whenever the frequency> 100000.
>
> This looks to me like a way to push the burden of doing the real
> device tree binding for the above to the next user.
> (Which will likely be me, so therefore I care a bit ...)
On the contrary. This will avoid any added Device Tree complexity and
ensure that no extra vendor specific bindings are required. When a new
user wishes to use the driver, all they (you) have to do is create a new
struct with the platform specific information and add the entry to
nmk_gpio_match[], simples.
I've even added the logic to extract any information you provide via
nmk_gpio_match[] for use as platform data. This keeps it both out of
platform code and the Device Tree binary. Everyone's a winner. :)
--
Lee Jones
Linaro ST-Ericsson Landing Team Lead
M: +44 77 88 633 515
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
WARNING: multiple messages have this Message-ID (diff)
From: lee.jones@linaro.org (Lee Jones)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 09/14] i2c: Add Device Tree support to the Nomadik I2C driver
Date: Tue, 12 Jun 2012 08:34:00 +0100 [thread overview]
Message-ID: <4FD6F0E8.5040606@linaro.org> (raw)
In-Reply-To: <CACRpkdaMDbH4NkiHRLAfbJZ_j4QXbwg94bvaWsdYRPH+dSfc8Q@mail.gmail.com>
On 11/06/12 21:37, Linus Walleij wrote:
> On Mon, Jun 11, 2012 at 5:25 PM, Lee Jones<lee.jones@linaro.org> wrote:
>
>> As new users are
>> added, it is expected that they will be Device Tree compliant.
>> If this is the case, we will look up their initialisation values
>> by compatible entry, then apply them forthwith.
> (...)
>> +static struct nmk_i2c_controller u8500_i2c = {
>> + /*
>> + * slave data setup time, which is
>> + * 250 ns,100ns,10ns which is 14,6,2
>> + * respectively for a 48 Mhz
>> + * i2c clock
>> + */
>> + .slsu = 0xe,
>> + /* Tx FIFO threshold */
>> + .tft = 1,
>> + /* Rx FIFO threshold */
>> + .rft = 8,
>> + /* std. mode operation */
>> + .clk_freq = 100000,
>> + /* Slave response timeout(ms) */
>> + .timeout = 200,
>> + .sm = I2C_FREQ_MODE_FAST,
>> +};
>
> So why don't we create proper device tree bindings for the above platform
> data?
>
> For example several driver under
> Documentation/devicetree/bindings/i2c/*
> define the .clk_freq above as "clock-frequency"
>
> samsung-i2c even has this:
> samsung,i2c-sda-delay =<100>;
> samsung,i2c-max-bus-freq =<100000>;
>
> Where i2c-sda-delay corresponds to slsu above.
>
> I suspect .sm can be derived from the frequency so it
> is "FAST" whenever the frequency> 100000.
>
> This looks to me like a way to push the burden of doing the real
> device tree binding for the above to the next user.
> (Which will likely be me, so therefore I care a bit ...)
On the contrary. This will avoid any added Device Tree complexity and
ensure that no extra vendor specific bindings are required. When a new
user wishes to use the driver, all they (you) have to do is create a new
struct with the platform specific information and add the entry to
nmk_gpio_match[], simples.
I've even added the logic to extract any information you provide via
nmk_gpio_match[] for use as platform data. This keeps it both out of
platform code and the Device Tree binary. Everyone's a winner. :)
--
Lee Jones
Linaro ST-Ericsson Landing Team Lead
M: +44 77 88 633 515
Linaro.org ? Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
next prev parent reply other threads:[~2012-06-12 7:34 UTC|newest]
Thread overview: 234+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-11 15:24 [PATCH 00/14] Final (large) batch of Snowball Device Tree Enablement Lee Jones
2012-06-11 15:24 ` Lee Jones
2012-06-11 15:24 ` [PATCH 01/14] rtc: ab8500-rtc: IRQF_ONESHOT when requesting a threaded IRQ Lee Jones
2012-06-11 15:24 ` Lee Jones
2012-06-11 15:31 ` Arnd Bergmann
2012-06-11 15:31 ` Arnd Bergmann
2012-06-11 15:37 ` Lee Jones
2012-06-11 15:37 ` Lee Jones
2012-06-11 15:51 ` Greg Kroah-Hartman
2012-06-11 15:51 ` Greg Kroah-Hartman
2012-06-11 16:01 ` Lee Jones
2012-06-11 16:01 ` Lee Jones
2012-06-11 20:54 ` [rtc-linux] " Linus Walleij
2012-06-11 20:54 ` Linus Walleij
2012-06-12 8:57 ` Lee Jones
2012-06-12 8:57 ` Lee Jones
2012-06-13 22:25 ` Andrew Morton
2012-06-13 22:25 ` Andrew Morton
2012-06-14 7:14 ` Lee Jones
2012-06-14 7:14 ` Lee Jones
2012-06-14 7:30 ` Andrew Morton
2012-06-14 7:30 ` Andrew Morton
2012-06-14 8:02 ` Lee Jones
2012-06-14 8:02 ` Lee Jones
2012-06-11 15:24 ` [PATCH 02/14] rtc: Ensure correct probing of the AB8500 RTC when Device Tree is enabled Lee Jones
2012-06-11 15:24 ` Lee Jones
2012-06-11 20:56 ` [rtc-linux] " Linus Walleij
2012-06-11 20:56 ` Linus Walleij
2012-07-02 15:23 ` Lee Jones
2012-07-02 15:23 ` Lee Jones
2012-06-11 15:24 ` [PATCH 03/14] mfd: ab8500-gpadc: Enable IRQF_ONESHOT when requesting a threaded IRQ Lee Jones
2012-06-11 15:24 ` Lee Jones
2012-06-11 20:54 ` Linus Walleij
2012-06-11 20:54 ` Linus Walleij
2012-06-12 8:58 ` Lee Jones
2012-06-12 8:58 ` Lee Jones
2012-06-11 15:24 ` [PATCH 04/14] mfd: Remove redundant Kconfig entry Lee Jones
2012-06-11 15:24 ` Lee Jones
2012-06-11 20:57 ` Linus Walleij
2012-06-11 20:57 ` Linus Walleij
2012-06-11 15:24 ` [PATCH 05/14] mfd: Enable DT probing of the DB8500 PRCMU Lee Jones
2012-06-11 15:24 ` Lee Jones
2012-06-11 20:58 ` Linus Walleij
2012-06-11 20:58 ` Linus Walleij
2012-06-29 14:47 ` Samuel Ortiz
2012-06-29 14:47 ` Samuel Ortiz
2012-06-11 15:24 ` [PATCH 06/14] mfd: Initialise the DB8500 PRCMU driver at core_initcall time Lee Jones
2012-06-11 15:24 ` Lee Jones
2012-06-11 21:01 ` Linus Walleij
2012-06-11 21:01 ` Linus Walleij
2012-06-12 8:11 ` Lee Jones
2012-06-12 8:11 ` Lee Jones
2012-06-12 8:35 ` Lee Jones
2012-06-12 8:35 ` Lee Jones
2012-06-12 12:59 ` Arnd Bergmann
2012-06-12 12:59 ` Arnd Bergmann
2012-06-12 13:23 ` Lee Jones
2012-06-12 13:23 ` Lee Jones
2012-06-12 14:49 ` Arnd Bergmann
2012-06-12 14:49 ` Arnd Bergmann
2012-06-12 15:39 ` Lee Jones
2012-06-12 15:39 ` Lee Jones
2012-06-18 8:32 ` Lee Jones
2012-06-18 8:32 ` Lee Jones
2012-06-29 14:48 ` Samuel Ortiz
2012-06-29 14:48 ` Samuel Ortiz
2012-06-11 15:25 ` [PATCH 07/14] mfd: Initialise the AB8500 " Lee Jones
2012-06-11 15:25 ` Lee Jones
2012-06-11 21:03 ` Linus Walleij
2012-06-11 21:03 ` Linus Walleij
2012-06-12 8:13 ` Lee Jones
2012-06-12 8:13 ` Lee Jones
2012-06-12 8:37 ` Lee Jones
2012-06-12 8:37 ` Lee Jones
2012-06-29 14:51 ` Samuel Ortiz
2012-06-29 14:51 ` Samuel Ortiz
2012-06-11 15:25 ` [PATCH 08/14] mfd: Add IRQ domain support for the AB8500 Lee Jones
2012-06-11 15:25 ` Lee Jones
2012-06-11 21:33 ` Linus Walleij
2012-06-11 21:33 ` Linus Walleij
2012-06-12 8:01 ` Lee Jones
2012-06-12 8:01 ` Lee Jones
2012-06-14 18:32 ` Mark Brown
2012-06-14 18:32 ` Mark Brown
2012-06-15 12:49 ` Lee Jones
2012-06-15 12:49 ` Lee Jones
2012-06-18 9:02 ` Lee Jones
2012-06-18 9:02 ` Lee Jones
2012-06-18 9:32 ` Mark Brown
2012-06-18 9:32 ` Mark Brown
2012-06-18 10:20 ` Russell King - ARM Linux
2012-06-18 10:20 ` Russell King - ARM Linux
2012-06-18 18:56 ` Mark Brown
2012-06-18 18:56 ` Mark Brown
2012-06-20 13:00 ` Lee Jones
2012-06-20 13:00 ` Lee Jones
2012-06-21 7:37 ` Linus Walleij
2012-06-21 7:37 ` Linus Walleij
2012-06-26 9:04 ` Lee Jones
2012-06-26 9:04 ` Lee Jones
2012-06-20 9:12 ` Linus Walleij
2012-06-20 9:12 ` Linus Walleij
2012-06-11 15:25 ` [PATCH 09/14] i2c: Add Device Tree support to the Nomadik I2C driver Lee Jones
2012-06-11 15:25 ` Lee Jones
2012-06-11 19:05 ` Wolfram Sang
2012-06-11 19:05 ` Wolfram Sang
2012-06-12 7:23 ` Lee Jones
2012-06-12 7:23 ` Lee Jones
2012-06-12 8:52 ` Lee Jones
2012-06-12 8:52 ` Lee Jones
2012-06-12 8:52 ` Lee Jones
2012-06-12 8:57 ` Wolfram Sang
2012-06-12 8:57 ` Wolfram Sang
2012-06-12 8:57 ` Wolfram Sang
2012-06-11 20:37 ` Linus Walleij
2012-06-11 20:37 ` Linus Walleij
2012-06-11 20:37 ` Linus Walleij
2012-06-12 7:34 ` Lee Jones [this message]
2012-06-12 7:34 ` Lee Jones
2012-06-12 7:34 ` Lee Jones
2012-06-13 5:40 ` Linus Walleij
2012-06-13 5:40 ` Linus Walleij
2012-06-13 5:40 ` Linus Walleij
2012-06-13 7:01 ` Lee Jones
2012-06-13 7:01 ` Lee Jones
2012-06-13 7:01 ` Lee Jones
2012-06-13 8:12 ` Linus Walleij
2012-06-13 8:12 ` Linus Walleij
2012-06-13 12:28 ` Lee Jones
2012-06-13 12:28 ` Lee Jones
2012-06-13 12:28 ` Lee Jones
2012-06-14 18:36 ` Mark Brown
2012-06-14 18:36 ` Mark Brown
2012-06-14 18:36 ` Mark Brown
2012-06-14 18:46 ` Mark Brown
2012-06-14 18:46 ` Mark Brown
2012-06-14 18:46 ` Mark Brown
2012-06-14 18:59 ` Lee Jones
2012-06-14 18:59 ` Lee Jones
2012-06-14 18:57 ` Lee Jones
2012-06-14 18:57 ` Lee Jones
2012-06-14 18:57 ` Lee Jones
2012-06-15 9:32 ` Mark Brown
2012-06-15 9:32 ` Mark Brown
2012-06-15 9:32 ` Mark Brown
2012-06-15 10:00 ` Lee Jones
2012-06-15 10:00 ` Lee Jones
2012-06-15 10:32 ` Russell King - ARM Linux
2012-06-15 10:32 ` Russell King - ARM Linux
2012-06-15 11:43 ` Lee Jones
2012-06-15 11:43 ` Lee Jones
2012-06-15 11:43 ` Lee Jones
2012-06-13 16:07 ` [PATCH 1/3] " Lee Jones
2012-06-13 16:07 ` Lee Jones
2012-06-13 16:07 ` Lee Jones
2012-06-14 17:12 ` Linus Walleij
2012-06-14 17:12 ` Linus Walleij
2012-06-14 17:12 ` Linus Walleij
2012-06-15 9:02 ` Lee Jones
2012-06-15 9:02 ` Lee Jones
2012-06-15 9:02 ` Lee Jones
[not found] ` <CAE2-_9rRYxjU9QQgtBv9ReMY5x+oRiJG1cDQahYHanjDrwVUYA@mail.gmail.com>
2012-06-15 11:50 ` Fwd: " Srinidhi Kasagar
2012-06-15 11:50 ` Srinidhi Kasagar
2012-06-15 11:50 ` Srinidhi Kasagar
2012-06-15 12:45 ` Lee Jones
2012-06-15 12:45 ` Lee Jones
2012-06-15 12:45 ` Lee Jones
2012-06-15 13:05 ` Srinidhi Kasagar
2012-06-15 13:05 ` Srinidhi Kasagar
2012-06-15 13:05 ` Srinidhi Kasagar
2012-06-15 13:18 ` Lee Jones
2012-06-15 13:18 ` Lee Jones
2012-06-15 13:18 ` Lee Jones
2012-06-15 13:37 ` Srinidhi Kasagar
2012-06-15 13:37 ` Srinidhi Kasagar
2012-06-15 13:37 ` Srinidhi Kasagar
2012-06-15 13:58 ` Lee Jones
2012-06-15 13:58 ` Lee Jones
2012-06-15 13:58 ` Lee Jones
2012-06-17 17:43 ` Linus Walleij
2012-06-17 17:43 ` Linus Walleij
2012-06-17 17:43 ` Linus Walleij
2012-06-18 7:18 ` Lee Jones
2012-06-18 7:18 ` Lee Jones
2012-06-18 7:18 ` Lee Jones
2012-06-18 7:58 ` Srinidhi Kasagar
2012-06-18 7:58 ` Srinidhi Kasagar
2012-06-18 7:58 ` Srinidhi Kasagar
2012-06-18 8:41 ` Lee Jones
2012-06-18 8:41 ` Lee Jones
2012-06-18 8:41 ` Lee Jones
2012-06-13 16:08 ` [PATCH 2/3] ARM: ux500: Add i2c configurations to the Device Tree for DB8500 based devices Lee Jones
2012-06-13 16:08 ` Lee Jones
2012-06-14 17:13 ` Linus Walleij
2012-06-14 17:13 ` Linus Walleij
2012-06-14 17:13 ` Linus Walleij
2012-06-18 11:29 ` Linus Walleij
2012-06-18 11:29 ` Linus Walleij
2012-06-18 11:29 ` Linus Walleij
2012-06-18 11:37 ` Lee Jones
2012-06-18 11:37 ` Lee Jones
2012-06-18 11:37 ` Lee Jones
2012-06-13 16:08 ` [PATCH 3/3] Documentation: Device Tree binding information for i2c-nomadik driver Lee Jones
2012-06-13 16:08 ` Lee Jones
2012-06-13 16:08 ` Lee Jones
2012-06-14 17:13 ` Linus Walleij
2012-06-14 17:13 ` Linus Walleij
2012-06-14 17:13 ` Linus Walleij
2012-06-11 15:25 ` [PATCH 10/14] Input: Add Device Tree support to the ab8500-ponkey driver Lee Jones
2012-06-11 15:25 ` Lee Jones
2012-06-11 15:25 ` [PATCH 11/14] usb: otg: Enable probing of the ab8500 during a Device Tree boot Lee Jones
2012-06-11 15:25 ` Lee Jones
2012-06-11 21:39 ` Linus Walleij
2012-06-11 21:39 ` Linus Walleij
2012-07-02 15:24 ` Lee Jones
2012-07-02 15:24 ` Lee Jones
2012-06-11 15:25 ` [PATCH 12/14] ARM: ux500: Correctly reference IRQs supplied by the AB8500 from Device Tree Lee Jones
2012-06-11 15:25 ` Lee Jones
2012-06-11 21:41 ` Linus Walleij
2012-06-11 21:41 ` Linus Walleij
2012-06-11 15:25 ` [PATCH 13/14] ARM: ux500: Enable the AB8500 RTC for all DT:ed DB8500 based devices Lee Jones
2012-06-11 15:25 ` Lee Jones
2012-06-11 21:42 ` Linus Walleij
2012-06-11 21:42 ` Linus Walleij
2012-06-11 15:25 ` [PATCH 14/14] ARM: ux500: Move rtc-pl031 registration to Device Tree when enabled Lee Jones
2012-06-11 15:25 ` Lee Jones
2012-06-11 21:43 ` Linus Walleij
2012-06-11 21:43 ` Linus Walleij
2012-06-12 8:03 ` Lee Jones
2012-06-12 8:03 ` Lee Jones
2012-06-12 14:32 ` Linus Walleij
2012-06-12 14:32 ` Linus Walleij
2012-06-12 14:44 ` Lee Jones
2012-06-12 14:44 ` Lee Jones
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=4FD6F0E8.5040606@linaro.org \
--to=lee.jones@linaro.org \
--cc=arnd@arndb.de \
--cc=grant.likely@secretlab.ca \
--cc=linus.walleij@linaro.org \
--cc=linus.walleij@stericsson.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-i2c@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
/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.