/*FUNCTION***************************************************************** * * Function Name : lwgpio_init * Returned Value : TRUE if succesfull, FALSE otherwise * Comments : * Decodes ID to HW specific struct and then performs pin initialization * *END*********************************************************************/ bool lwgpio_init ( /* Pointer to LWGPIO internal structure to be filled in */ LWGPIO_STRUCT_PTR handle, /* Pin ID, bitmask integer value */ LWGPIO_PIN_ID id, /* Direction to be set within initialization */ LWGPIO_DIR dir, /* Value to be set within initialization */ LWGPIO_VALUE value ) { /* Body */ uint32_t port_idx, pin_idx; port_idx = LWGPIO_PORT_FROM_ID(id); pin_idx = LWGPIO_PIN_FROM_ID(id); handle->flags = id; handle->pcr_reg = (uint32_t *) pcr_reg_arr[port_idx] + pin_idx; handle->gpio_ptr = gpio_ptr_arr[port_idx]; handle->pinmask = 1 << pin_idx; /* Set value prior to set to output */ if (value != LWGPIO_VALUE_NOCHANGE) { /* Note: there is no check for values not defined as LWGPIO_VALUE enum */ lwgpio_set_value(handle, value); } if (dir != LWGPIO_DIR_NOCHANGE) { /* Note: there is no check for values not defined as LWGPIO_DIR enum */ lwgpio_set_direction(handle, dir); } return TRUE; }
/*FUNCTION*--------------------------------------------------------------------- * * Function Name : _bsp_flexbus_lcd_setup * Returned Value : * Comments : * Setup FlexBus for LCD operation * *END*-------------------------------------------------------------------------*/ void _bsp_flexbus_lcd_setup (const uint_32 base_address) { FB_MemMapPtr fb_ptr = FB_BASE_PTR; LWGPIO_STRUCT ale_pin; /* Enable external LCD mapped on CS0 */ fb_ptr->CS[0].CSAR = base_address; fb_ptr->CS[0].CSCR = FB_CSCR_BLS_MASK | FB_CSCR_AA_MASK | FB_CSCR_PS(2) | FB_CSCR_BEM_MASK; /* * The address range is set to 128K because * the DC signal is connected on address wire */ fb_ptr->CS[0].CSMR = FB_CSMR_BAM(1) | FB_CSMR_V_MASK; lwgpio_init(&ale_pin, GPIO_PORT_E | GPIO_PIN6, LWGPIO_DIR_NOCHANGE, LWGPIO_VALUE_NOCHANGE); lwgpio_set_direction(&ale_pin, LWGPIO_DIR_OUTPUT); lwgpio_set_value(&ale_pin, LWGPIO_VALUE_HIGH); lwgpio_set_functionality(&ale_pin, 1); }