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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




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@xxxxxxxx> 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@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]
  Powered by Linux