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