/* SPDX-License-Identifier: GPL-2.0+ */ /* * Copyright (C) 2012 * Philippe Reynes */ #ifndef __ASM_ARCH_MX27_GPIO_H #define __ASM_ARCH_MX27_GPIO_H /* GPIO registers */ struct gpio_regs { u32 gpio_dir; /* DDIR */ u32 ocr1; u32 ocr2; u32 iconfa1; u32 iconfa2; u32 iconfb1; u32 iconfb2; u32 gpio_dr; /* DR */ u32 gius; u32 gpio_psr; /* SSR */ u32 icr1; u32 icr2; u32 imr; u32 isr; u32 gpr; u32 swr; u32 puen; u32 res[0x2f]; }; /* This structure is used by the function imx_gpio_mode */ struct gpio_port_regs { struct gpio_regs port[6]; }; /* * GPIO Module and I/O Multiplexer */ #define PORTA 0 #define PORTB 1 #define PORTC 2 #define PORTD 3 #define PORTE 4 #define PORTF 5 #define GPIO_PIN_MASK 0x1f #define GPIO_PORT_SHIFT 5 #define GPIO_PORT_MASK (0x7 << GPIO_PORT_SHIFT) #define GPIO_PORTA (PORTA << GPIO_PORT_SHIFT) #define GPIO_PORTB (PORTB << GPIO_PORT_SHIFT) #define GPIO_PORTC (PORTC << GPIO_PORT_SHIFT) #define GPIO_PORTD (PORTD << GPIO_PORT_SHIFT) #define GPIO_PORTE (PORTE << GPIO_PORT_SHIFT) #define GPIO_PORTF (PORTF << GPIO_PORT_SHIFT) #endif