devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC RESEND] serdev binding for QCA7000 UART driver
@ 2017-03-13 16:16 Stefan Wahren
       [not found] ` <b2273c4a-069b-0b9a-83d3-aed782920c34-eS4NqCHxEME@public.gmane.org>
  0 siblings, 1 reply; 5+ messages in thread
From: Stefan Wahren @ 2017-03-13 16:16 UTC (permalink / raw)
  To: Rob Herring, Frank Rowand
  Cc: Greg Kroah-Hartman, Jiri Slaby,
	devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-serial-u79uwXL29TY76Z2rM5mHXA

Hi Rob,

since serdev has been merged, i'm currently working on a
suitable ethernet driver for the QCA7000 [1]. In order to provide a plug
and play solution for the network interface i suggest the following
binding, which uses common properties for UART configuration:

* Qualcomm QCA7000 (Ethernet over UART protocol)

Note: The QCA7000 is also useable as a UART slave device.

Required properties:
- compatible        : Should be "qca,qca7000-uart"

Optional properties:
- local-mac-address : 6 bytes, Specifies MAC address
- current-speed     : Specifies current serial device speed in
                      bits per second (default = 115200)
- data-bits         : Specifies number of data bits (default = 8)
- use-parity        : If present, this enables the parity
                      error detection (default = off)
- odd-parity        : If present, this specifies that the parity
                      of each character must be odd (default = even)

Example:

/* Freescale i.MX28 UART */
auart0: serial@8006a000 {
    compatible = "fsl,imx28-auart", "fsl,imx23-auart";
    reg = <0x8006a000 0x2000>;
    pinctrl-names = "default";
    pinctrl-0 = <&auart0_2pins_a>;
    status = "okay";

    qca7000: ethernet {
        compatible = "qca,qca7000-uart";
        local-mac-address = [ A0 B0 C0 D0 E0 F0 ];
        current-speed = <38400>;
        data-bits = <8>;
        use-parity;
        odd-parity;
    };
};

Is it okay for you or do you want a different kind of configuration?
Are there any plans for parity handling?

Thanks
Stefan

P.S.: Sorry for the broken version

[1] - https://lwn.net/Articles/701225/
--
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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [RFC RESEND] serdev binding for QCA7000 UART driver
       [not found] ` <b2273c4a-069b-0b9a-83d3-aed782920c34-eS4NqCHxEME@public.gmane.org>
@ 2017-03-22 15:26   ` Stefan Wahren
  2017-03-22 20:32   ` Rob Herring
  1 sibling, 0 replies; 5+ messages in thread
From: Stefan Wahren @ 2017-03-22 15:26 UTC (permalink / raw)
  To: Rob Herring
  Cc: Frank Rowand, Greg Kroah-Hartman, Jiri Slaby,
	devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-serial-u79uwXL29TY76Z2rM5mHXA

Am 13.03.2017 um 17:16 schrieb Stefan Wahren:
> Hi Rob,
>
> since serdev has been merged, i'm currently working on a
> suitable ethernet driver for the QCA7000 [1]. In order to provide a plug
> and play solution for the network interface i suggest the following
> binding, which uses common properties for UART configuration:
>
> * Qualcomm QCA7000 (Ethernet over UART protocol)
>
> Note: The QCA7000 is also useable as a UART slave device.
>
> Required properties:
> - compatible        : Should be "qca,qca7000-uart"
>
> Optional properties:
> - local-mac-address : 6 bytes, Specifies MAC address
> - current-speed     : Specifies current serial device speed in
>                       bits per second (default = 115200)
> - data-bits         : Specifies number of data bits (default = 8)
> - use-parity        : If present, this enables the parity
>                       error detection (default = off)
> - odd-parity        : If present, this specifies that the parity
>                       of each character must be odd (default = even)
>
> Example:
>
> /* Freescale i.MX28 UART */
> auart0: serial@8006a000 {
>     compatible = "fsl,imx28-auart", "fsl,imx23-auart";
>     reg = <0x8006a000 0x2000>;
>     pinctrl-names = "default";
>     pinctrl-0 = <&auart0_2pins_a>;
>     status = "okay";
>
>     qca7000: ethernet {
>         compatible = "qca,qca7000-uart";
>         local-mac-address = [ A0 B0 C0 D0 E0 F0 ];
>         current-speed = <38400>;
>         data-bits = <8>;
>         use-parity;
>         odd-parity;
>     };
> };
>
> Is it okay for you or do you want a different kind of configuration?
> Are there any plans for parity handling?
>
> Thanks
> Stefan
>
> P.S.: Sorry for the broken version
>
> [1] - https://lwn.net/Articles/701225/

