From: Cyrille Pitchen <cyrille.pitchen-AIFe0yeh4nAAvxtiuMwx3w@public.gmane.org>
To: Lee Jones <lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
Cc: nicolas.ferre-AIFe0yeh4nAAvxtiuMwx3w@public.gmane.org,
boris.brezillon-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org,
alexandre.belloni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org,
sameo-VuQAYsv1563Yd54FQh9/CA@public.gmane.org,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
pawel.moll-5wv7dgnIgG8@public.gmane.org,
mark.rutland-5wv7dgnIgG8@public.gmane.org,
ijc+devicetree-KcIKpvwj1kUDXYZnReoRVg@public.gmane.org,
galak-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org,
devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH v4 1/2] mfd: devicetree: add bindings for Atmel Flexcom
Date: Wed, 22 Jul 2015 12:23:11 +0200 [thread overview]
Message-ID: <55AF6F0F.30100@atmel.com> (raw)
In-Reply-To: <20150721151035.GK3061@x1>
Le 21/07/2015 17:10, Lee Jones a écrit :
> On Tue, 21 Jul 2015, Cyrille Pitchen wrote:
>
>> Hi Lee,
>>
>> Le 21/07/2015 11:09, Lee Jones a écrit :
>>> On Mon, 22 Jun 2015, Cyrille Pitchen wrote:
>> ...
>>>> +- atmel,flexcom-mode: shall be a string among { "spi", "usart", "i2c", "twi" }.
>>>> + "i2c" and "twi" are synonymous.
>>>
>>> Please use a numerical value instead. You can then define it in
>>> include/dt-bindings/*
>>>
>>> This is only required if you supply more than one child node. Is that
>>> the plan? I ask because you only have one child node in the example
>>> below.
>>>
>> The "atmel,flexcom-mode" property is always required. The reset value of the
>> Operating Mode bit field inside the Flexcom Mode Register is 0 for "no serial
>> device". So none of the 3 embedded serial devices is clocked and all of their
>> registers are inaccessible (read as zero).
>> Before using any of the 3 serial devices, the Operating Mode must be set
>> accordingly by updating the Mode Register. Once done, only the selected serial
>> device is clocked. Also the external I/O lines of the Flexcom are muxed to
>> reach the selected serial device.
>>
>> The muxing is given by the following table:
>>
>> Flexcom pin USART pin SPI pin I2C pin
>> IO0 TXD MOSI TWD
>> IO1 RXD MISO TWCK
>> IO2 SCK SPCK -
>> IO3 CTS NPCS0 -
>> IO4 RTS NPCS1 -
>>
>>
>> Bus conflicting configuration:
>> ______________________________________
>> | Flexcom |
>> | _____ _____ _____ |
>> | | |__CLK__| SPI |__I/O__| | | ___________ ___________
>> | | | |_____| | | | | SPI Slave | | I2C Slave |
>> | | CLK | | I/O | | |___________| |___________|
>> |_| MUX | _____ | MUX |__|_________|________________|
>> | | |__CLK__| I2C |__I/O__| | | shared bus
>> | |_____| |_____| |_____| |
>> |______________________________________|
>>
>>
>> For instance, it is very unlikely to connect both I2C and SPI slaves to
>> the very same Flexcom because I/O lines are shared. The operating mode is
>> selected once for all during the boot and will never change during runtime.
>> That's why the Flexcom DT node should have exactly one child.
>
> You have contradicted your self here. Firstly you say that the
> "atmel,flexcom-mode" property is always required, then you say that
> the DT node should only ever have one child. If the latter is true,
> then you can infer which mode Flexcom needs to be in by which node is
> present.
>
OK, you're right. So on the next series (v6), I will simply remove the
"atmel,flexcom-mode" property from the DT bindings. Then, the driver will
look for the first available child node which "compatible" property contains
one of the substrings "-usart", "-spi" or "-i2c", setting the Flexcom operating
mode accordingly. This child node should be unique.
>>>> +Example:
>>>> +
>>>> +flx0: flexcom@f8034000 {
>>>
>>> What references this node? If nothing, then you can remove the label.
>> OK, I will remove the label in the next series.
>>>
>>>> + compatible = "atmel,sama5d2-flexcom";
>>>> + reg = <0xf8034000 0x200>;
>>>> + clocks = <&flx0_clk>;
>>>> + #address-cells = <1>;
>>>> + #size-cells = <1>;
>>>> + ranges = <0x0 0xf8034000 0x800>;
>>>> + atmel,flexcom-mode = "spi";
>>>> +
>>>> + spi@f8034400 {
>>>> + compatible = "atmel,at91rm9200-spi";
>>>> + reg = <0x400 0x200>;
>>>> + interrupts = <19 IRQ_TYPE_LEVEL_HIGH 7>;
>>>> + pinctrl-names = "default";
>>>> + pinctrl-0 = <&pinctrl_flx0_ioset1>;
>>>> + #address-cells = <1>;
>>>> + #size-cells = <0>;
>>>> + clocks = <&flx0_clk>;
>>>> + clock-names = "spi_clk";
>>>> + atmel,fifo-size = <32>;
>>>> +
>>>> + mtd_dataflash@0 {
>>>> + compatible = "atmel,at25f512b";
>>>> + reg = <0>;
>>>> + spi-max-frequency = <20000000>;
>>>> + };
>>>> + };
>>>> +};
>>>
>>
>> Thanks for your review :)
>>
>> Best Regards,
>>
>> Cyrille
>
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2015-07-22 10:23 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-22 10:12 [PATCH v4 0/2] mfd: flexcom: add a driver for Flexcom Cyrille Pitchen
[not found] ` <cover.1434967670.git.cyrille.pitchen-AIFe0yeh4nAAvxtiuMwx3w@public.gmane.org>
2015-06-22 10:12 ` [PATCH v4 1/2] mfd: devicetree: add bindings for Atmel Flexcom Cyrille Pitchen
[not found] ` <337ab4936bd6ec2f24c42e2f8f363df21f491a02.1434967670.git.cyrille.pitchen-AIFe0yeh4nAAvxtiuMwx3w@public.gmane.org>
2015-07-21 9:09 ` Lee Jones
2015-07-21 14:15 ` Cyrille Pitchen
2015-07-21 15:10 ` Lee Jones
2015-07-22 10:23 ` Cyrille Pitchen [this message]
2015-06-22 10:12 ` [PATCH v4 2/2] mfd: flexcom: add a driver for Atmel Flexible Serial Communication Unit Cyrille Pitchen
[not found] ` <dddf7a6d750967785255733a7931780b3c465d5f.1434967670.git.cyrille.pitchen-AIFe0yeh4nAAvxtiuMwx3w@public.gmane.org>
2015-06-24 14:24 ` Lee Jones
2015-06-25 10:11 ` Cyrille Pitchen
[not found] ` <558BD3B8.10709-AIFe0yeh4nAAvxtiuMwx3w@public.gmane.org>
2015-07-20 16:11 ` Cyrille Pitchen
2015-07-21 9:18 ` 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=55AF6F0F.30100@atmel.com \
--to=cyrille.pitchen-aife0yeh4naavxtiumwx3w@public.gmane.org \
--cc=alexandre.belloni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org \
--cc=boris.brezillon-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org \
--cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=galak-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org \
--cc=ijc+devicetree-KcIKpvwj1kUDXYZnReoRVg@public.gmane.org \
--cc=lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=mark.rutland-5wv7dgnIgG8@public.gmane.org \
--cc=nicolas.ferre-AIFe0yeh4nAAvxtiuMwx3w@public.gmane.org \
--cc=pawel.moll-5wv7dgnIgG8@public.gmane.org \
--cc=robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
--cc=sameo-VuQAYsv1563Yd54FQh9/CA@public.gmane.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).