Re: sc16is7xx problems

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

 



Anyone?

W dniu 31.12.2016 o 00:00, Andrzej Pietrasiewicz pisze:
> Dear All,
> 
> I have a problem with this (?) driver. I use a microcontroller as a generator
> of data sent over uart to sc16is762. The latter is connected to raspberry pi zero
> through i2c, and only channel 'A' is used in the chip.
> 
> When there is no data coming from the uC, using stty to configure the port works fine.
> Once the port is configured I can cat /dev/ttySC0 and then when data start coming,
> everything is ok.
> 
> But there are some problems:
> 
> - sometimes when 'cat' is stopped with ^C while data is still coming, the 'cat'
> hangs forever
> - very often 'cat' hangs when started while data is coming; strace shows it
> hangs on open; but when the stream of data is stopped and started again,
> open finally succeeds and cat continues as expected (unless the above happens)
> - when any of the above problems happen very often there are many repeated
> messages like this:
> 
> "sc16is7xx 1-004d: ttySC0: Possible RX FIFO overrun: 64"
>  
> or, less often, ".... ttySC0: Unexpected interrupt: 8".
> 
> To summarize: starting and stopping 'cat' while no data is coming is ok,
> but when data is coming then 'cat' tends to hang, stty also often hangs.
> 
> Example scenario without problems:
> # # no data coming
> # stty -F /dev/ttySC0 cs8 -cstopb -ixon raw speed 115200
> # cat /dev/ttySC0
> # # start transmitting data to sc16is762
> ABCDEF...........
> # # stop transmitting data
> #^C
> # # cat stops gracefully
> 
> Example scenario with problems:
> # # start transmitting data to sc16is762
> # stty -F /dev/ttySC0 cs8 -cstopb -ixon raw speed 115200
> # cat /dev/ttySC0
> # # nothing happens
> # # stop transmitting data and start again
> ABCDEF...........
> 
> 
> It seems that when a problem happens the sc16is7xx_set_termios() is
> called and stops at sc16is7xx_port_write() (the first port write
> in the function, right after parity, stop bits, read status mask
> and ignore mask are computed).
> 
> I am stuck with debugging it any further. Can anyone please help?
> I am comfortable with applying patches and testing, I can also
> add debug printks here and there, but need someone to point me
> in the right direction.
> 
> I am using kernel 4.9 from raspberry pi's github; it is Linus v4.9 + 114 patches,
> but none of them seems to touch the sc16is7xx.
> 
> My device tree overlay:
> 
> /dts-v1/;
> /plugin/;
> 
> / {
> 	compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
> 
> 	fragment@0 {
> 		target = <&i2c_arm>;
> 		__overlay__ {
> 			#address-cells = <1>;
> 			#size-cells = <0>;
> 			status = "okay";
> 
> 			sc16is752: sc16is752@48 {
> 				compatible = "nxp,sc16is752";
> 				reg = <0x48>; /* address */
> 				clocks = <&sc16is752_clk>;
> 				interrupt-parent = <&gpio>;
> 				interrupts = <24 2>; /* IRQ_TYPE_EDGE_FALLING */
> 				#gpio-cells = <2>;
> 
> 				sc16is752_clk: sc16is752_clk {
> 					compatible = "fixed-clock";
> 					#clock-cells = <0>;
> 					clock-frequency = <14745600>;
> 				};
> 			};
> 		};
> 	};
> 
> 
> 	__overrides__ {
> 		int_pin = <&sc16is752>,"interrupts:0";
> 		addr = <&sc16is752>,"reg:0";
> 	};
> 
> };
> 
> Regards,
> 
> Andrzej
> 
> PS. I am not subscribed to the list, co please Cc me when answering.
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-serial" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[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