/*
 *  Copyright (C) 2009, Lars-Peter Clausen <lars@metafoo.de>
 *  JZ4740 GPIO pin definitions
 *
 *  This program is free software; you can redistribute it and/or modify it
 *  under  the terms of the GNU General Public License as published by the
 *  Free Software Foundation;  either version 2 of the License, or (at your
 *  option) any later version.
 *
 *  You should have received a copy of the GNU General Public License along
 *  with this program; if not, write to the Free Software Foundation, Inc.,
 *  675 Mass Ave, Cambridge, MA 02139, USA.
 *
 */

#ifndef _JZ_GPIO_H
#define _JZ_GPIO_H

#include <linux/types.h>

enum jz_gpio_function {
    JZ_GPIO_FUNC_NONE,
    JZ_GPIO_FUNC1,
    JZ_GPIO_FUNC2,
    JZ_GPIO_FUNC3,
};

/*
 Usually a driver for a SoC component has to request several gpio pins and
 configure them as funcion pins.
 jz_gpio_bulk_request can be used to ease this process.
 Usually one would do something like:

 static const struct jz_gpio_bulk_request i2c_pins[] = {
	JZ_GPIO_BULK_PIN(I2C_SDA),
	JZ_GPIO_BULK_PIN(I2C_SCK),
 };

 inside the probe function:

    ret = jz_gpio_bulk_request(i2c_pins, ARRAY_SIZE(i2c_pins));
    if (ret) {
	...

 inside the remove function:

    jz_gpio_bulk_free(i2c_pins, ARRAY_SIZE(i2c_pins));

*/

struct jz_gpio_bulk_request {
	int gpio;
	const char *name;
	enum jz_gpio_function function;
};

#define JZ_GPIO_BULK_PIN(pin) { \
    .gpio = JZ_GPIO_ ## pin, \
    .name = #pin, \
    .function = JZ_GPIO_FUNC_ ## pin \
}

int jz_gpio_bulk_request(const struct jz_gpio_bulk_request *request, size_t num);
void jz_gpio_bulk_free(const struct jz_gpio_bulk_request *request, size_t num);
void jz_gpio_bulk_suspend(const struct jz_gpio_bulk_request *request, size_t num);
void jz_gpio_bulk_resume(const struct jz_gpio_bulk_request *request, size_t num);
void jz_gpio_enable_pullup(unsigned gpio);
void jz_gpio_disable_pullup(unsigned gpio);
int jz_gpio_set_function(int gpio, enum jz_gpio_function function);

int jz_gpio_port_direction_input(int port, uint32_t mask);
int jz_gpio_port_direction_output(int port, uint32_t mask);
void jz_gpio_port_set_value(int port, uint32_t value, uint32_t mask);
uint32_t jz_gpio_port_get_value(int port, uint32_t mask);

#include <asm/mach-generic/gpio.h>

#define JZ_GPIO_PORTA(x) ((x) + 32 * 0)
#define JZ_GPIO_PORTB(x) ((x) + 32 * 1)
#define JZ_GPIO_PORTC(x) ((x) + 32 * 2)
#define JZ_GPIO_PORTD(x) ((x) + 32 * 3)

