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.

AM5718-HIREL: GPIO G19 can't control

Part Number: AM5718-HIREL
Other Parts Discussed in Thread: AM5718, AM5728

Tool/software:

Hello experts:

       I use TI's am5718 as the processor, SDK version: ti-processor-sdk-linux-am57xx-evm-04.03.00.05.I have successfully applied Ethernet, serial port, SPI, I2C, GPIO, etc. on my own board.

Now I want to use the G19, named DCAN1_RX pin, as GPIO,与其他GPIO一样,配置了mux_data.h如下:

I also configured the device tree:

But I can't control the output level of this GPIO:

But when measuring the level, it is always high.

Other pins configured as GPIO can operate normally.I searched for two days but couldn't find the cause of the problem.
I hope experts can provide me with troubleshooting suggestions regarding the problem.

thank you!

  • I hope experts can provide me with troubleshooting suggestions regarding the problem.

  • Hello Jiabin,

    Have you change the tried changing the pinmux file?

    Usually one would change the hardware characteristics of a pin via this file and not the Device tree. See https://git.ti.com/cgit/ti-u-boot/ti-u-boot/tree/board/ti/am57xx/mux_data.h?h=ti-u-boot-2018.01. I am assuming this is your u-boot version based on the kernel version.

    Which is very old and not directly supported.

    Also, make sure this pin is not still being used by anything else.

    -Josue

  • hello Josue,

               Thank you for your reply,my u-boot version is u-boot-2017.01+gitAUTOINC+c68ed086bd-gc68ed086bd,and the /home/cys/ti-processor-sdk-linux-am57xx-evm-04.03.00.05/board-support/u-boot-2017.01+gitAUTOINC+c68ed086bd-gc68ed086bd/board/ti/am57xx/mux_data.h is changed:

    const struct pad_conf_entry core_padconf_array_essential_am571x_idk[] = {
    {GPMC_AD0, (M0 | PIN_INPUT_PULLDOWN)}, /* gpmc_ad0 */
    {GPMC_AD1, (M0 | PIN_INPUT_PULLDOWN)}, /* gpmc_ad1 */
    {GPMC_AD2, (M0 | PIN_INPUT_PULLDOWN)}, /* gpmc_ad2 */
    {GPMC_AD3, (M0 | PIN_INPUT_PULLDOWN)}, /* gpmc_ad3 */
    {GPMC_AD4, (M0 | PIN_INPUT_PULLDOWN)}, /* gpmc_ad4 */
    {GPMC_AD5, (M0 | PIN_INPUT_PULLDOWN)}, /* gpmc_ad5 */
    {GPMC_AD6, (M0 | PIN_INPUT_PULLDOWN)}, /* gpmc_ad6 */
    {GPMC_AD7, (M0 | PIN_INPUT_PULLDOWN)}, /* gpmc_ad7 */
    {GPMC_AD8, (M0 | PIN_INPUT_PULLDOWN)}, /* gpmc_ad8 */
    {GPMC_AD9, (M0 | PIN_INPUT_PULLDOWN)}, /* gpmc_ad9 */
    {GPMC_AD10, (M0 | PIN_INPUT_PULLDOWN)}, /* gpmc_ad10 */
    {GPMC_AD11, (M0 | PIN_INPUT_PULLDOWN)}, /* gpmc_ad11 */
    {GPMC_AD12, (M0 | PIN_INPUT_PULLDOWN)}, /* gpmc_ad12 */
    {GPMC_AD13, (M0 | PIN_INPUT_PULLDOWN)}, /* gpmc_ad13 */
    {GPMC_AD14, (M0 | PIN_INPUT_PULLDOWN)}, /* gpmc_ad14 */
    {GPMC_AD15, (M0 | PIN_INPUT_PULLDOWN)}, /* gpmc_ad15 */
    {GPMC_A0, (M7 | PIN_INPUT)}, /* R6,i2c4 scl */
    {GPMC_A1, (M7 | PIN_INPUT)}, /* T9,i2c4 sda */
    {GPMC_A2, (M15 | PIN_INPUT)}, /* T6,driver off */
    {GPMC_A3, (M15 | PIN_INPUT)}, /* driver off */
    {GPMC_A4, (M15 | PIN_INPUT)}, /* driver off */
    {GPMC_A5, (M15 | PIN_INPUT)}, /* driver off */
    /*{GPMC_A6, (M15 | PIN_INPUT)}, driver off */
    /*{GPMC_A7, (M15 | PIN_INPUT)}, driver off */
    {GPMC_A8, (M8 | PIN_OUTPUT)}, /* spi4_sclk */
    {GPMC_A9, (M14 | PIN_INPUT)}, /* gpio1_31 */
    {GPMC_A10, (M14 | PIN_OUTPUT)}, /* gpio2_0 */
    {GPMC_A11, (M14 | PIN_OUTPUT_PULLDOWN)}, /* gpio2_1 */
    {GPMC_A12, (M15 | PIN_INPUT)}, /* driver off */
    {GPMC_A13, (M1 | PIN_INPUT | MANUAL_MODE)}, /* gpmc_a13.qspi1_rtclk */
    {GPMC_A14, (M1 | PIN_INPUT_PULLUP | MANUAL_MODE)}, /* gpmc_a14.qspi1_d3 */
    {GPMC_A15, (M1 | PIN_INPUT_PULLUP | MANUAL_MODE)}, /* gpmc_a15.qspi1_d2 */
    {GPMC_A16, (M1 | PIN_INPUT | MANUAL_MODE)}, /* gpmc_a16.qspi1_d0 */
    {GPMC_A17, (M1 | PIN_INPUT | MANUAL_MODE)}, /* gpmc_a17.qspi1_d1 */
    {GPMC_A18, (M1 | PIN_OUTPUT | MANUAL_MODE)}, /* gpmc_a18.qspi1_sclk */
    {GPMC_A19, (M1 | PIN_INPUT_PULLUP)}, /* gpmc_a19.mmc2_dat4 */
    {GPMC_A20, (M1 | PIN_INPUT_PULLUP)}, /* gpmc_a20.mmc2_dat5 */
    {GPMC_A21, (M1 | PIN_INPUT_PULLUP)}, /* gpmc_a21.mmc2_dat6 */
    {GPMC_A22, (M1 | PIN_INPUT_PULLUP)}, /* gpmc_a22.mmc2_dat7 */
    {GPMC_A23, (M1 | PIN_INPUT_PULLUP)}, /* gpmc_a23.mmc2_clk */
    {GPMC_A24, (M1 | PIN_INPUT_PULLUP)}, /* gpmc_a24.mmc2_dat0 */
    {GPMC_A25, (M1 | PIN_INPUT_PULLUP)}, /* gpmc_a25.mmc2_dat1 */
    {GPMC_A26, (M1 | PIN_INPUT_PULLUP)}, /* gpmc_a26.mmc2_dat2 */
    {GPMC_A27, (M1 | PIN_INPUT_PULLUP)}, /* gpmc_a27.mmc2_dat3 */
    {GPMC_CS1, (M1 | PIN_INPUT_PULLUP)}, /* gpmc_cs1.mmc2_cmd */
    {GPMC_CS0, (M15 | PIN_INPUT)}, /* driver off,gpmc_cs0 */
    {GPMC_CS2, (M1 | PIN_OUTPUT | MANUAL_MODE)}, /* gpmc_cs2.qspi1_cs0 */
    {GPMC_CS3, (M15 | PIN_INPUT)}, /* driver off,gpmc_cs3 */
    {GPMC_CLK, (M15 | PIN_INPUT)}, /* driver off,gpmc_clk */
    {GPMC_ADVN_ALE, (M15 | PIN_INPUT)}, /* driver off,gpmc_advn_ale */
    {GPMC_OEN_REN, (M15 | PIN_INPUT)}, /* driver off,gpmc_oen_ren */
    {GPMC_WEN, (M15 | PIN_INPUT)}, /* driver off,gpmc_wen */
    {GPMC_BEN0, (M15 | PIN_INPUT)}, /* driver off,gpmc_ben0 */
    {GPMC_BEN1, (M15 | PIN_INPUT)}, /* driver off,gpmc_ben1 */
    {GPMC_WAIT0, (M15 | PIN_INPUT)}, /* driver off,gpmc_wait0 */
    {VIN2A_CLK0, (M14 | PIN_OUTPUT_PULLUP)}, /* vin2a_clk0.gpio3_28 */
    {VIN2A_DE0, (M14 | PIN_OUTPUT_PULLUP)}, /* vin2a_de0.gpio3_29 */
    {VIN2A_FLD0, (M14 | PIN_INPUT_PULLUP)}, /* vin2a_fld0.gpio3_30 */
    {VIN2A_HSYNC0, (M14 | PIN_INPUT_PULLUP)}, /* vin2a_hsync0.gpio3_31 */
    {VIN2A_VSYNC0, (M8 | PIN_OUTPUT)}, /* spi4_d1 */
    {VIN2A_D0, (M11 | PIN_INPUT)}, /*F2 vin2a_d0.pr1_uart0_rxd */
    {VIN2A_D1, (M11 | PIN_OUTPUT)}, /*F3 vin2a_d1.pr1_uart0_txd */
    {VIN2A_D2, (M8 | PIN_INPUT | PULL_UP)}, /*D1 uart10_rxd */
    {VIN2A_D3, (M8 | PIN_OUTPUT | PULL_UP)}, /*E2 uart10_tx */
    {VIN2A_D10, (M14 | PIN_INPUT)}, /* gpio4_11 */
    {VIN2A_D11, (M15 | PIN_INPUT)}, /* driver off */
    {VIN2A_D12, (M3 | PIN_OUTPUT_PULLDOWN | MANUAL_MODE)}, /* vin2a_d12.rgmii1_txc */
    {VIN2A_D13, (M3 | PIN_OUTPUT_PULLDOWN | MANUAL_MODE)}, /* vin2a_d13.rgmii1_txctl */
    {VIN2A_D14, (M3 | PIN_OUTPUT_PULLDOWN | MANUAL_MODE)}, /* vin2a_d14.rgmii1_txd3 */
    {VIN2A_D15, (M3 | PIN_OUTPUT_PULLDOWN | MANUAL_MODE)}, /* vin2a_d15.rgmii1_txd2 */
    {VIN2A_D16, (M3 | PIN_OUTPUT_PULLDOWN | MANUAL_MODE)}, /* vin2a_d16.rgmii1_txd1 */
    {VIN2A_D17, (M3 | PIN_OUTPUT_PULLDOWN | MANUAL_MODE)}, /* vin2a_d17.rgmii1_txd0 */
    {VIN2A_D18, (M3 | PIN_INPUT_PULLDOWN | MANUAL_MODE)}, /* vin2a_d18.rgmii1_rxc */
    {VIN2A_D19, (M3 | PIN_INPUT_PULLDOWN | MANUAL_MODE)}, /* vin2a_d19.rgmii1_rxctl */
    {VIN2A_D20, (M3 | PIN_INPUT_PULLUP | MANUAL_MODE)}, /* vin2a_d20.rgmii1_rxd3 */
    {VIN2A_D21, (M3 | PIN_INPUT_PULLUP | MANUAL_MODE)}, /* vin2a_d21.rgmii1_rxd2 */
    {VIN2A_D22, (M3 | PIN_INPUT_PULLUP | MANUAL_MODE)}, /* vin2a_d22.rgmii1_rxd1 */
    {VIN2A_D23, (M3 | PIN_INPUT_PULLUP | MANUAL_MODE)}, /* vin2a_d23.rgmii1_rxd0 */
    {VOUT1_FLD, (M14 | PIN_INPUT)}, /* vout1_fld.gpio4_21 */
    {MDIO_MCLK, (M0 | PIN_OUTPUT_PULLUP | SLEWCONTROL)}, /* mdio_mclk.mdio_mclk */
    {MDIO_D, (M0 | PIN_INPUT | SLEWCONTROL)}, /* mdio_d.mdio_d */
    {UART3_RXD, (M7 | PIN_OUTPUT_PULLUP)}, /* spi3_sclk */
    {UART3_TXD, (M7 | PIN_INPUT)}, /* spi3_d1 */
    {RGMII0_TXC, (M0 | PIN_OUTPUT_PULLDOWN | MANUAL_MODE)}, /* rgmii0_txc.rgmii0_txc */
    {RGMII0_TXCTL, (M0 | PIN_OUTPUT_PULLDOWN | MANUAL_MODE)}, /* rgmii0_txctl.rgmii0_txctl */
    {RGMII0_TXD3, (M0 | PIN_OUTPUT_PULLDOWN | MANUAL_MODE)}, /* rgmii0_txd3.rgmii0_txd3 */
    {RGMII0_TXD2, (M0 | PIN_OUTPUT_PULLDOWN | MANUAL_MODE)}, /* rgmii0_txd2.rgmii0_txd2 */
    {RGMII0_TXD1, (M0 | PIN_OUTPUT_PULLDOWN | MANUAL_MODE)}, /* rgmii0_txd1.rgmii0_txd1 */
    {RGMII0_TXD0, (M0 | PIN_OUTPUT_PULLDOWN | MANUAL_MODE)}, /* rgmii0_txd0.rgmii0_txd0 */
    {RGMII0_RXC, (M0 | PIN_INPUT_PULLDOWN | MANUAL_MODE)}, /* rgmii0_rxc.rgmii0_rxc */
    {RGMII0_RXCTL, (M0 | PIN_INPUT_PULLDOWN | MANUAL_MODE)}, /* rgmii0_rxctl.rgmii0_rxctl */
    {RGMII0_RXD3, (M0 | PIN_INPUT_PULLUP | MANUAL_MODE)}, /* rgmii0_rxd3.rgmii0_rxd3 */
    {RGMII0_RXD2, (M0 | PIN_INPUT_PULLUP | MANUAL_MODE)}, /* rgmii0_rxd2.rgmii0_rxd2 */
    {RGMII0_RXD1, (M0 | PIN_INPUT_PULLUP | MANUAL_MODE)}, /* rgmii0_rxd1.rgmii0_rxd1 */
    {RGMII0_RXD0, (M0 | PIN_INPUT_PULLUP | MANUAL_MODE)}, /* rgmii0_rxd0.rgmii0_rxd0 */
    {USB1_DRVVBUS, (M0 | PIN_OUTPUT | SLEWCONTROL)}, /* usb1_drvvbus.usb1_drvvbus */
    {USB2_DRVVBUS, (M0 | PIN_OUTPUT | SLEWCONTROL)}, /* usb2_drvvbus.usb2_drvvbus */
    {GPIO6_14, (M2 | PIN_OUTPUT)}, /* can2_tx */
    {GPIO6_15, (M2 | PIN_INPUT)}, /* can2_rx */
    {GPIO6_16, (M15 | PIN_INPUT_PULLUP)}, /* driver off */
    {XREF_CLK0, (M11 | PIN_INPUT_PULLDOWN)}, /* xref_clk0.pr2_mii1_col */
    {XREF_CLK1, (M11 | PIN_INPUT_PULLDOWN)}, /* xref_clk1.pr2_mii1_crs */
    {XREF_CLK2, (M15 | PIN_INPUT)}, /* driver off */
    {XREF_CLK3, (M15 | PIN_INPUT)}, /* driver off */
    {MCASP1_ACLKX, (M11 | PIN_OUTPUT_PULLDOWN)}, /* mcasp1_aclkx.pr2_mdio_mdclk */
    {MCASP1_FSX, (M11 | PIN_INPUT | SLEWCONTROL)}, /* mcasp1_fsx.pr2_mdio_data */
    {MCASP1_ACLKR, (M14 | PIN_INPUT_PULLUP)}, /* gpio5_0 */
    {MCASP1_FSR, (M14 | PIN_INPUT_PULLUP)}, /* mcasp1_fsr.gpio5_1 */
    {MCASP1_AXR0, (M15 | PIN_INPUT_PULLUP | SLEWCONTROL)}, /* mcasp1_axr0.pr2_mii0_rxer */
    {MCASP1_AXR1, (M11 | PIN_INPUT_PULLUP | SLEWCONTROL)}, /* mcasp1_axr1.pr2_mii_mt0_clk */
    {MCASP1_AXR2, (M14 | PIN_INPUT_PULLUP)}, /* mcasp1_axr2.gpio5_4 */
    {MCASP1_AXR3, (M14 | PIN_INPUT_PULLUP)}, /* mcasp1_axr3.gpio5_5 */
    {MCASP1_AXR4, (M14 | PIN_OUTPUT_PULLUP)}, /* mcasp1_axr4.gpio5_6 */
    {MCASP1_AXR5, (M14 | PIN_OUTPUT_PULLUP)}, /* mcasp1_axr5.gpio5_7 */
    {MCASP1_AXR6, (M14 | PIN_OUTPUT_PULLUP)}, /* mcasp1_axr6.gpio5_8 */
    {MCASP1_AXR7, (M14 | PIN_OUTPUT_PULLUP)}, /* mcasp1_axr7.gpio5_9 */
    {MCASP1_AXR8, (M11 | PIN_OUTPUT_PULLUP | SLEWCONTROL)}, /* mcasp1_axr8.pr2_mii0_txen */
    {MCASP1_AXR9, (M11 | PIN_OUTPUT_PULLUP | SLEWCONTROL)}, /* mcasp1_axr9.pr2_mii0_txd3 */
    {MCASP1_AXR10, (M11 | PIN_OUTPUT_PULLUP | SLEWCONTROL)}, /* mcasp1_axr10.pr2_mii0_txd2 */
    {MCASP1_AXR11, (M11 | PIN_OUTPUT_PULLUP | SLEWCONTROL)}, /* mcasp1_axr11.pr2_mii0_txd1 */
    {MCASP1_AXR12, (M11 | PIN_OUTPUT_PULLUP | SLEWCONTROL)}, /* mcasp1_axr12.pr2_mii0_txd0 */
    {MCASP1_AXR13, (M11 | PIN_INPUT_PULLUP | SLEWCONTROL)}, /* mcasp1_axr13.pr2_mii_mr0_clk */
    {MCASP1_AXR14, (M11 | PIN_INPUT_SLEW)}, /* mcasp1_axr14.pr2_mii0_rxdv */
    {MCASP1_AXR15, (M11 | PIN_INPUT_SLEW)}, /* mcasp1_axr15.pr2_mii0_rxd3 */
    {MCASP2_ACLKX, (M11 | PIN_INPUT_PULLDOWN)}, /* mcasp2_aclkx.pr2_mii0_rxd2 */
    {MCASP2_FSX, (M11 | PIN_INPUT_SLEW)}, /* mcasp2_fsx.pr2_mii0_rxd1 */
    {MCASP2_AXR2, (M11 | PIN_INPUT_SLEW)}, /* mcasp2_axr2.pr2_mii0_rxd0 */
    {MCASP2_AXR3, (M11 | PIN_INPUT_SLEW)}, /* mcasp2_axr3.pr2_mii0_rxlink */
    {MCASP2_AXR4, (M14 | PIN_OUTPUT_PULLUP)}, /* mcasp2_axr4.gpio1_4 */
    {MCASP2_AXR5, (M15 | PIN_OUTPUT)}, /* driver off */
    {MCASP2_AXR6, (M15 | PIN_OUTPUT)}, /* driver off */
    {MCASP2_AXR7, (M14 | PIN_OUTPUT_PULLUP)}, /* mcasp2_axr7.gpio1_5 */
    {MCASP3_ACLKX, (M11 | PIN_INPUT_PULLDOWN)}, /* mcasp3_aclkx.pr2_mii0_crs */
    {MCASP3_FSX, (M11 | PIN_INPUT_SLEW)}, /* mcasp3_fsx.pr2_mii0_col */
    {MCASP3_AXR0, (M11 | PIN_INPUT_PULLUP | SLEWCONTROL)}, /* mcasp3_axr0.pr2_mii1_rxer */
    {MCASP3_AXR1, (M11 | PIN_INPUT_PULLUP | SLEWCONTROL)}, /* mcasp3_axr1.pr2_mii1_rxlink */
    {MCASP4_ACLKX, (M4 | PIN_INPUT)}, /*C18 i2c4_sda */
    {MCASP4_FSX, (M4 | PIN_INPUT)}, /*A21 i2c4_scl */
    {MCASP4_AXR1, (M2 | PIN_OUTPUT_PULLUP)}, /* mcasp4_axr1.spi3_cs0 */
    {MCASP5_AXR0, (M2 | PIN_INPUT)}, /* spi4_d0 */
    {MCASP5_AXR1, (M2 | PIN_OUTPUT)}, /* spi4_cs0 */
    {MMC1_CLK, (M0 | PIN_INPUT_PULLUP)}, /* mmc1_clk.mmc1_clk */
    {MMC1_CMD, (M0 | PIN_INPUT_PULLUP)}, /* mmc1_cmd.mmc1_cmd */
    {MMC1_DAT0, (M0 | PIN_INPUT_PULLUP)}, /* mmc1_dat0.mmc1_dat0 */
    {MMC1_DAT1, (M0 | PIN_INPUT_PULLUP)}, /* mmc1_dat1.mmc1_dat1 */
    {MMC1_DAT2, (M0 | PIN_INPUT_PULLUP)}, /* mmc1_dat2.mmc1_dat2 */
    {MMC1_DAT3, (M0 | PIN_INPUT_PULLUP)}, /* mmc1_dat3.mmc1_dat3 */
    {MMC1_SDCD, (M14 | PIN_INPUT_PULLUP | SLEWCONTROL)}, /* mmc1_sdcd.gpio6_27 */
    {GPIO6_10, (M11 | PIN_INPUT_PULLUP)}, /* gpio6_10.pr2_mii_mt1_clk */
    {GPIO6_11, (M11 | PIN_OUTPUT_PULLUP)}, /* gpio6_11.pr2_mii1_txen */
    {MMC3_CLK, (M11 | PIN_OUTPUT_PULLUP)}, /* mmc3_clk.pr2_mii1_txd3 */
    {MMC3_CMD, (M11 | PIN_OUTPUT_PULLUP)}, /* mmc3_cmd.pr2_mii1_txd2 */
    {MMC3_DAT0, (M11 | PIN_OUTPUT_PULLUP)}, /* mmc3_dat0.pr2_mii1_txd1 */
    {MMC3_DAT1, (M11 | PIN_OUTPUT_PULLUP)}, /* mmc3_dat1.pr2_mii1_txd0 */
    {MMC3_DAT2, (M11 | PIN_INPUT_PULLUP)}, /* mmc3_dat2.pr2_mii_mr1_clk */
    {MMC3_DAT3, (M11 | PIN_INPUT_PULLDOWN)}, /* mmc3_dat3.pr2_mii1_rxdv */
    {MMC3_DAT4, (M11 | PIN_INPUT_PULLDOWN)}, /* mmc3_dat4.pr2_mii1_rxd3 */
    {MMC3_DAT5, (M11 | PIN_INPUT_PULLDOWN)}, /* mmc3_dat5.pr2_mii1_rxd2 */
    {MMC3_DAT6, (M11 | PIN_INPUT_PULLDOWN)}, /* mmc3_dat6.pr2_mii1_rxd1 */
    {MMC3_DAT7, (M11 | PIN_INPUT_PULLDOWN)}, /* mmc3_dat7.pr2_mii1_rxd0 */
    {SPI1_SCLK, (M0 | PIN_OUTPUT)}, /* spi1_sclk */
    {SPI1_D1, (M0 | PIN_INPUT)}, /* spi1_d1 */
    {SPI1_D0, (M0 | PIN_OUTPUT)}, /* spi1_d0 */
    {SPI1_CS0, (M14 | PIN_OUTPUT)}, /* spi1_cs0.gpio7_10 */
    {SPI1_CS1, (M14 | PIN_OUTPUT)}, /* spi1_cs1.gpio7_11 */
    {SPI1_CS2, (M14 | PIN_OUTPUT)}, /* spi1_cs2.gpio7_12 */
    {SPI1_CS3, (M14 | PIN_INPUT)}, /* gpio7_13 */
    {SPI2_SCLK, (M0 | PIN_INPUT_PULLUP)}, /* spi2_sclk.spi2_sclk */
    {SPI2_D1, (M0 | PIN_OUTPUT_PULLUP)}, /* spi2_d1.spi2_d1 */
    {SPI2_D0, (M0 | PIN_INPUT_PULLUP)}, /* spi2_d0.spi2_d0 */
    {SPI2_CS0, (M0 | PIN_OUTPUT_PULLDOWN)}, /* spi2_cs0.spi2_cs0 */
    /* {DCAN1_TX, (M0 | PIN_OUTPUT | PULL_UP)}, dcan1_tx */
    /* {DCAN1_RX, (M0 | PIN_INPUT | PULL_UP)}, dcan1_rx */
    {UART1_RXD, (M0 | PIN_INPUT | PULL_UP)}, /*B27 uart1_rxd */
    {UART1_TXD, (M0 | PIN_OUTPUT | PULL_UP)}, /*C26 uart1_txd.uart1_txd */
    {UART1_CTSN, (M14 | PIN_INPUT)}, /* uart1_ctsn.gpio7_24 */
    {UART1_RTSN, (M14 | PIN_INPUT)}, /* uart1_rtsn.gpio7_25 */
    {I2C1_SDA, (M0 | PIN_INPUT)}, /* i2c1_sda.i2c1_sda */
    {I2C1_SCL, (M0 | PIN_INPUT)}, /* i2c1_scl.i2c1_scl */
    {I2C2_SDA, (M0 | PIN_INPUT)}, /* i2c2_sda */
    {I2C2_SCL, (M0 | PIN_INPUT)}, /* i2c2_scl */
    {RMII_MHZ_50_CLK, (M14 | PIN_OUTPUT | PULL_UP)}, /*u3, RMII_MHZ_50_CLK.gpio5_17, AM5728_EMAC0_RST */
    {VIN2A_D4, (M14 | PIN_OUTPUT)}, /* gpio4_5 */
    {VIN2A_D5, (M13 | PIN_OUTPUT)}, /* pr1_pru1_gpo2 */
    {VIN2A_D6, (M14 | PIN_INPUT)}, /* gpio4_7 */
    {VIN2A_D7, (M14 | PIN_OUTPUT)}, /* gpio4_8 */
    {VIN2A_D9, (M14 | PIN_OUTPUT_PULLUP)}, /* gpio4_10 */
    {UART2_RXD, (M0 | PIN_INPUT | PULL_UP)}, /* uart2_rxd */
    {UART2_TXD, (M0 | PIN_OUTPUT | PULL_UP)}, /* uart1_txd.uart2_txd */
    {UART3_RXD, (M14 | PIN_OUTPUT_PULLUP)}, /* uart3_rxd.gpio5-18 */
    {UART3_TXD, (M7 | PIN_INPUT | PULL_UP)}, /* uart3_txd.spi3_d1 */
    {VOUT1_D0, (M14 | PIN_INPUT)}, /*gpio8_0*/
    {VOUT1_D1, (M14 | PIN_INPUT)}, /*gpio8_1*/
    {VOUT1_D2, (M14 | PIN_INPUT)}, /*gpio8_2*/
    {VOUT1_D3, (M14 | PIN_OUTPUT | PULL_UP)}, /*gpio8_3*/
    {VOUT1_D4, (M14 | PIN_OUTPUT | PULL_UP)}, /*gpio8_4*/
    {VOUT1_D5, (M14 | PIN_INPUT)}, /*gpio8_5*/
    {VOUT1_D7, (M14 | PIN_INPUT)}, /*gpio8_7*/
    {VOUT1_D8, (M2 | PIN_INPUT | PULL_UP)}, /*uart6_rx*/
    {VOUT1_D9, (M2 | PIN_OUTPUT | PULL_UP)}, /*uart6_tx*/
    {VOUT1_D10, (M14 | PIN_OUTPUT_PULLUP)}, /*gpio8_10*/
    {VOUT1_D11, (M14 | PIN_OUTPUT_PULLUP)}, /*gpio8_11*/
    {VOUT1_D12, (M14 | PIN_OUTPUT)}, /*gpio8_12*/
    {VOUT1_D13, (M14 | PIN_OUTPUT)}, /*gpio8_13*/
    {VOUT1_D14, (M14 | PIN_INPUT)}, /* C8 vout1_d14.gpio8_14 */
    {VOUT1_D15, (M14 | PIN_OUTPUT)}, /*gpio8_15*/
    {VOUT1_D17, (M14 | PIN_OUTPUT)}, /*gpio8_17*/
    {VOUT1_D18, (M14 | PIN_OUTPUT)}, /*gpio8_18*/
    {VOUT1_D19, (M14 | PIN_INPUT)}, /*gpio8_19*/
    {VOUT1_D21, (M14 | PIN_OUTPUT)}, /*gpio8_21*/
    {VOUT1_HSYNC, (M8 | PIN_OUTPUT)}, /* spi3_d0 */
    {MCASP5_ACLKX, (M3 | PIN_INPUT | PULL_UP)}, /* uart9_rx */
    {MCASP5_FSX, (M3 | PIN_OUTPUT | PULL_UP)}, /* uart9_tx */
    {UART2_CTSN, (M2 | PIN_INPUT | PULL_UP)}, /*D27 uart3_rx */
    {UART2_RTSN, (M1 | PIN_OUTPUT | PULL_UP)}, /*C28 uart3_tx */
    {WAKEUP0, (M0 | PIN_INPUT)}, /* Wakeup0.Wakeup0 */
    {WAKEUP3, (M0 | PIN_INPUT)}, /* Wakeup3.Wakeup3 */
    {ON_OFF, (M0 | PIN_OUTPUT)}, /* on_off.on_off */
    {RTC_PORZ, (M0 | PIN_INPUT)}, /* rtc_porz.rtc_porz */
    {TMS, (M0 | PIN_INPUT_PULLUP)}, /* tms.tms */
    {TDI, (M0 | PIN_INPUT_PULLUP | SLEWCONTROL)}, /* tdi.tdi */
    {TDO, (M0 | PIN_OUTPUT_PULLUP)}, /* tdo.tdo */
    {TCLK, (M0 | PIN_INPUT_PULLUP)}, /* tclk.tclk */
    {TRSTN, (M0 | PIN_INPUT)}, /* trstn.trstn */
    {RTCK, (M0 | PIN_OUTPUT_PULLUP)}, /* rtck.rtck */
    {EMU0, (M0 | PIN_INPUT)}, /* emu0.emu0 */
    {EMU1, (M0 | PIN_INPUT)}, /* emu1.emu1 */
    {RSTOUTN, (M0 | PIN_OUTPUT)}, /* rstoutn.rstoutn */
    //add 2024-06-07 zai wenjianxitong fang flash hou tianjia
    {VIN2A_VSYNC0, (M14 | PIN_OUTPUT)}, /* G6 vin2a_vsync0.gpio4_0 */
    {VIN2A_D0, (M14 | PIN_OUTPUT)}, /* F2 vin2a_d0.gpio4_1 */
    {VIN2A_D1, (M14 | PIN_OUTPUT)}, /* F3 vin2a_d1.gpio4_2 */
    /* {VIN2A_D2, (M14 | PIN_OUTPUT)}, D1 vin2a_d2.gpio4_3 */
    /* {VIN2A_D3, (M14 | PIN_OUTPUT)}, E2 vin2a_d3.gpio4_4 */
    {VOUT1_FLD, (M14 | PIN_INPUT)}, /* B11 vout1_fld.gpio4_21 */
    {MCASP1_AXR3, (M14 | PIN_OUTPUT_PULLUP)}, /* J11 mcasp1_axr3.gpio5_5 */
    {MCASP1_AXR4, (M14 | PIN_OUTPUT_PULLUP)}, /* E12 mcasp1_axr4.gpio5_6 */
    {MCASP1_AXR5, (M14 | PIN_INPUT)}, /* F13 mcasp1_axr5.gpio5_7 */
    {MCASP1_AXR6, (M14 | PIN_INPUT)}, /* C12 mcasp1_axr6.gpio5_8 */
    {MMC1_SDWP, (M14 | PIN_INPUT | SLEWCONTROL)}, /* Y9 mmc1_sdwp.gpio6_28 */
    {VOUT1_D6, (M14 | PIN_INPUT)}, /* F8 vout1_d6.gpio8_6 */
    {VOUT1_D16, (M14 | PIN_INPUT)}, /* B7 vout1_d16.gpio8_16 */
    {VOUT1_D20, (M14 | PIN_INPUT)}, /* C9 vout1_d20.gpio8_20 */
    {VOUT1_D22, (M14 | PIN_INPUT)}, /* B9 vout1_d22.gpio8_22 */

    {GPMC_A6, (M14 | PIN_OUTPUT_PULLUP)}, /* gpio1_28*/
    {GPMC_A7, (M14 | PIN_OUTPUT_PULLUP)}, /* gpio1_29*/
    {DCAN1_RX,(M14 | PIN_OUTPUT_PULLDOWN)}, /* gpio1_15*/
    //ADD 2024-10-18 ADD UART LIANGJI LIEKONG

    };

    And in your reply,you said 'Also, make sure this pin is not still being used by anything else.'.

    Because of the adaptation changes made on the default u-boot and device tree, I am not sure where there are applications related to this pin. How can I determine if there are any other applications occupying it?

  • Hello Jiabin,

    Due to bandwidth I will have to get back to you later this week.

    -Josue

  • Hello Josue,

           Thank you for your reply. I am looking forward to your solution.

  • I appreciate the understanding.

    -Josue

  • Hello Josue,

          I hope you can help me solve it. I am looking forward to your reply.

  • Jiabin,

    I am out of office until 3/13. Please expect delays.

    -Josue

  • Hello Josue,

         Okay, I'm sorry I didn't know you were on vacation

  • Not vacation, on a business trip.

    Ill be back Thursday.

    -Josue

  • Are you back yet? I'm looking forward to you helping me solve the bandwidth problem.

  • Hello Jiabin,

    From first look this week it seems like it is set up correctly.

    How can I determine if there are any other applications occupying it?

    To double check that there wasn't any conflicts with this pin, but from your pinmux file it does not seem like this is the case. It looks like mmc2 is used but this particular pin is not used.

    /* {DCAN1_TX, (M0 | PIN_OUTPUT | PULL_UP)}, dcan1_tx */
    /* {DCAN1_RX, (M0 | PIN_INPUT | PULL_UP)}, dcan1_rx */

    I guess commenting these out is the same as removing them, any chance this was not removed when you tried?

    Have you reviewed both U-boot DTS as well as Linux DTS? Make sure there is no conflicts.

    I will make some time this week to try this pin in one of our boards. Are you using a custom board or a TI board?

    -Josue

  • Josue,

               Thank you for your reply.

                The mmc2 is not used this particular pin.

                 U-boot DTS using default DTS files from SDK,it seems that this pin has not been configured.

               

                /* {DCAN1_TX, (M0 | PIN_OUTPUT | PULL_UP)}, dcan1_tx */
                /* {DCAN1_RX, (M0 | PIN_INPUT | PULL_UP)}, dcan1_rx */

                I deleted the top two lines from the pin_mux. h file and added the bottom line,and still can't control this pin.

                {DCAN1_RX, (M14 | PIN_OUTPUT_PULLUP)}, /* gpio1_15*/

                 I'm using a custom board,but I'm sure there's no problem with this hardware, because other OS used for another project can operate this pin.

                 This problem has been bothering me for several days, and I look forward to your help in solving it.

  • Jiabin,

    Haven't had time to test this, Can you double check the register to see if your changes were registered?

  • Josue,

           Thank you for your reply.

           How to read this memory? I was unable to successfully read using the mmap function at the user layer.

  • Jiabin,

    You could use omapconf, devmem2, or connect to JTAG and use memory browser on CCS.

    -Josue

  • Josue,

           Thank you for your reply.

          The am57xx-idk-common.dtsi   configured with DCAN1, where the mode of this pin is dynamically configured.

  • Jiabin,

    Does this mean that you found the conflict?

    -Josue

  • Josue,

           Yes , it is conflicts.

           Thank you very much!