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