/* Port A function pins */
#define JZ_GPIO_MEM_DATA0		JZ_GPIO_PORTA(0)
#define JZ_GPIO_MEM_DATA1		JZ_GPIO_PORTA(1)
#define JZ_GPIO_MEM_DATA2		JZ_GPIO_PORTA(2)
#define JZ_GPIO_MEM_DATA3		JZ_GPIO_PORTA(3)
#define JZ_GPIO_MEM_DATA4		JZ_GPIO_PORTA(4)
#define JZ_GPIO_MEM_DATA5		JZ_GPIO_PORTA(5)
#define JZ_GPIO_MEM_DATA6		JZ_GPIO_PORTA(6)
#define JZ_GPIO_MEM_DATA7		JZ_GPIO_PORTA(7)
#define JZ_GPIO_MEM_DATA8		JZ_GPIO_PORTA(8)
#define JZ_GPIO_MEM_DATA9		JZ_GPIO_PORTA(9)
#define JZ_GPIO_MEM_DATA10		JZ_GPIO_PORTA(10)
#define JZ_GPIO_MEM_DATA11		JZ_GPIO_PORTA(11)
#define JZ_GPIO_MEM_DATA12		JZ_GPIO_PORTA(12)
#define JZ_GPIO_MEM_DATA13		JZ_GPIO_PORTA(13)
#define JZ_GPIO_MEM_DATA14		JZ_GPIO_PORTA(14)
#define JZ_GPIO_MEM_DATA15		JZ_GPIO_PORTA(15)
#define JZ_GPIO_MEM_DATA16		JZ_GPIO_PORTA(16)
#define JZ_GPIO_MEM_DATA17		JZ_GPIO_PORTA(17)
#define JZ_GPIO_MEM_DATA18		JZ_GPIO_PORTA(18)
#define JZ_GPIO_MEM_DATA19		JZ_GPIO_PORTA(19)
#define JZ_GPIO_MEM_DATA20		JZ_GPIO_PORTA(20)
#define JZ_GPIO_MEM_DATA21		JZ_GPIO_PORTA(21)
#define JZ_GPIO_MEM_DATA22		JZ_GPIO_PORTA(22)
#define JZ_GPIO_MEM_DATA23		JZ_GPIO_PORTA(23)
#define JZ_GPIO_MEM_DATA24		JZ_GPIO_PORTA(24)
#define JZ_GPIO_MEM_DATA25		JZ_GPIO_PORTA(25)
#define JZ_GPIO_MEM_DATA26		JZ_GPIO_PORTA(26)
#define JZ_GPIO_MEM_DATA27		JZ_GPIO_PORTA(27)
#define JZ_GPIO_MEM_DATA28		JZ_GPIO_PORTA(28)
#define JZ_GPIO_MEM_DATA29		JZ_GPIO_PORTA(29)
#define JZ_GPIO_MEM_DATA30		JZ_GPIO_PORTA(30)
#define JZ_GPIO_MEM_DATA31		JZ_GPIO_PORTA(31)

#define JZ_GPIO_FUNC_MEM_DATA0		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_DATA1		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_DATA2		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_DATA3		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_DATA4		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_DATA5		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_DATA6		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_DATA7		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_DATA8		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_DATA9		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_DATA10		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_DATA11		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_DATA12		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_DATA13		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_DATA14		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_DATA15		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_DATA16		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_DATA17		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_DATA18		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_DATA19		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_DATA20		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_DATA21		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_DATA22		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_DATA23		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_DATA24		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_DATA25		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_DATA26		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_DATA27		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_DATA28		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_DATA29		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_DATA30		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_DATA31		JZ_GPIO_FUNC1

