Thread (1 message) 1 message, 1 author, 2017-03-23

Re: [RFC RESEND] serdev binding for QCA7000 UART driver

From: Rob Herring <hidden>
Date: 2017-03-23 15:55:25
Also in: linux-serial

On Thu, Mar 23, 2017 at 10:13 AM, Stefan Wahren [off-list ref] wrote:
Hi Rob,

Am 22.03.2017 um 21:32 schrieb Rob Herring:
quoted
On Mon, Mar 13, 2017 at 11:16 AM, Stefan Wahren [off-list ref] wrote:
quoted
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.
quoted
quoted
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.
quoted
quoted
        data-bits = <8>;
Nearly everything uses 8 bits, so this should be the default.
I will drop it completly.
quoted
quoted
        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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help