gentle ping ...
--
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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [RFC RESEND] serdev binding for QCA7000 UART driver
       [not found] ` <b2273c4a-069b-0b9a-83d3-aed782920c34-eS4NqCHxEME@public.gmane.org>
  2017-03-22 15:26   ` Stefan Wahren
@ 2017-03-22 20:32   ` Rob Herring
       [not found]     ` <CAL_JsqJS05gw80B4oUWZHEHOg5iPpwKie8XdBr82UD=7WB1cdg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
  1 sibling, 1 reply; 5+ messages in thread
From: Rob Herring @ 2017-03-22 20:32 UTC (permalink / raw)
  To: Stefan Wahren
  Cc: Frank Rowand, Greg Kroah-Hartman, Jiri Slaby,
	devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-serial-u79uwXL29TY76Z2rM5mHXA@public.gmane.org

On Mon, Mar 13, 2017 at 11:16 AM, Stefan Wahren <stefan.wahren-eS4NqCHxEME@public.gmane.org> wrote:
> Hi Rob,
>
> since serdev has been merged, i'm currently working on a
> suitable ethernet driver for the QCA7000 [1]. In order to provide a plug
> and play solution for the network interface i suggest the following
> binding, which uses common properties for UART configuration:
>
> * Qualcomm QCA7000 (Ethernet over UART protocol)
>
> Note: The QCA7000 is also useable as a UART slave device.

Should this be s/UART/SPI/ ?

>
> Required properties:
> - compatible        : Should be "qca,qca7000-uart"
>
> Optional properties:
> - local-mac-address : 6 bytes, Specifies MAC address
> - current-speed     : Specifies current serial device speed in
>                       bits per second (default = 115200)
> - data-bits         : Specifies number of data bits (default = 8)
> - use-parity        : If present, this enables the parity
>                       error detection (default = off)
> - odd-parity        : If present, this specifies that the parity
>                       of each character must be odd (default = even)
>
> Example:
>
> /* Freescale i.MX28 UART */
> auart0: serial@8006a000 {
>     compatible = "fsl,imx28-auart", "fsl,imx23-auart";
>     reg = <0x8006a000 0x2000>;
>     pinctrl-names = "default";
>     pinctrl-0 = <&auart0_2pins_a>;
>     status = "okay";
>
>     qca7000: ethernet {
>         compatible = "qca,qca7000-uart";
>         local-mac-address = [ A0 B0 C0 D0 E0 F0 ];
>         current-speed = <38400>;

Unless this device supports auto-baud (generally only AT command set
devices do), this is setup by a bootloader (and you have no way to
reset the device), or the speed changes with different firmware, I
don't think you should need this. Devices typically have a fixed,
initial baudrate that is known, so the driver should know it. Many
devices switch to a higher speed with some command which the driver
should also know. Unless there is some board limitation of the max
speed, then you shouldn't really need a baudrate property. And for max
baudrate, I added "max-speed".

>         data-bits = <8>;

Nearly everything uses 8 bits, so this should be the default.

>         use-parity;
>         odd-parity;

I don't think we need 2 properties here. "even-parity" and
"odd-parity" booleans should be enough to enable and set parity type.

>     };
> };
>
> Is it okay for you or do you want a different kind of configuration?
> Are there any plans for parity handling?

I don't have any. Patches welcome. :)