/* Port B function pins */
#define JZ_GPIO_MEM_ADDR0		JZ_GPIO_PORTB(0)
#define JZ_GPIO_MEM_ADDR1		JZ_GPIO_PORTB(1)
#define JZ_GPIO_MEM_ADDR2		JZ_GPIO_PORTB(2)
#define JZ_GPIO_MEM_ADDR3		JZ_GPIO_PORTB(3)
#define JZ_GPIO_MEM_ADDR4		JZ_GPIO_PORTB(4)
#define JZ_GPIO_MEM_ADDR5		JZ_GPIO_PORTB(5)
#define JZ_GPIO_MEM_ADDR6		JZ_GPIO_PORTB(6)
#define JZ_GPIO_MEM_ADDR7		JZ_GPIO_PORTB(7)
#define JZ_GPIO_MEM_ADDR8		JZ_GPIO_PORTB(8)
#define JZ_GPIO_MEM_ADDR9		JZ_GPIO_PORTB(9)
#define JZ_GPIO_MEM_ADDR10		JZ_GPIO_PORTB(10)
#define JZ_GPIO_MEM_ADDR11		JZ_GPIO_PORTB(11)
#define JZ_GPIO_MEM_ADDR12		JZ_GPIO_PORTB(12)
#define JZ_GPIO_MEM_ADDR13		JZ_GPIO_PORTB(13)
#define JZ_GPIO_MEM_ADDR14		JZ_GPIO_PORTB(14)
#define JZ_GPIO_MEM_ADDR15		JZ_GPIO_PORTB(15)
#define JZ_GPIO_MEM_ADDR16		JZ_GPIO_PORTB(16)
#define JZ_GPIO_LCD_CLS			JZ_GPIO_PORTB(17)
#define JZ_GPIO_LCD_SPL			JZ_GPIO_PORTB(18)
#define JZ_GPIO_MEM_DCS			JZ_GPIO_PORTB(19)
#define JZ_GPIO_MEM_RAS			JZ_GPIO_PORTB(20)
#define JZ_GPIO_MEM_CAS			JZ_GPIO_PORTB(21)
#define JZ_GPIO_MEM_SDWE		JZ_GPIO_PORTB(22)
#define JZ_GPIO_MEM_CKE			JZ_GPIO_PORTB(23)
#define JZ_GPIO_MEM_CKO			JZ_GPIO_PORTB(24)
#define JZ_GPIO_MEM_CS0			JZ_GPIO_PORTB(25)
#define JZ_GPIO_MEM_CS1			JZ_GPIO_PORTB(26)
#define JZ_GPIO_MEM_CS2			JZ_GPIO_PORTB(27)
#define JZ_GPIO_MEM_CS3			JZ_GPIO_PORTB(28)
#define JZ_GPIO_MEM_RD			JZ_GPIO_PORTB(29)
#define JZ_GPIO_MEM_WR			JZ_GPIO_PORTB(30)
#define JZ_GPIO_MEM_WE0			JZ_GPIO_PORTB(31)

#define JZ_GPIO_FUNC_MEM_ADDR0		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_ADDR1		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_ADDR2		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_ADDR3		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_ADDR4		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_ADDR5		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_ADDR6		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_ADDR7		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_ADDR8		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_ADDR9		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_ADDR10		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_ADDR11		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_ADDR12		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_ADDR13		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_ADDR14		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_ADDR15		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_ADDR16		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_LCD_CLS	        JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_LCD_SPL		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_DCS		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_RAS		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_CAS		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_SDWE		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_CKE		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_CKO		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_CS0		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_CS1		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_CS2		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_CS3		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_RD		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_WR		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_WE0		JZ_GPIO_FUNC1


#define JZ_GPIO_MEM_ADDR21		JZ_GPIO_PORTB(17)
#define JZ_GPIO_MEM_ADDR22		JZ_GPIO_PORTB(18)

#define JZ_GPIO_FUNC_MEM_ADDR21		JZ_GPIO_FUNC2
#define JZ_GPIO_FUNC_MEM_ADDR22		JZ_GPIO_FUNC2

