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