Is there a way to use the LVDS Pins as GPIOs?
I want to use the LVDS1_TX0_P as GPIO6_30. Therefore I configured the IOMUX with MX53_PAD_LVDS1_TX0_P__GPIO6_30 --> should select "ALT0 mux port: GPI[30] of instance: gpio6." according to the schematic.
Requesting the GPIO works fine, but if I set the output to '1' nothing happens on the pin, and still read '0'.
The control of the GPIO is done as follows.
#define SX8656_nRST IMX_GPIO_NR(6, 30)
ret = gpio_request(SX8656_nRST, "SX8656");
if (ret)
{
pr_info("B\n");
return ret;
}
if(gpio_direction_output(SX8656_nRST, 1))
The code above should be definitely correct. If I use GPIO4_18 instead, everthing works fine.
Could this problem caused by "NON_PAD_I" in the definition of the IOMUX in iomux-mx53.h?
#define _MX53_PAD_LVDS1_TX0_P__GPIO6_30 IOMUX_PAD(NON_PAD_I, 0x1FC, 0, 0x0, 0, 0)
#define _MX53_PAD_DI0_PIN2__GPIO4_18 IOMUX_PAD(0x380, 0x54, 1, 0x0, 0, 0)
Regards,
Rooney
here are some cluse:
1. please check if any other pin was configured as GPIO6_30, that may cause confliction
2. check if the power domain was okay for GPIO6 group.
I found the answer of my question in the small print of the datasheet... The LVDS pins can alternatively only be used as inputs (GPI)!!!!!!