/* Port C function pins */
#define JZ_GPIO_LCD_DATA0		JZ_GPIO_PORTC(0)
#define JZ_GPIO_LCD_DATA1		JZ_GPIO_PORTC(1)
#define JZ_GPIO_LCD_DATA2		JZ_GPIO_PORTC(2)
#define JZ_GPIO_LCD_DATA3		JZ_GPIO_PORTC(3)
#define JZ_GPIO_LCD_DATA4		JZ_GPIO_PORTC(4)
#define JZ_GPIO_LCD_DATA5		JZ_GPIO_PORTC(5)
#define JZ_GPIO_LCD_DATA6		JZ_GPIO_PORTC(6)
#define JZ_GPIO_LCD_DATA7		JZ_GPIO_PORTC(7)
#define JZ_GPIO_LCD_DATA8		JZ_GPIO_PORTC(8)
#define JZ_GPIO_LCD_DATA9		JZ_GPIO_PORTC(9)
#define JZ_GPIO_LCD_DATA10		JZ_GPIO_PORTC(10)
#define JZ_GPIO_LCD_DATA11		JZ_GPIO_PORTC(11)
#define JZ_GPIO_LCD_DATA12		JZ_GPIO_PORTC(12)
#define JZ_GPIO_LCD_DATA13		JZ_GPIO_PORTC(13)
#define JZ_GPIO_LCD_DATA14		JZ_GPIO_PORTC(14)
#define JZ_GPIO_LCD_DATA15		JZ_GPIO_PORTC(15)
#define JZ_GPIO_LCD_DATA16		JZ_GPIO_PORTC(16)
#define JZ_GPIO_LCD_DATA17		JZ_GPIO_PORTC(17)
#define JZ_GPIO_LCD_PCLK		JZ_GPIO_PORTC(18)
#define JZ_GPIO_LCD_HSYNC		JZ_GPIO_PORTC(19)
#define JZ_GPIO_LCD_VSYNC		JZ_GPIO_PORTC(20)
#define JZ_GPIO_LCD_DE			JZ_GPIO_PORTC(21)
#define JZ_GPIO_LCD_PS			JZ_GPIO_PORTC(22)
#define JZ_GPIO_LCD_REV			JZ_GPIO_PORTC(23)
#define JZ_GPIO_MEM_WE1			JZ_GPIO_PORTC(24)
#define JZ_GPIO_MEM_WE2			JZ_GPIO_PORTC(25)
#define JZ_GPIO_MEM_WE3			JZ_GPIO_PORTC(26)
#define JZ_GPIO_MEM_WAIT		JZ_GPIO_PORTC(27)
#define JZ_GPIO_MEM_FRE			JZ_GPIO_PORTC(28)
#define JZ_GPIO_MEM_FWE			JZ_GPIO_PORTC(29)

#define JZ_GPIO_FUNC_LCD_DATA0		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_LCD_DATA1		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_LCD_DATA2		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_LCD_DATA3		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_LCD_DATA4		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_LCD_DATA5		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_LCD_DATA6		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_LCD_DATA7		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_LCD_DATA8		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_LCD_DATA9		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_LCD_DATA10		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_LCD_DATA11		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_LCD_DATA12		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_LCD_DATA13		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_LCD_DATA14		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_LCD_DATA15		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_LCD_DATA16		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_LCD_DATA17		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_LCD_PCLK		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_LCD_VSYNC		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_LCD_HSYNC		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_LCD_DE		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_LCD_PS		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_LCD_REV		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_WE1		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_WE2		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_WE3		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_WAIT		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_FRE		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MEM_FWE		JZ_GPIO_FUNC1


#define JZ_GPIO_MEM_ADDR19		JZ_GPIO_PORTB(22)
#define JZ_GPIO_MEM_ADDR20		JZ_GPIO_PORTB(23)

#define JZ_GPIO_FUNC_MEM_ADDR19		JZ_GPIO_FUNC2
#define JZ_GPIO_FUNC_MEM_ADDR20		JZ_GPIO_FUNC2