Rob
--
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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [RFC RESEND] serdev binding for QCA7000 UART driver
       [not found]     ` <CAL_JsqJS05gw80B4oUWZHEHOg5iPpwKie8XdBr82UD=7WB1cdg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
@ 2017-03-23 15:13       ` Stefan Wahren
       [not found]         ` <9127690c-3b6e-d60d-6af1-97bb9ad34628-eS4NqCHxEME@public.gmane.org>
  0 siblings, 1 reply; 5+ messages in thread
From: Stefan Wahren @ 2017-03-23 15:13 UTC (permalink / raw)
  To: Rob Herring
  Cc: Frank Rowand, Greg Kroah-Hartman, Jiri Slaby,
	devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-serial-u79uwXL29TY76Z2rM5mHXA@public.gmane.org

Hi Rob,

Am 22.03.2017 um 21:32 schrieb Rob Herring:
> On Mon, Mar 13, 2017 at 11:16 AM, Stefan Wahren <stefan.wahren-eS4NqCHxEME@public.gmane.org> wrote:
>> Hi Rob,
>>
>> since serdev has been merged, i'm currently working on a
>> suitable ethernet driver for the QCA7000 [1]. In order to provide a plug
>> and play solution for the network interface i suggest the following
>> binding, which uses common properties for UART configuration:
>>
>> * Qualcomm QCA7000 (Ethernet over UART protocol)
>>
>> Note: The QCA7000 is also useable as a UART slave device.
> Should this be s/UART/SPI/ ?

i rewrote this note in my second version below.

>
>> Required properties:
>> - compatible        : Should be "qca,qca7000-uart"
>>
>> Optional properties:
>> - local-mac-address : 6 bytes, Specifies MAC address
>> - current-speed     : Specifies current serial device speed in
>>                       bits per second (default = 115200)
>> - data-bits         : Specifies number of data bits (default = 8)
>> - use-parity        : If present, this enables the parity
>>                       error detection (default = off)
>> - odd-parity        : If present, this specifies that the parity
>>                       of each character must be odd (default = even)
>>
>> Example:
>>
>> /* Freescale i.MX28 UART */
>> auart0: serial@8006a000 {
>>     compatible = "fsl,imx28-auart", "fsl,imx23-auart";
>>     reg = <0x8006a000 0x2000>;
>>     pinctrl-names = "default";
>>     pinctrl-0 = <&auart0_2pins_a>;
>>     status = "okay";
>>
>>     qca7000: ethernet {
>>         compatible = "qca,qca7000-uart";
>>         local-mac-address = [ A0 B0 C0 D0 E0 F0 ];
>>         current-speed = <38400>;
> Unless this device supports auto-baud (generally only AT command set
> devices do), this is setup by a bootloader (and you have no way to
> reset the device), or the speed changes with different firmware, I
> don't think you should need this. Devices typically have a fixed,
> initial baudrate that is known, so the driver should know it.

Unfortunately the QCA7000 firmware can be freely preconfigured to a
fixed baudrate and there is no way to determine, because Ethernet frames
are send nearly directly to the UART and vice versa. I agree this isn't
best practice.

>>         data-bits = <8>;
> Nearly everything uses 8 bits, so this should be the default.

I will drop it completly.

>
>>         use-parity;
>>         odd-parity;
> I don't think we need 2 properties here. "even-parity" and
> "odd-parity" booleans should be enough to enable and set parity type.

Your suggestion is better, but it's possible to define wrongly both
which isn't nice per design.
Anyway i decide to drop this, too. So it could be implemented later.

So here is the new version:

* Qualcomm QCA7000 (Ethernet over UART protocol)

Note: This binding applies in case the QCA7000 is configured as a
UART slave device. It is possible to preconfigure the UART settings
of the QCA7000 firmware, which can't be changed during runtime.

Required properties:
- compatible        : Should be "qca,qca7000-uart"

Optional properties:
- local-mac-address : 6 bytes, Specifies MAC address
- current-speed     : Specifies the serial device speed in
                      bits per second (default = 115200), which is
                      predefined by the QCA7000 firmware configuration

Example:

/* Freescale i.MX28 UART */
auart0: serial@8006a000 {
    compatible = "fsl,imx28-auart", "fsl,imx23-auart";
    reg = <0x8006a000 0x2000>;
    pinctrl-names = "default";
    pinctrl-0 = <&auart0_2pins_a>;
    status = "okay";

    qca7000: ethernet {
        compatible = "qca,qca7000-uart";
        local-mac-address = [ A0 B0 C0 D0 E0 F0 ];
        current-speed = <38400>;
    };
};
--
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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [RFC RESEND] serdev binding for QCA7000 UART driver
       [not found]         ` <9127690c-3b6e-d60d-6af1-97bb9ad34628-eS4NqCHxEME@public.gmane.org>
