This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Linux/AM5728: UART7 configuration

Part Number: AM5728


Tool/software: Linux

Hi, All

I need to use uart7 to communicate with external devices, but my uart7 is not work.

The device tree has been configured as follows:

+&uart7 {
+       status = "okay";
+
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart7_pins_default>;
+};

&dra7_pmx_core {
        ...
+       uart7_pins_default: uart7_pins_default {
+               pinctrl-single,pins = <
+                       DRA7XX_CORE_IOPAD(0x34E4, PIN_INPUT_PULLUP  | MUX_MODE5)        /* uart7 rx AD9*/
+                       DRA7XX_CORE_IOPAD(0x34E8, PIN_OUTPUT_PULLUP | MUX_MODE5)        /* uart7 tx AF9*/
+               >;
+       };
};

Did I have any missing configuration?

BTW: Uart3 has interrupts-extended configuration. Does uart7 need this configuration? If yes how should I configure the parameters?

&uart3 {
    status = "okay";
    interrupts-extended = <&crossbar_mpu GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
                  <&dra7_pmx_core 0x3f8>;
};

Peter

Thanks

  • Hi Peter,

    You should configure UART7 pinmux in u-boot, as pinmux in kernel is not allowed because of errata i869: IO Glitches Can Occur When Changing IO Settings.

    Note that UART8 is enabled and used in AM572x TI EVM for Bluetooth, you can check how UART8 is pinmuxed in u-boot and enabled in kernel. Check the below files:

    u-boot-2017.01/board/ti/am57xx/mux_data.h
    linux-4.9.69/arch/arm/boot/dts/am57xx-evm-common.dtsi

    Once boot in user space, check also with devmem2/omapconf tool that your UART7 pinmux settings has NOT been overwritten by another code.

    Regards,
    Pavel
  • Thanks Pavel, I will try it.