Hello all, 
I find your response to my question in Dvel Archive. I changed the parameter of gpio_new() that I am calling in my gpio_init_pin() (I changed it from 0 to 1 to have output direction).
But I keep getting same error: 
imx6_gpio_init@gpio.c:96 Invalid GPIO
Assertion failed: bank->data == v (libplatsupport/src/plat/imx6/gpio.c: imx6_gpio_set_level: 136)
My question is that could it be because of pin number that I pass to gpio_new function. 
Here I have copied parts of my code:
******************************************
gpio_sys_t gpio_sys;
gpio_t pins[32*7];
mux_sys_t mux_sys;
void gpio__init()
{
imx6_mux_init(NULL, &mux_sys);
imx6_gpio_sys_init((void*)gpio0, (void*)gpio1, (void*)gpio2, (void*)gpio3, (void*)gpio4, (void*)gpio5, (void*)gpio6, &mux_sys, &gpio_sys);
}
void gpio_init_pin(int pin, int direction)
{
if(pin>0 && pin< sizeof(pins)/sizeof(pins[0]))
{
gpio_new(&gpio_sys, pin, (enum gpio_dir)direction, &pins[pin]);
}
}

void gpio_set_pin(int pin, int value)
{
if(pin >= 0 && pin < (sizeof(pins)/sizeof(pins[0])))
{
        if(value)
        {
            gpio_set(&pins[pin]);
        }
        else
        {
            gpio_clr(&pins[pin]);
        }
    }
}

int gpio_read_pin(int pin)
{
if(pin>0 && pin< sizeof(pins)/sizeof(pins[0]))
{
return gpio_get(&pins[pin]);
}
return -1;
}
******************************************
Can any one help me to solve this problem?

Thank you,
Parvaneh.

On Tue, Jan 28, 2020 at 12:40 PM Parvaneh Ahgajani <aghajani.parvaneh@gmail.com> wrote:
Hello all,

I am working with sabre lite board and using camkes framework. 
In my implementation I have a driver component that has 7 dataport buf and I connected these buffers to hardware component. 
In source of component driver I am initialize gpio_sys, mux_sys and pins using these functions:
- imx6_mux_init()
- imx6_gpio_sys_init()
- gpio_new()

Here I have copied some part of my code:
******************************************
gpio_sys_t gpio_sys;
gpio_t pins[32*7];
mux_sys_t mux_sys;
void gpio__init()
{
imx6_mux_init(NULL, &mux_sys);
imx6_gpio_sys_init((void*)gpio0, (void*)gpio1, (void*)gpio2, (void*)gpio3, (void*)gpio4, (void*)gpio5, (void*)gpio6, &mux_sys, &gpio_sys);
}
void gpio_init_pin(int pin, int direction)
{
if(pin>0 && pin< sizeof(pins)/sizeof(pins[0]))
{
gpio_new(&gpio_sys, pin, (enum gpio_dir)direction, &pins[pin]);
}
}

void gpio_set_pin(int pin, int value)
{
if(pin >= 0 && pin < (sizeof(pins)/sizeof(pins[0])))
{
        if(value)
        {
            gpio_set(&pins[pin]);
        }
        else
        {
            gpio_clr(&pins[pin]);
        }
    }
}

int gpio_read_pin(int pin)
{
if(pin>0 && pin< sizeof(pins)/sizeof(pins[0]))
{
return gpio_get(&pins[pin]);
}
return -1;
}
******************************************
By calling "gpio_init_pin(ALARM_PIN= 28, 0);" I am getting this error:
Assertion failed: bank->data == v (PATH/projects/util_libs/libplatsupport/src/plat/imx6/gpio.c: imx6_gpio_write: 144)
How can I fix this error? How should I specify the GPIO pins?

Thank you for your time and consideration,
Parvaneh.