/* Port D function pins */
#define JZ_GPIO_CIM_DATA0		JZ_GPIO_PORTD(0)
#define JZ_GPIO_CIM_DATA1		JZ_GPIO_PORTD(1)
#define JZ_GPIO_CIM_DATA2		JZ_GPIO_PORTD(2)
#define JZ_GPIO_CIM_DATA3		JZ_GPIO_PORTD(3)
#define JZ_GPIO_CIM_DATA4		JZ_GPIO_PORTD(4)
#define JZ_GPIO_CIM_DATA5		JZ_GPIO_PORTD(5)
#define JZ_GPIO_CIM_DATA6		JZ_GPIO_PORTD(6)
#define JZ_GPIO_CIM_DATA7		JZ_GPIO_PORTD(7)
#define JZ_GPIO_MSC_CMD			JZ_GPIO_PORTD(8)
#define JZ_GPIO_MSC_CLK			JZ_GPIO_PORTD(9)
#define JZ_GPIO_MSC_DATA0		JZ_GPIO_PORTD(10)
#define JZ_GPIO_MSC_DATA1		JZ_GPIO_PORTD(11)
#define JZ_GPIO_MSC_DATA2		JZ_GPIO_PORTD(12)
#define JZ_GPIO_MSC_DATA3		JZ_GPIO_PORTD(13)
#define JZ_GPIO_CIM_MCLK		JZ_GPIO_PORTD(14)
#define JZ_GPIO_CIM_PCLK		JZ_GPIO_PORTD(15)
#define JZ_GPIO_CIM_VSYNC		JZ_GPIO_PORTD(16)
#define JZ_GPIO_CIM_HSYNC		JZ_GPIO_PORTD(17)
#define JZ_GPIO_SPI_CLK			JZ_GPIO_PORTD(18)
#define JZ_GPIO_SPI_CE0			JZ_GPIO_PORTD(19)
#define JZ_GPIO_SPI_DT			JZ_GPIO_PORTD(20)
#define JZ_GPIO_SPI_DR			JZ_GPIO_PORTD(21)
#define JZ_GPIO_SPI_CE1			JZ_GPIO_PORTD(22)
#define JZ_GPIO_PWM0			JZ_GPIO_PORTD(23)
#define JZ_GPIO_PWM1			JZ_GPIO_PORTD(24)
#define JZ_GPIO_PWM2			JZ_GPIO_PORTD(25)
#define JZ_GPIO_PWM3			JZ_GPIO_PORTD(26)
#define JZ_GPIO_PWM4			JZ_GPIO_PORTD(27)
#define JZ_GPIO_PWM5			JZ_GPIO_PORTD(28)
#define JZ_GPIO_PWM6			JZ_GPIO_PORTD(30)
#define JZ_GPIO_PWM7			JZ_GPIO_PORTD(31)

#define JZ_GPIO_FUNC_CIM_DATA		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_CIM_DATA0		JZ_GPIO_FUNC_CIM_DATA
#define JZ_GPIO_FUNC_CIM_DATA1		JZ_GPIO_FUNC_CIM_DATA
#define JZ_GPIO_FUNC_CIM_DATA2		JZ_GPIO_FUNC_CIM_DATA
#define JZ_GPIO_FUNC_CIM_DATA3		JZ_GPIO_FUNC_CIM_DATA
#define JZ_GPIO_FUNC_CIM_DATA4		JZ_GPIO_FUNC_CIM_DATA
#define JZ_GPIO_FUNC_CIM_DATA5		JZ_GPIO_FUNC_CIM_DATA
#define JZ_GPIO_FUNC_CIM_DATA6		JZ_GPIO_FUNC_CIM_DATA
#define JZ_GPIO_FUNC_CIM_DATA7		JZ_GPIO_FUNC_CIM_DATA
#define JZ_GPIO_FUNC_MSC_CMD		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MSC_CLK		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MSC_DATA		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_MSC_DATA0		JZ_GPIO_FUNC_MSC_DATA
#define JZ_GPIO_FUNC_MSC_DATA1		JZ_GPIO_FUNC_MSC_DATA
#define JZ_GPIO_FUNC_MSC_DATA2		JZ_GPIO_FUNC_MSC_DATA
#define JZ_GPIO_FUNC_MSC_DATA3		JZ_GPIO_FUNC_MSC_DATA
#define JZ_GPIO_FUNC_CIM_MCLK		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_CIM_PCLK		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_CIM_VSYNC		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_CIM_HSYNC		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_SPI_CLK		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_SPI_CE0		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_SPI_DT		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_SPI_DR		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_SPI_CE1		JZ_GPIO_FUNC1

