1 /* 2 * Copyright (C) 2012 3 * Philippe Reynes <tremyfr@yahoo.fr> 4 * 5 * SPDX-License-Identifier: GPL-2.0+ 6 */ 7 8 9 #ifndef __ASM_ARCH_MX27_GPIO_H 10 #define __ASM_ARCH_MX27_GPIO_H 11 12 /* GPIO registers */ 13 struct gpio_regs { 14 u32 gpio_dir; /* DDIR */ 15 u32 ocr1; 16 u32 ocr2; 17 u32 iconfa1; 18 u32 iconfa2; 19 u32 iconfb1; 20 u32 iconfb2; 21 u32 gpio_dr; /* DR */ 22 u32 gius; 23 u32 gpio_psr; /* SSR */ 24 u32 icr1; 25 u32 icr2; 26 u32 imr; 27 u32 isr; 28 u32 gpr; 29 u32 swr; 30 u32 puen; 31 u32 res[0x2f]; 32 }; 33 34 /* This structure is used by the function imx_gpio_mode */ 35 struct gpio_port_regs { 36 struct gpio_regs port[6]; 37 }; 38 39 /* 40 * GPIO Module and I/O Multiplexer 41 */ 42 #define PORTA 0 43 #define PORTB 1 44 #define PORTC 2 45 #define PORTD 3 46 #define PORTE 4 47 #define PORTF 5 48 49 #define GPIO_PIN_MASK 0x1f 50 #define GPIO_PORT_SHIFT 5 51 #define GPIO_PORT_MASK (0x7 << GPIO_PORT_SHIFT) 52 #define GPIO_PORTA (PORTA << GPIO_PORT_SHIFT) 53 #define GPIO_PORTB (PORTB << GPIO_PORT_SHIFT) 54 #define GPIO_PORTC (PORTC << GPIO_PORT_SHIFT) 55 #define GPIO_PORTD (PORTD << GPIO_PORT_SHIFT) 56 #define GPIO_PORTE (PORTE << GPIO_PORT_SHIFT) 57 #define GPIO_PORTF (PORTF << GPIO_PORT_SHIFT) 58 59 #endif 60