Quantcast
Channel: Processors
Viewing all articles
Browse latest Browse all 150833

Forum Post: WEC7 Pin Mux Configuration Explanation

$
0
0

Is there any detailed information on how to configure and implement the pin mux settings for the AM33x using the Adeneo-based Compact 7 BSP?  For several days I have been trying different combinations of configurations for the bsp_padcfg.h and bsp_padcfg.c without being able to flip a single output bit.  I have successfully been able to control the GPIO3_4 bit which is already configured in the BSP, but enabling a non-standard pin like GPIO1_12, or GPIO1_21 seems to be more involved than just the following (in bsp_padcfg.h):

#define ANNUN_PADS \

PAD_ENTRY(GPMC_A5, MODE(7) | AM335X_PIN_OUTPUT) /* GPIO1_21 */ \

...and in bsp_padcfg.c:

const PAD_INFO AnnunPads[] = {ANNUN_PADS END_OF_PAD_ARRAY};

.

.

.

const EVM_PIN_MUX GP_BOARD_PIN_MUX[] = {

{ CTPPads, AM_DEVICE_CTP, PROFILE_0 | PROFILE_1 | PROFILE_2 | PROFILE_7, DEV_ON_DGHTR_BRD},

{ ADCTSCPads, AM_DEVICE_ADC_TSC, PROFILE_0 | PROFILE_1 | PROFILE_2 | PROFILE_7, DEV_ON_DGHTR_BRD},

{ BKLPads, AM_DEVICE_BKL, PROFILE_0 | PROFILE_1 | PROFILE_2 | PROFILE_7, DEV_ON_DGHTR_BRD},

//{ I2C0Pads, AM_DEVICE_I2C0, PROFILE_ALL, DEV_ON_BASEBOARD},

{ I2C1Pads, AM_DEVICE_I2C1, PROFILE_ALL, DEV_ON_BASEBOARD},

{ LCDCPads, AM_DEVICE_LCDC, PROFILE_0 | PROFILE_1 | PROFILE_2 | PROFILE_7, DEV_ON_DGHTR_BRD}, //although its separate LCD board, use BaseBoard as location; will use profile info to know if LCD is valid or not

{ MCASP0Pads, AM_DEVICE_MCASP0, PROFILE_ALL, DEV_ON_BASEBOARD},

//{ MCASP1Pads, AM_DEVICE_MCASP1, PROFILE_0 | PROFILE_3, DEV_ON_DGHTR_BRD},

{ MMC0Pads, AM_DEVICE_MMCHS0, PROFILE_ALL & ~PROFILE_5, DEV_ON_BASEBOARD},

//{ MMC0_NoCD_Pads, AM_DEVICE_MMCHS0, PROFILE_5, DEV_ON_BASEBOARD},

{ MMC1Pads, AM_DEVICE_MMCHS1, PROFILE_2, DEV_ON_DGHTR_BRD},

{ MMC2Pads, AM_DEVICE_MMCHS2, PROFILE_4, DEV_ON_DGHTR_BRD},

{ NANDPads, AM_DEVICE_NAND, PROFILE_ALL & ~PROFILE_2 & ~PROFILE_3, DEV_ON_DGHTR_BRD},

{ NORPads, AM_DEVICE_NOR, PROFILE_3, DEV_ON_DGHTR_BRD},

//{ RGMIIMultiplePhyPads, AM_DEVICE_CPGMAC0, PROFILE_1 | PROFILE_2 | PROFILE_4 | PROFILE_6, DEV_ON_DGHTR_BRD},

//{ RGMIISinglePhyPads, AM_DEVICE_CPGMAC0, PROFILE_0 | PROFILE_3 | PROFILE_5 | PROFILE_7, DEV_ON_BASEBOARD},

{ VARPHYSPads, AM_DEVICE_CPGMAC0, PROFILE_ALL, DEV_ON_BASEBOARD},

{ SPI0Pads, AM_DEVICE_MCSPI0, PROFILE_2, DEV_ON_DGHTR_BRD},

{ SPI1Pads, AM_DEVICE_MCSPI1, PROFILE_3, DEV_ON_DGHTR_BRD},

{ UART0Pads, AM_DEVICE_UART0, PROFILE_ALL, DEV_ON_BASEBOARD},

{ UART1Pads, AM_DEVICE_UART1, PROFILE_ALL, DEV_ON_BASEBOARD},

{ UART2Pads, AM_DEVICE_UART2, PROFILE_ALL, DEV_ON_BASEBOARD},

{ UART3Pads, AM_DEVICE_UART3, PROFILE_ALL, DEV_ON_BASEBOARD},

{ USB0Pads, AM_DEVICE_USB0, PROFILE_ALL, DEV_ON_BASEBOARD},

{ AnnunPads, AM_DEVICE_GPIO1, PROFILE_ALL, DEV_ON_DGHTR_BRD},

{0},

};

Under the kernel debugger, I can't see any difference in the handling of the GPIOOpen(), GPIOSetMode(), and GPIOSetBit() handling between setting GPIO3_4 (which works), and setting GPIO1_21 (which doesn't).  I feel there must be some other initialization that I am missing but have been unable to find any documentation.

 


Viewing all articles
Browse latest Browse all 150833

Latest Images

Trending Articles



Latest Images

<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>