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]>
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].
> 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].
For more options, visit https://groups.google.com/d/optout.