Hi,
I am looking for similar requirement. I used CSL APIs to set direction and set output and clear output functions for GPIOs 16-31. I do not see any transaction. Can anyone advise what care we should take? If the registers described only for 0-15 bits (16 GPIOs), how do we access higher 16 GPIOs?
I need GPIO_22, GPIO_25, GPIO_23, GPIO_27 and GPIO_16. I do not see any effect on any of these pins.
Processor: C6657
APIs used:
void gpioSetDirection(uint32_t uiNumber, GpioDirection direction);
void gpioSetOutput(uint32_t uiNumber);
void gpioClearOutput(uint32_t uiNumber);
If I try to set the PIN_CONTROL_0 register - 0x02620580
After writing I see this register zero.
Pl. advise what is that needed before accesssing these registers?
volatile uint32_t *chipPinContrl_0=(volatile uint32_t *)0x02620580;
int gpioDbgCnt = 1000000;
void gpio_init(void)
{
uint32_t uint32_value;
uint32_value = *chipPinContrl_0; //CHIP_PIN_CONTROL_0;
uint32_value |= ( CSL_BOOTCFG_CHIP_PIN_CONTROL_0_GPIO17_TIM1_MASK |
CSL_BOOTCFG_CHIP_PIN_CONTROL_0_GPIO22_UARTCTS0_MASK |
CSL_BOOTCFG_CHIP_PIN_CONTROL_0_GPIO23_UARTRTS0_MASK |
CSL_BOOTCFG_CHIP_PIN_CONTROL_0_GPIO25_UARTTX1_MASK |
CSL_BOOTCFG_CHIP_PIN_CONTROL_0_GPIO27_UARTRTS1_MASK);
*chipPinContrl_0 = uint32_value;
//CHIP_PIN_CONTROL_0 = uint32_value;