@ 2017-03-23 15:55           ` Rob Herring
  0 siblings, 0 replies; 5+ messages in thread
From: Rob Herring @ 2017-03-23 15:55 UTC (permalink / raw)
  To: Stefan Wahren
  Cc: Frank Rowand, Greg Kroah-Hartman, Jiri Slaby,
	devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-serial-u79uwXL29TY76Z2rM5mHXA@public.gmane.org

On Thu, Mar 23, 2017 at 10:13 AM, Stefan Wahren <stefan.wahren-eS4NqCHxEME@public.gmane.org> wrote:
> Hi Rob,
>
> Am 22.03.2017 um 21:32 schrieb Rob Herring:
>> On Mon, Mar 13, 2017 at 11:16 AM, Stefan Wahren <stefan.wahren-eS4NqCHxEME@public.gmane.org> wrote:
>>> Hi Rob,
>>>
>>> since serdev has been merged, i'm currently working on a
>>> suitable ethernet driver for the QCA7000 [1]. In order to provide a plug
>>> and play solution for the network interface i suggest the following
>>> binding, which uses common properties for UART configuration:
>>>
>>> * Qualcomm QCA7000 (Ethernet over UART protocol)
>>>
>>> Note: The QCA7000 is also useable as a UART slave device.
>> Should this be s/UART/SPI/ ?
>
> i rewrote this note in my second version below.
>
>>
>>> Required properties:
>>> - compatible        : Should be "qca,qca7000-uart"
>>>
>>> Optional properties:
>>> - local-mac-address : 6 bytes, Specifies MAC address
>>> - current-speed     : Specifies current serial device speed in
>>>                       bits per second (default = 115200)
>>> - data-bits         : Specifies number of data bits (default = 8)
>>> - use-parity        : If present, this enables the parity
>>>                       error detection (default = off)
>>> - odd-parity        : If present, this specifies that the parity
>>>                       of each character must be odd (default = even)
>>>
>>> Example:
>>>
>>> /* Freescale i.MX28 UART */
>>> auart0: serial@8006a000 {
>>>     compatible = "fsl,imx28-auart", "fsl,imx23-auart";
>>>     reg = <0x8006a000 0x2000>;
>>>     pinctrl-names = "default";
>>>     pinctrl-0 = <&auart0_2pins_a>;
>>>     status = "okay";
>>>
>>>     qca7000: ethernet {
>>>         compatible = "qca,qca7000-uart";
>>>         local-mac-address = [ A0 B0 C0 D0 E0 F0 ];
>>>         current-speed = <38400>;
>> Unless this device supports auto-baud (generally only AT command set
>> devices do), this is setup by a bootloader (and you have no way to
>> reset the device), or the speed changes with different firmware, I
>> don't think you should need this. Devices typically have a fixed,
>> initial baudrate that is known, so the driver should know it.
>
> Unfortunately the QCA7000 firmware can be freely preconfigured to a
> fixed baudrate and there is no way to determine, because Ethernet frames
> are send nearly directly to the UART and vice versa. I agree this isn't
> best practice.
>
>>>         data-bits = <8>;
>> Nearly everything uses 8 bits, so this should be the default.
>
> I will drop it completly.
>
>>
>>>         use-parity;
>>>         odd-parity;
>> I don't think we need 2 properties here. "even-parity" and
>> "odd-parity" booleans should be enough to enable and set parity type.
>
> Your suggestion is better, but it's possible to define wrongly both
> which isn't nice per design.
> Anyway i decide to drop this, too. So it could be implemented later.

could also do 'parity = "(even|odd)";' or a line-config property with
"8N1", "7E1", etc. for values though I tend to prefer booleans and
discreet properties per setting.

>
> So here is the new version:
>
> * Qualcomm QCA7000 (Ethernet over UART protocol)
>
> Note: This binding applies in case the QCA7000 is configured as a
> UART slave device. It is possible to preconfigure the UART settings
> of the QCA7000 firmware, which can't be changed during runtime.
>
> Required properties:
> - compatible        : Should be "qca,qca7000-uart"
>
> Optional properties:
> - local-mac-address : 6 bytes, Specifies MAC address
> - current-speed     : Specifies the serial device speed in
>                       bits per second (default = 115200), which is
>                       predefined by the QCA7000 firmware configuration
>
> Example:
>
> /* Freescale i.MX28 UART */
> auart0: serial@8006a000 {
>     compatible = "fsl,imx28-auart", "fsl,imx23-auart";
>     reg = <0x8006a000 0x2000>;
>     pinctrl-names = "default";
>     pinctrl-0 = <&auart0_2pins_a>;
>     status = "okay";
>
>     qca7000: ethernet {
>         compatible = "qca,qca7000-uart";
>         local-mac-address = [ A0 B0 C0 D0 E0 F0 ];
>         current-speed = <38400>;
>     };
> };

Looks good to me.
--
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

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2017-03-23 15:55 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-03-13 16:16 [RFC RESEND] serdev binding for QCA7000 UART driver Stefan Wahren
     [not found] ` <b2273c4a-069b-0b9a-83d3-aed782920c34-eS4NqCHxEME@public.gmane.org>
2017-03-22 15:26   ` Stefan Wahren
2017-03-22 20:32   ` Rob Herring
     [not found]     ` <CAL_JsqJS05gw80B4oUWZHEHOg5iPpwKie8XdBr82UD=7WB1cdg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-03-23 15:13       ` Stefan Wahren
     [not found]         ` <9127690c-3b6e-d60d-6af1-97bb9ad34628-eS4NqCHxEME@public.gmane.org>
2017-03-23 15:55           ` Rob Herring

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).