Re: [PATCH 4/4] serial: sccnxp: Add DT support

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

 



> On 07/31/2013 04:55 AM, Alexander Shiyan wrote:
> > Add DT support to the SCCNCP serial driver.
> 
> > diff --git a/Documentation/devicetree/bindings/tty/serial/sccnxp-serial.txt b/Documentation/devicetree/bindings/tty/serial/sccnxp-serial.txt
> 
> > +Optional properties:
> 
> > +- poll-interval: Poll interval time in nanoseconds.
> 
> Is this a standard/common property? If not, then it'd be best if the
> property name included the vendor-prefix "nxp,".

I am not sure about this, At least this property is used in gpio-keys-polled.

> > +- nxp,sccnxp-io-cfg: Array contains values for the emulated modem signals.
> > +  The number of values depends on the UART-number in the selected chip.
> > +  Each value should be composed according to the following rules:
> > +  (LINE1 << SIGNAL1) | ... | (LINEX << SIGNALX), where:
> > +   LINE - VALUE:
> > +    OP0 - 1
> ...
> > +    IP6 - 15
> > +   SIGNAL - VALUE:
> > +    DTR - 0
> ...
> > +    DIR - 24
> 
> I wonder that shouldn't be implemented using standard pinctrl bindings.
> I could see someone wanting to create a pinmuxing-based serial port
> multiplexing device, which would then need to rely on this node acting
> as a standard pin controller...

In this case pin-controller cannot be applied here.
The device has several lines of general purpose inputs and outputs, there is
no functional purpose of these lines as a modem signals. In the driver realized
only an emulation of these signals. That is, this property describes the trick.
I have no idea how to do this trick in another way.

> > +Example (Dual UART with direction control on OP0 & OP1):
> > +sc2892@10100000 {
> > +	compatible = "nxp,sc2892";
> > +	reg = <0x10100000 0x10>;
> > +	poll-interval = <10000>;
> > +	clocks = <&sc2892_clk>;
> > +	vcc-supply = <&sc2892_reg>;
> > +	nxp,sccnxp-io-cfg = <0x01000000 0x02000000>;
> 
> Why two cells for io-cfg when the shifts above imply everything fits
> into a single cell?
> 
> Oh I guess that "The number of values depends on the UART-number" means
> "number of UARTs in the chip", whereas I read it as "the ID of the UART
> within the chip"..
> 
> When there are multiple UARTs in the chip, should each UART have its own
> separate DT node? If not, how could you refer to each individual UART
> e.g. in order to set up the /aliases node?

This is my translation inaccuracies: io-cfg count should be == UART count.
Driver initializes all ports simultaneously (1 or 2). I cannot separate ports,
because IC registers mixed in one address space.

As variant, I can make the io-configuration of a single variable u64.
Or, at this stage, remove this option to add later.
Thanks.

---
��.n��������+%������w��{.n�����{��ǫ����{ay�ʇڙ���f���h������_�(�階�ݢj"��������G����?���&��





[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux PPP]     [Linux FS]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Linmodem]     [Device Mapper]     [Linux Kernel for ARM]

  Powered by Linux