Hi Micka,

Sorry for the necro-bump. I need to enable RTS on uart for rs485, and as 
far as I've read the only wat to do so is to use OMAP drivers as opposed to 
8250. How do I go about disabling 8250 and enabling OMAP?

uname -r returns:

4.4.30-ti-r64

Thanks for your time.

On Thursday, March 3, 2016 at 1:57:47 PM UTC+2, Micka wrote:
>
> Hi,
>
> I was the one that create the patch for the kernel 3.8 ^^ .
>
> And I figure it out how to make rs485 work on kernel 4.1 . It's rather 
> simple :
>
> uart1_pins: pinmux_uart1_pins {
> pinctrl-single,pins = <
> 0x184 0x20 /* P9.24 uart1_txd.uart1_txd  OUTPUT   OK*/
> 0x180 0x20 /* P9.26 uart1_rxd.uart1_rxd  INPUT   OK*/
> 0x1a4 0x07 /* Uart1_Txen -> GPIO3_19 OK*/
> >;
> };
>
> &uart1 {
> pinctrl-names = "default";
> pinctrl-0 = <&uart1_pins>;
> status = "okay";
> rts-gpio = <&gpio3 19 GPIO_ACTIVE_HIGH>;
> rs485-rts-active-high;
> rs485-rts-delay = <1 1>;
> linux,rs485-enabled-at-boot-time;
> };
>
> and of course disable  8250 and enable omap driver.
>
> to test it ? echo "test test test" > /dev/ttyO1
>
>
> that work for me ^^
>
>
>
> Le mer. 2 mars 2016 à 21:59, Richard Krehbiel <[email protected] 
> <javascript:>> a écrit :
>
>> USE KERNEL 3.8.13.  I spent days trying to figure out why 
>> 4.4.1/2/3-bone-rt-5 wasn't working.  Selecting the omap-serial driver 
>> (rather than the 8250-omap driver) won't work because some of the rs485 
>> patches didn't get included in later kernels.
>>
>> Since last Thursday, my job was getting RS485 working on BBB.
>>
>> I used a MikroElectrinika MikroBUS cape*, and an RS485 Click** plugged 
>> into mikroBUS socket 1.  I actually rather like this setup.
>>
>> *http://www.mikroe.com/click/mikrobus-cape/
>> **http://www.mikroe.com/click/rs485-3.3v/
>>
>> For mikroBUS socket 1, RX and TX pins are routed to the Sitara uart2, and 
>> the data direction control connects to J9 pin 14 (a.k.a gpio1[18], a.k.a. 
>> "echo 50 >/sys/class/gpio/exports").  It's only necessary to load the 
>> BB-UART2 overlay ("echo BB-UART2 >/sys/devices/capemgr.*/slots" or 
>> "capemgr.enable_partno=BB-UART2" in the uEnv.txt boot file) and do your 
>> programming.
>>
>> Use this for the RS485 setup structure:
>>
>> struct omap_serial_rs485 {
>>     __u32 flags;                            /* RS485 feature flags */
>> #define OMAP_SER_RS485_ENABLED (1 << 0)     /* If enabled */
>> #define OMAP_SER_RS485_RTS_ON_SEND (1 << 1) /* Logical level for
>>                                                RTS pin when
>>                                                sending */
>> #define OMAP_SER_RS485_RTS_AFTER_SEND (1 << 2) /* Logical level for
>>                                                   RTS pin after sent*/
>> #define OMAP_SER_RS485_RTS_BEFORE_SEND (1 << 3)
>> #define OMAP_SER_RS485_USE_GPIO (1 << 5)
>>     __u32 delay_rts_before_send; /* Delay before send (milliseconds) */
>>     __u32 delay_rts_after_send;  /* Delay after send (milliseconds) */
>>     __u32 gpio_pin;              /* GPIO Pin Index */
>>     __u32 padding[4];            /* Memory is cheap, new structs
>>                                     are a royal PITA .. */
>> };
>>
>> ... because the omap-serial rs485 patches slightly enhanced the regular 
>> struct serial_rs485 you find in sys/serial.h
>>
>> Here's my rs485 setup code (error checking omitted):
>>
>>         struct omap_serial_rs485 rs485;
>>         i = ioctl(m_fd, TIOCGRS485, &rs485); // whats' the current setup?
>>         rs485.flags |= OMAP_SER_RS485_ENABLED; // Enable RS485 mode
>>         rs485.flags |= OMAP_SER_RS485_USE_GPIO; // use a GPIO pin for
>>                                                 // direction control
>>         rs485.flags &= 
>> ~(OMAP_SER_RS485_RTS_AFTER_SEND|OMAP_SER_RS485_RTS_ON_SEND);
>>         rs485.delay_rts_before_send = 0; // No delay from RTS-assert 
>> before xmit
>>         rs485.delay_rts_after_send = 0; // No delay after xmit until 
>> RTS-negate
>>         rs485.gpio_pin = m_pin;         // select the direction control 
>> pin
>>
>>         i = ioctl(m_fd, TIOCSRS485, &rs485); // establish
>>
>> I built and installed kernel 3.8.13-bone79 this morning.   Finally I'm 
>> working well.
>>
>> On Friday, February 12, 2016 at 10:42:24 AM UTC-5, RobertCNelson wrote:
>>
>>> On Fri, Feb 12, 2016 at 9:33 AM, Taceant Omnes <[email protected]> 
>>> wrote: 
>>> > I would like to use RS485 with the BBB. 
>>> > 
>>> > root@beaglebone:~/test# uname -a 
>>> > Linux beaglebone 4.1.15-ti-r40 #1 SMP PREEMPT Thu Jan 7 23:32:17 UTC 
>>> > 2016 armv7l GNU/Linux 
>>> > 
>>> > I am using the kernel above. Its source code is at 
>>> > 
>>> https://github.com/RobertCNelson/linux-stable-rcn-ee/tree/4.1.15-ti-rt-r40 
>>>
>>> You need to rebuild and swap these two configs: 
>>>
>>> disable: CONFIG_SERIAL_8250_OMAP 
>>>
>>> enable: CONFIG_SERIAL_OMAP 
>>>
>>> > ... however it does not include the changes in this patch: 
>>> > 
>>> https://github.com/RobertCNelson/bb-kernel/blob/am33x-v3.8/patches/fixes/0007-omap-RS485-support-by-Michael-Musset.patch#L30
>>>  
>>>
>>> 485 is pretty much built-in to CONFIG_SERIAL_OMAP 
>>>
>>> It's the last thing still being talked about for integration into 
>>> CONFIG_SERIAL_8250_* for possibly 4.6.x 
>>>
>>> > Which kernel should I use that includes the changes in the patch or 
>>> > something similar? 
>>>
>>> and use this overlay as reference, as it's been reported to work with 
>>> that config chanage above.. 
>>>
>>>
>>> https://github.com/beagleboard/bb.org-overlays/blob/master/src/arm/BB-UART4-RS485-00A0.dts
>>>  
>>>
>>> Regards, 
>>>
>>> -- 
>>> Robert Nelson 
>>> https://rcn-ee.com/ 
>>>
>> -- 
>> For more options, visit http://beagleboard.org/discuss
>> --- 
>> You received this message because you are subscribed to the Google Groups 
>> "BeagleBoard" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] <javascript:>.
>> For more options, visit https://groups.google.com/d/optout.
>>
>

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beagleboard/f10d23a9-fbe5-4520-afd0-866b36bc6994%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to