#define JZ_GPIO_FUNC_PWM		JZ_GPIO_FUNC1
#define JZ_GPIO_FUNC_PWM0		JZ_GPIO_FUNC_PWM
#define JZ_GPIO_FUNC_PWM1		JZ_GPIO_FUNC_PWM
#define JZ_GPIO_FUNC_PWM2		JZ_GPIO_FUNC_PWM
#define JZ_GPIO_FUNC_PWM3		JZ_GPIO_FUNC_PWM
#define JZ_GPIO_FUNC_PWM4		JZ_GPIO_FUNC_PWM
#define JZ_GPIO_FUNC_PWM5		JZ_GPIO_FUNC_PWM
#define JZ_GPIO_FUNC_PWM6		JZ_GPIO_FUNC_PWM
#define JZ_GPIO_FUNC_PWM7		JZ_GPIO_FUNC_PWM

#define JZ_GPIO_MEM_SCLK_RSTN		JZ_GPIO_PORTD(18)
#define JZ_GPIO_MEM_BCLK		JZ_GPIO_PORTD(19)
#define JZ_GPIO_MEM_SDATO		JZ_GPIO_PORTD(20)
#define JZ_GPIO_MEM_SDATI		JZ_GPIO_PORTD(21)
#define JZ_GPIO_MEM_SYNC		JZ_GPIO_PORTD(22)
#define JZ_GPIO_I2C_SDA			JZ_GPIO_PORTD(23)
#define JZ_GPIO_I2C_SCK			JZ_GPIO_PORTD(24)
#define JZ_GPIO_UART0_TXD		JZ_GPIO_PORTD(25)
#define JZ_GPIO_UART0_RXD		JZ_GPIO_PORTD(26)
#define JZ_GPIO_MEM_ADDR17		JZ_GPIO_PORTD(27)
#define JZ_GPIO_MEM_ADDR18		JZ_GPIO_PORTD(28)
#define JZ_GPIO_UART0_CTS		JZ_GPIO_PORTD(30)
#define JZ_GPIO_UART0_RTS		JZ_GPIO_PORTD(31)

#define JZ_GPIO_FUNC_MEM_SCLK_RSTN	JZ_GPIO_FUNC2
#define JZ_GPIO_FUNC_MEM_BCLK		JZ_GPIO_FUNC2
#define JZ_GPIO_FUNC_MEM_SDATO		JZ_GPIO_FUNC2
#define JZ_GPIO_FUNC_MEM_SDATI		JZ_GPIO_FUNC2
#define JZ_GPIO_FUNC_MEM_SYNC		JZ_GPIO_FUNC2
#define JZ_GPIO_FUNC_I2C_SDA		JZ_GPIO_FUNC2
#define JZ_GPIO_FUNC_I2C_SCK		JZ_GPIO_FUNC2
#define JZ_GPIO_FUNC_UART0_TXD		JZ_GPIO_FUNC2
#define JZ_GPIO_FUNC_UART0_RXD		JZ_GPIO_FUNC2
#define JZ_GPIO_FUNC_MEM_ADDR17		JZ_GPIO_FUNC2
#define JZ_GPIO_FUNC_MEM_ADDR18		JZ_GPIO_FUNC2
#define JZ_GPIO_FUNC_UART0_CTS		JZ_GPIO_FUNC2
#define JZ_GPIO_FUNC_UART0_RTS		JZ_GPIO_FUNC2

#define JZ_GPIO_UART1_RXD		JZ_GPIO_PORTD(30)
#define JZ_GPIO_UART1_TXD		JZ_GPIO_PORTD(31)

#define JZ_GPIO_FUNC_UART1_RXD		JZ_GPIO_FUNC3
#define JZ_GPIO_FUNC_UART1_TXD		JZ_GPIO_FUNC3

#endif
