
On 05/08/2012 12:00, Philippe Reynes wrote:
Signed-off-by: Philippe Reynes tremyfr@yahoo.fr
board/logicpd/imx27lite/imx27lite.c | 7 ++++--- 1 files changed, 4 insertions(+), 3 deletions(-)
Hi Philippe,
{
- struct gpio_regs *regs = (struct gpio_regs *)IMX_GPIO_BASE;
- struct gpio_port_regs *regs = (struct gpio_port_regs *)IMX_GPIO_BASE;
#if defined(CONFIG_SYS_NAND_LARGEPAGE) struct system_control_regs *sc_regs = (struct system_control_regs *)IMX_SYSTEM_CTL_BASE; @@ -43,8 +44,8 @@ int board_init(void) #ifdef CONFIG_FEC_MXC mx27_fec_init_pins(); imx_gpio_mode((GPIO_PORTC | GPIO_OUT | GPIO_PUEN | GPIO_GPIO | 31));
- writel(readl(®s->port[PORTC].dr) | (1 << 31),
®s->port[PORTC].dr);
- writel(readl(®s->port[PORTC].gpio_dr) | (1 << 31),
®s->port[PORTC].gpio_dr);
This is not what I am expecting from the patch when it will move to generic GPIO API.
The GPIO API uses really generic as in kernel functions, independently from the SOC where it is running. This hides the physical registers of the GPIOs.
Instead of that, gpio_set_value(), gpio_get_value(), gpio_direction_input() and gpio_direction_output() should be used. You can take a look at other iMX (MX3, MX28, MX5, MX6), that are already using the generic API.
Best regards, Stefano Babic