linux/arch/mips/include/asm/mach-jz4740/gpio.h
<<
>>
Prefs
   1/*
   2 *  Copyright (C) 2009, Lars-Peter Clausen <lars@metafoo.de>
   3 *  JZ4740 GPIO pin definitions
   4 *
   5 *  This program is free software; you can redistribute it and/or modify it
   6 *  under  the terms of the GNU General Public License as published by the
   7 *  Free Software Foundation;  either version 2 of the License, or (at your
   8 *  option) any later version.
   9 *
  10 *  You should have received a copy of the GNU General Public License along
  11 *  with this program; if not, write to the Free Software Foundation, Inc.,
  12 *  675 Mass Ave, Cambridge, MA 02139, USA.
  13 *
  14 */
  15
  16#ifndef _JZ_GPIO_H
  17#define _JZ_GPIO_H
  18
  19#include <linux/types.h>
  20
  21enum jz_gpio_function {
  22    JZ_GPIO_FUNC_NONE,
  23    JZ_GPIO_FUNC1,
  24    JZ_GPIO_FUNC2,
  25    JZ_GPIO_FUNC3,
  26};
  27
  28/*
  29 Usually a driver for a SoC component has to request several gpio pins and
  30 configure them as funcion pins.
  31 jz_gpio_bulk_request can be used to ease this process.
  32 Usually one would do something like:
  33
  34 static const struct jz_gpio_bulk_request i2c_pins[] = {
  35        JZ_GPIO_BULK_PIN(I2C_SDA),
  36        JZ_GPIO_BULK_PIN(I2C_SCK),
  37 };
  38
  39 inside the probe function:
  40
  41    ret = jz_gpio_bulk_request(i2c_pins, ARRAY_SIZE(i2c_pins));
  42    if (ret) {
  43        ...
  44
  45 inside the remove function:
  46
  47    jz_gpio_bulk_free(i2c_pins, ARRAY_SIZE(i2c_pins));
  48
  49*/
  50
  51struct jz_gpio_bulk_request {
  52        int gpio;
  53        const char *name;
  54        enum jz_gpio_function function;
  55};
  56
  57#define JZ_GPIO_BULK_PIN(pin) { \
  58    .gpio = JZ_GPIO_ ## pin, \
  59    .name = #pin, \
  60    .function = JZ_GPIO_FUNC_ ## pin \
  61}
  62
  63int jz_gpio_bulk_request(const struct jz_gpio_bulk_request *request, size_t num);
  64void jz_gpio_bulk_free(const struct jz_gpio_bulk_request *request, size_t num);
  65void jz_gpio_bulk_suspend(const struct jz_gpio_bulk_request *request, size_t num);
  66void jz_gpio_bulk_resume(const struct jz_gpio_bulk_request *request, size_t num);
  67void jz_gpio_enable_pullup(unsigned gpio);
  68void jz_gpio_disable_pullup(unsigned gpio);
  69int jz_gpio_set_function(int gpio, enum jz_gpio_function function);
  70
  71int jz_gpio_port_direction_input(int port, uint32_t mask);
  72int jz_gpio_port_direction_output(int port, uint32_t mask);
  73void jz_gpio_port_set_value(int port, uint32_t value, uint32_t mask);
  74uint32_t jz_gpio_port_get_value(int port, uint32_t mask);
  75
  76#include <asm/mach-generic/gpio.h>
  77
  78#define JZ_GPIO_PORTA(x) ((x) + 32 * 0)
  79#define JZ_GPIO_PORTB(x) ((x) + 32 * 1)
  80#define JZ_GPIO_PORTC(x) ((x) + 32 * 2)
  81#define JZ_GPIO_PORTD(x) ((x) + 32 * 3)
  82
  83/* Port A function pins */
  84#define JZ_GPIO_MEM_DATA0               JZ_GPIO_PORTA(0)
  85#define JZ_GPIO_MEM_DATA1               JZ_GPIO_PORTA(1)
  86#define JZ_GPIO_MEM_DATA2               JZ_GPIO_PORTA(2)
  87#define JZ_GPIO_MEM_DATA3               JZ_GPIO_PORTA(3)
  88#define JZ_GPIO_MEM_DATA4               JZ_GPIO_PORTA(4)
  89#define JZ_GPIO_MEM_DATA5               JZ_GPIO_PORTA(5)
  90#define JZ_GPIO_MEM_DATA6               JZ_GPIO_PORTA(6)
  91#define JZ_GPIO_MEM_DATA7               JZ_GPIO_PORTA(7)
  92#define JZ_GPIO_MEM_DATA8               JZ_GPIO_PORTA(8)
  93#define JZ_GPIO_MEM_DATA9               JZ_GPIO_PORTA(9)
  94#define JZ_GPIO_MEM_DATA10              JZ_GPIO_PORTA(10)
  95#define JZ_GPIO_MEM_DATA11              JZ_GPIO_PORTA(11)
  96#define JZ_GPIO_MEM_DATA12              JZ_GPIO_PORTA(12)
  97#define JZ_GPIO_MEM_DATA13              JZ_GPIO_PORTA(13)
  98#define JZ_GPIO_MEM_DATA14              JZ_GPIO_PORTA(14)
  99#define JZ_GPIO_MEM_DATA15              JZ_GPIO_PORTA(15)
 100#define JZ_GPIO_MEM_DATA16              JZ_GPIO_PORTA(16)
 101#define JZ_GPIO_MEM_DATA17              JZ_GPIO_PORTA(17)
 102#define JZ_GPIO_MEM_DATA18              JZ_GPIO_PORTA(18)
 103#define JZ_GPIO_MEM_DATA19              JZ_GPIO_PORTA(19)
 104#define JZ_GPIO_MEM_DATA20              JZ_GPIO_PORTA(20)
 105#define JZ_GPIO_MEM_DATA21              JZ_GPIO_PORTA(21)
 106#define JZ_GPIO_MEM_DATA22              JZ_GPIO_PORTA(22)
 107#define JZ_GPIO_MEM_DATA23              JZ_GPIO_PORTA(23)
 108#define JZ_GPIO_MEM_DATA24              JZ_GPIO_PORTA(24)
 109#define JZ_GPIO_MEM_DATA25              JZ_GPIO_PORTA(25)
 110#define JZ_GPIO_MEM_DATA26              JZ_GPIO_PORTA(26)
 111#define JZ_GPIO_MEM_DATA27              JZ_GPIO_PORTA(27)
 112#define JZ_GPIO_MEM_DATA28              JZ_GPIO_PORTA(28)
 113#define JZ_GPIO_MEM_DATA29              JZ_GPIO_PORTA(29)
 114#define JZ_GPIO_MEM_DATA30              JZ_GPIO_PORTA(30)
 115#define JZ_GPIO_MEM_DATA31              JZ_GPIO_PORTA(31)
 116
 117#define JZ_GPIO_FUNC_MEM_DATA0          JZ_GPIO_FUNC1
 118#define JZ_GPIO_FUNC_MEM_DATA1          JZ_GPIO_FUNC1
 119#define JZ_GPIO_FUNC_MEM_DATA2          JZ_GPIO_FUNC1
 120#define JZ_GPIO_FUNC_MEM_DATA3          JZ_GPIO_FUNC1
 121#define JZ_GPIO_FUNC_MEM_DATA4          JZ_GPIO_FUNC1
 122#define JZ_GPIO_FUNC_MEM_DATA5          JZ_GPIO_FUNC1
 123#define JZ_GPIO_FUNC_MEM_DATA6          JZ_GPIO_FUNC1
 124#define JZ_GPIO_FUNC_MEM_DATA7          JZ_GPIO_FUNC1
 125#define JZ_GPIO_FUNC_MEM_DATA8          JZ_GPIO_FUNC1
 126#define JZ_GPIO_FUNC_MEM_DATA9          JZ_GPIO_FUNC1
 127#define JZ_GPIO_FUNC_MEM_DATA10         JZ_GPIO_FUNC1
 128#define JZ_GPIO_FUNC_MEM_DATA11         JZ_GPIO_FUNC1
 129#define JZ_GPIO_FUNC_MEM_DATA12         JZ_GPIO_FUNC1
 130#define JZ_GPIO_FUNC_MEM_DATA13         JZ_GPIO_FUNC1
 131#define JZ_GPIO_FUNC_MEM_DATA14         JZ_GPIO_FUNC1
 132#define JZ_GPIO_FUNC_MEM_DATA15         JZ_GPIO_FUNC1
 133#define JZ_GPIO_FUNC_MEM_DATA16         JZ_GPIO_FUNC1
 134#define JZ_GPIO_FUNC_MEM_DATA17         JZ_GPIO_FUNC1
 135#define JZ_GPIO_FUNC_MEM_DATA18         JZ_GPIO_FUNC1
 136#define JZ_GPIO_FUNC_MEM_DATA19         JZ_GPIO_FUNC1
 137#define JZ_GPIO_FUNC_MEM_DATA20         JZ_GPIO_FUNC1
 138#define JZ_GPIO_FUNC_MEM_DATA21         JZ_GPIO_FUNC1
 139#define JZ_GPIO_FUNC_MEM_DATA22         JZ_GPIO_FUNC1
 140#define JZ_GPIO_FUNC_MEM_DATA23         JZ_GPIO_FUNC1
 141#define JZ_GPIO_FUNC_MEM_DATA24         JZ_GPIO_FUNC1
 142#define JZ_GPIO_FUNC_MEM_DATA25         JZ_GPIO_FUNC1
 143#define JZ_GPIO_FUNC_MEM_DATA26         JZ_GPIO_FUNC1
 144#define JZ_GPIO_FUNC_MEM_DATA27         JZ_GPIO_FUNC1
 145#define JZ_GPIO_FUNC_MEM_DATA28         JZ_GPIO_FUNC1
 146#define JZ_GPIO_FUNC_MEM_DATA29         JZ_GPIO_FUNC1
 147#define JZ_GPIO_FUNC_MEM_DATA30         JZ_GPIO_FUNC1
 148#define JZ_GPIO_FUNC_MEM_DATA31         JZ_GPIO_FUNC1
 149
 150/* Port B function pins */
 151#define JZ_GPIO_MEM_ADDR0               JZ_GPIO_PORTB(0)
 152#define JZ_GPIO_MEM_ADDR1               JZ_GPIO_PORTB(1)
 153#define JZ_GPIO_MEM_ADDR2               JZ_GPIO_PORTB(2)
 154#define JZ_GPIO_MEM_ADDR3               JZ_GPIO_PORTB(3)
 155#define JZ_GPIO_MEM_ADDR4               JZ_GPIO_PORTB(4)
 156#define JZ_GPIO_MEM_ADDR5               JZ_GPIO_PORTB(5)
 157#define JZ_GPIO_MEM_ADDR6               JZ_GPIO_PORTB(6)
 158#define JZ_GPIO_MEM_ADDR7               JZ_GPIO_PORTB(7)
 159#define JZ_GPIO_MEM_ADDR8               JZ_GPIO_PORTB(8)
 160#define JZ_GPIO_MEM_ADDR9               JZ_GPIO_PORTB(9)
 161#define JZ_GPIO_MEM_ADDR10              JZ_GPIO_PORTB(10)
 162#define JZ_GPIO_MEM_ADDR11              JZ_GPIO_PORTB(11)
 163#define JZ_GPIO_MEM_ADDR12              JZ_GPIO_PORTB(12)
 164#define JZ_GPIO_MEM_ADDR13              JZ_GPIO_PORTB(13)
 165#define JZ_GPIO_MEM_ADDR14              JZ_GPIO_PORTB(14)
 166#define JZ_GPIO_MEM_ADDR15              JZ_GPIO_PORTB(15)
 167#define JZ_GPIO_MEM_ADDR16              JZ_GPIO_PORTB(16)
 168#define JZ_GPIO_LCD_CLS                 JZ_GPIO_PORTB(17)
 169#define JZ_GPIO_LCD_SPL                 JZ_GPIO_PORTB(18)
 170#define JZ_GPIO_MEM_DCS                 JZ_GPIO_PORTB(19)
 171#define JZ_GPIO_MEM_RAS                 JZ_GPIO_PORTB(20)
 172#define JZ_GPIO_MEM_CAS                 JZ_GPIO_PORTB(21)
 173#define JZ_GPIO_MEM_SDWE                JZ_GPIO_PORTB(22)
 174#define JZ_GPIO_MEM_CKE                 JZ_GPIO_PORTB(23)
 175#define JZ_GPIO_MEM_CKO                 JZ_GPIO_PORTB(24)
 176#define JZ_GPIO_MEM_CS0                 JZ_GPIO_PORTB(25)
 177#define JZ_GPIO_MEM_CS1                 JZ_GPIO_PORTB(26)
 178#define JZ_GPIO_MEM_CS2                 JZ_GPIO_PORTB(27)
 179#define JZ_GPIO_MEM_CS3                 JZ_GPIO_PORTB(28)
 180#define JZ_GPIO_MEM_RD                  JZ_GPIO_PORTB(29)
 181#define JZ_GPIO_MEM_WR                  JZ_GPIO_PORTB(30)
 182#define JZ_GPIO_MEM_WE0                 JZ_GPIO_PORTB(31)
 183
 184#define JZ_GPIO_FUNC_MEM_ADDR0          JZ_GPIO_FUNC1
 185#define JZ_GPIO_FUNC_MEM_ADDR1          JZ_GPIO_FUNC1
 186#define JZ_GPIO_FUNC_MEM_ADDR2          JZ_GPIO_FUNC1
 187#define JZ_GPIO_FUNC_MEM_ADDR3          JZ_GPIO_FUNC1
 188#define JZ_GPIO_FUNC_MEM_ADDR4          JZ_GPIO_FUNC1
 189#define JZ_GPIO_FUNC_MEM_ADDR5          JZ_GPIO_FUNC1
 190#define JZ_GPIO_FUNC_MEM_ADDR6          JZ_GPIO_FUNC1
 191#define JZ_GPIO_FUNC_MEM_ADDR7          JZ_GPIO_FUNC1
 192#define JZ_GPIO_FUNC_MEM_ADDR8          JZ_GPIO_FUNC1
 193#define JZ_GPIO_FUNC_MEM_ADDR9          JZ_GPIO_FUNC1
 194#define JZ_GPIO_FUNC_MEM_ADDR10         JZ_GPIO_FUNC1
 195#define JZ_GPIO_FUNC_MEM_ADDR11         JZ_GPIO_FUNC1
 196#define JZ_GPIO_FUNC_MEM_ADDR12         JZ_GPIO_FUNC1
 197#define JZ_GPIO_FUNC_MEM_ADDR13         JZ_GPIO_FUNC1
 198#define JZ_GPIO_FUNC_MEM_ADDR14         JZ_GPIO_FUNC1
 199#define JZ_GPIO_FUNC_MEM_ADDR15         JZ_GPIO_FUNC1
 200#define JZ_GPIO_FUNC_MEM_ADDR16         JZ_GPIO_FUNC1
 201#define JZ_GPIO_FUNC_LCD_CLS            JZ_GPIO_FUNC1
 202#define JZ_GPIO_FUNC_LCD_SPL            JZ_GPIO_FUNC1
 203#define JZ_GPIO_FUNC_MEM_DCS            JZ_GPIO_FUNC1
 204#define JZ_GPIO_FUNC_MEM_RAS            JZ_GPIO_FUNC1
 205#define JZ_GPIO_FUNC_MEM_CAS            JZ_GPIO_FUNC1
 206#define JZ_GPIO_FUNC_MEM_SDWE           JZ_GPIO_FUNC1
 207#define JZ_GPIO_FUNC_MEM_CKE            JZ_GPIO_FUNC1
 208#define JZ_GPIO_FUNC_MEM_CKO            JZ_GPIO_FUNC1
 209#define JZ_GPIO_FUNC_MEM_CS0            JZ_GPIO_FUNC1
 210#define JZ_GPIO_FUNC_MEM_CS1            JZ_GPIO_FUNC1
 211#define JZ_GPIO_FUNC_MEM_CS2            JZ_GPIO_FUNC1
 212#define JZ_GPIO_FUNC_MEM_CS3            JZ_GPIO_FUNC1
 213#define JZ_GPIO_FUNC_MEM_RD             JZ_GPIO_FUNC1
 214#define JZ_GPIO_FUNC_MEM_WR             JZ_GPIO_FUNC1
 215#define JZ_GPIO_FUNC_MEM_WE0            JZ_GPIO_FUNC1
 216
 217
 218#define JZ_GPIO_MEM_ADDR21              JZ_GPIO_PORTB(17)
 219#define JZ_GPIO_MEM_ADDR22              JZ_GPIO_PORTB(18)
 220
 221#define JZ_GPIO_FUNC_MEM_ADDR21         JZ_GPIO_FUNC2
 222#define JZ_GPIO_FUNC_MEM_ADDR22         JZ_GPIO_FUNC2
 223
 224/* Port C function pins */
 225#define JZ_GPIO_LCD_DATA0               JZ_GPIO_PORTC(0)
 226#define JZ_GPIO_LCD_DATA1               JZ_GPIO_PORTC(1)
 227#define JZ_GPIO_LCD_DATA2               JZ_GPIO_PORTC(2)
 228#define JZ_GPIO_LCD_DATA3               JZ_GPIO_PORTC(3)
 229#define JZ_GPIO_LCD_DATA4               JZ_GPIO_PORTC(4)
 230#define JZ_GPIO_LCD_DATA5               JZ_GPIO_PORTC(5)
 231#define JZ_GPIO_LCD_DATA6               JZ_GPIO_PORTC(6)
 232#define JZ_GPIO_LCD_DATA7               JZ_GPIO_PORTC(7)
 233#define JZ_GPIO_LCD_DATA8               JZ_GPIO_PORTC(8)
 234#define JZ_GPIO_LCD_DATA9               JZ_GPIO_PORTC(9)
 235#define JZ_GPIO_LCD_DATA10              JZ_GPIO_PORTC(10)
 236#define JZ_GPIO_LCD_DATA11              JZ_GPIO_PORTC(11)
 237#define JZ_GPIO_LCD_DATA12              JZ_GPIO_PORTC(12)
 238#define JZ_GPIO_LCD_DATA13              JZ_GPIO_PORTC(13)
 239#define JZ_GPIO_LCD_DATA14              JZ_GPIO_PORTC(14)
 240#define JZ_GPIO_LCD_DATA15              JZ_GPIO_PORTC(15)
 241#define JZ_GPIO_LCD_DATA16              JZ_GPIO_PORTC(16)
 242#define JZ_GPIO_LCD_DATA17              JZ_GPIO_PORTC(17)
 243#define JZ_GPIO_LCD_PCLK                JZ_GPIO_PORTC(18)
 244#define JZ_GPIO_LCD_HSYNC               JZ_GPIO_PORTC(19)
 245#define JZ_GPIO_LCD_VSYNC               JZ_GPIO_PORTC(20)
 246#define JZ_GPIO_LCD_DE                  JZ_GPIO_PORTC(21)
 247#define JZ_GPIO_LCD_PS                  JZ_GPIO_PORTC(22)
 248#define JZ_GPIO_LCD_REV                 JZ_GPIO_PORTC(23)
 249#define JZ_GPIO_MEM_WE1                 JZ_GPIO_PORTC(24)
 250#define JZ_GPIO_MEM_WE2                 JZ_GPIO_PORTC(25)
 251#define JZ_GPIO_MEM_WE3                 JZ_GPIO_PORTC(26)
 252#define JZ_GPIO_MEM_WAIT                JZ_GPIO_PORTC(27)
 253#define JZ_GPIO_MEM_FRE                 JZ_GPIO_PORTC(28)
 254#define JZ_GPIO_MEM_FWE                 JZ_GPIO_PORTC(29)
 255
 256#define JZ_GPIO_FUNC_LCD_DATA0          JZ_GPIO_FUNC1
 257#define JZ_GPIO_FUNC_LCD_DATA1          JZ_GPIO_FUNC1
 258#define JZ_GPIO_FUNC_LCD_DATA2          JZ_GPIO_FUNC1
 259#define JZ_GPIO_FUNC_LCD_DATA3          JZ_GPIO_FUNC1
 260#define JZ_GPIO_FUNC_LCD_DATA4          JZ_GPIO_FUNC1
 261#define JZ_GPIO_FUNC_LCD_DATA5          JZ_GPIO_FUNC1
 262#define JZ_GPIO_FUNC_LCD_DATA6          JZ_GPIO_FUNC1
 263#define JZ_GPIO_FUNC_LCD_DATA7          JZ_GPIO_FUNC1
 264#define JZ_GPIO_FUNC_LCD_DATA8          JZ_GPIO_FUNC1
 265#define JZ_GPIO_FUNC_LCD_DATA9          JZ_GPIO_FUNC1
 266#define JZ_GPIO_FUNC_LCD_DATA10         JZ_GPIO_FUNC1
 267#define JZ_GPIO_FUNC_LCD_DATA11         JZ_GPIO_FUNC1
 268#define JZ_GPIO_FUNC_LCD_DATA12         JZ_GPIO_FUNC1
 269#define JZ_GPIO_FUNC_LCD_DATA13         JZ_GPIO_FUNC1
 270#define JZ_GPIO_FUNC_LCD_DATA14         JZ_GPIO_FUNC1
 271#define JZ_GPIO_FUNC_LCD_DATA15         JZ_GPIO_FUNC1
 272#define JZ_GPIO_FUNC_LCD_DATA16         JZ_GPIO_FUNC1
 273#define JZ_GPIO_FUNC_LCD_DATA17         JZ_GPIO_FUNC1
 274#define JZ_GPIO_FUNC_LCD_PCLK           JZ_GPIO_FUNC1
 275#define JZ_GPIO_FUNC_LCD_VSYNC          JZ_GPIO_FUNC1
 276#define JZ_GPIO_FUNC_LCD_HSYNC          JZ_GPIO_FUNC1
 277#define JZ_GPIO_FUNC_LCD_DE             JZ_GPIO_FUNC1
 278#define JZ_GPIO_FUNC_LCD_PS             JZ_GPIO_FUNC1
 279#define JZ_GPIO_FUNC_LCD_REV            JZ_GPIO_FUNC1
 280#define JZ_GPIO_FUNC_MEM_WE1            JZ_GPIO_FUNC1
 281#define JZ_GPIO_FUNC_MEM_WE2            JZ_GPIO_FUNC1
 282#define JZ_GPIO_FUNC_MEM_WE3            JZ_GPIO_FUNC1
 283#define JZ_GPIO_FUNC_MEM_WAIT           JZ_GPIO_FUNC1
 284#define JZ_GPIO_FUNC_MEM_FRE            JZ_GPIO_FUNC1
 285#define JZ_GPIO_FUNC_MEM_FWE            JZ_GPIO_FUNC1
 286
 287
 288#define JZ_GPIO_MEM_ADDR19              JZ_GPIO_PORTB(22)
 289#define JZ_GPIO_MEM_ADDR20              JZ_GPIO_PORTB(23)
 290
 291#define JZ_GPIO_FUNC_MEM_ADDR19         JZ_GPIO_FUNC2
 292#define JZ_GPIO_FUNC_MEM_ADDR20         JZ_GPIO_FUNC2
 293
 294/* Port D function pins */
 295#define JZ_GPIO_CIM_DATA0               JZ_GPIO_PORTD(0)
 296#define JZ_GPIO_CIM_DATA1               JZ_GPIO_PORTD(1)
 297#define JZ_GPIO_CIM_DATA2               JZ_GPIO_PORTD(2)
 298#define JZ_GPIO_CIM_DATA3               JZ_GPIO_PORTD(3)
 299#define JZ_GPIO_CIM_DATA4               JZ_GPIO_PORTD(4)
 300#define JZ_GPIO_CIM_DATA5               JZ_GPIO_PORTD(5)
 301#define JZ_GPIO_CIM_DATA6               JZ_GPIO_PORTD(6)
 302#define JZ_GPIO_CIM_DATA7               JZ_GPIO_PORTD(7)
 303#define JZ_GPIO_MSC_CMD                 JZ_GPIO_PORTD(8)
 304#define JZ_GPIO_MSC_CLK                 JZ_GPIO_PORTD(9)
 305#define JZ_GPIO_MSC_DATA0               JZ_GPIO_PORTD(10)
 306#define JZ_GPIO_MSC_DATA1               JZ_GPIO_PORTD(11)
 307#define JZ_GPIO_MSC_DATA2               JZ_GPIO_PORTD(12)
 308#define JZ_GPIO_MSC_DATA3               JZ_GPIO_PORTD(13)
 309#define JZ_GPIO_CIM_MCLK                JZ_GPIO_PORTD(14)
 310#define JZ_GPIO_CIM_PCLK                JZ_GPIO_PORTD(15)
 311#define JZ_GPIO_CIM_VSYNC               JZ_GPIO_PORTD(16)
 312#define JZ_GPIO_CIM_HSYNC               JZ_GPIO_PORTD(17)
 313#define JZ_GPIO_SPI_CLK                 JZ_GPIO_PORTD(18)
 314#define JZ_GPIO_SPI_CE0                 JZ_GPIO_PORTD(19)
 315#define JZ_GPIO_SPI_DT                  JZ_GPIO_PORTD(20)
 316#define JZ_GPIO_SPI_DR                  JZ_GPIO_PORTD(21)
 317#define JZ_GPIO_SPI_CE1                 JZ_GPIO_PORTD(22)
 318#define JZ_GPIO_PWM0                    JZ_GPIO_PORTD(23)
 319#define JZ_GPIO_PWM1                    JZ_GPIO_PORTD(24)
 320#define JZ_GPIO_PWM2                    JZ_GPIO_PORTD(25)
 321#define JZ_GPIO_PWM3                    JZ_GPIO_PORTD(26)
 322#define JZ_GPIO_PWM4                    JZ_GPIO_PORTD(27)
 323#define JZ_GPIO_PWM5                    JZ_GPIO_PORTD(28)
 324#define JZ_GPIO_PWM6                    JZ_GPIO_PORTD(30)
 325#define JZ_GPIO_PWM7                    JZ_GPIO_PORTD(31)
 326
 327#define JZ_GPIO_FUNC_CIM_DATA           JZ_GPIO_FUNC1
 328#define JZ_GPIO_FUNC_CIM_DATA0          JZ_GPIO_FUNC_CIM_DATA
 329#define JZ_GPIO_FUNC_CIM_DATA1          JZ_GPIO_FUNC_CIM_DATA
 330#define JZ_GPIO_FUNC_CIM_DATA2          JZ_GPIO_FUNC_CIM_DATA
 331#define JZ_GPIO_FUNC_CIM_DATA3          JZ_GPIO_FUNC_CIM_DATA
 332#define JZ_GPIO_FUNC_CIM_DATA4          JZ_GPIO_FUNC_CIM_DATA
 333#define JZ_GPIO_FUNC_CIM_DATA5          JZ_GPIO_FUNC_CIM_DATA
 334#define JZ_GPIO_FUNC_CIM_DATA6          JZ_GPIO_FUNC_CIM_DATA
 335#define JZ_GPIO_FUNC_CIM_DATA7          JZ_GPIO_FUNC_CIM_DATA
 336#define JZ_GPIO_FUNC_MSC_CMD            JZ_GPIO_FUNC1
 337#define JZ_GPIO_FUNC_MSC_CLK            JZ_GPIO_FUNC1
 338#define JZ_GPIO_FUNC_MSC_DATA           JZ_GPIO_FUNC1
 339#define JZ_GPIO_FUNC_MSC_DATA0          JZ_GPIO_FUNC_MSC_DATA
 340#define JZ_GPIO_FUNC_MSC_DATA1          JZ_GPIO_FUNC_MSC_DATA
 341#define JZ_GPIO_FUNC_MSC_DATA2          JZ_GPIO_FUNC_MSC_DATA
 342#define JZ_GPIO_FUNC_MSC_DATA3          JZ_GPIO_FUNC_MSC_DATA
 343#define JZ_GPIO_FUNC_CIM_MCLK           JZ_GPIO_FUNC1
 344#define JZ_GPIO_FUNC_CIM_PCLK           JZ_GPIO_FUNC1
 345#define JZ_GPIO_FUNC_CIM_VSYNC          JZ_GPIO_FUNC1
 346#define JZ_GPIO_FUNC_CIM_HSYNC          JZ_GPIO_FUNC1
 347#define JZ_GPIO_FUNC_SPI_CLK            JZ_GPIO_FUNC1
 348#define JZ_GPIO_FUNC_SPI_CE0            JZ_GPIO_FUNC1
 349#define JZ_GPIO_FUNC_SPI_DT             JZ_GPIO_FUNC1
 350#define JZ_GPIO_FUNC_SPI_DR             JZ_GPIO_FUNC1
 351#define JZ_GPIO_FUNC_SPI_CE1            JZ_GPIO_FUNC1
 352
 353#define JZ_GPIO_FUNC_PWM                JZ_GPIO_FUNC1
 354#define JZ_GPIO_FUNC_PWM0               JZ_GPIO_FUNC_PWM
 355#define JZ_GPIO_FUNC_PWM1               JZ_GPIO_FUNC_PWM
 356#define JZ_GPIO_FUNC_PWM2               JZ_GPIO_FUNC_PWM
 357#define JZ_GPIO_FUNC_PWM3               JZ_GPIO_FUNC_PWM
 358#define JZ_GPIO_FUNC_PWM4               JZ_GPIO_FUNC_PWM
 359#define JZ_GPIO_FUNC_PWM5               JZ_GPIO_FUNC_PWM
 360#define JZ_GPIO_FUNC_PWM6               JZ_GPIO_FUNC_PWM
 361#define JZ_GPIO_FUNC_PWM7               JZ_GPIO_FUNC_PWM
 362
 363#define JZ_GPIO_MEM_SCLK_RSTN           JZ_GPIO_PORTD(18)
 364#define JZ_GPIO_MEM_BCLK                JZ_GPIO_PORTD(19)
 365#define JZ_GPIO_MEM_SDATO               JZ_GPIO_PORTD(20)
 366#define JZ_GPIO_MEM_SDATI               JZ_GPIO_PORTD(21)
 367#define JZ_GPIO_MEM_SYNC                JZ_GPIO_PORTD(22)
 368#define JZ_GPIO_I2C_SDA                 JZ_GPIO_PORTD(23)
 369#define JZ_GPIO_I2C_SCK                 JZ_GPIO_PORTD(24)
 370#define JZ_GPIO_UART0_TXD               JZ_GPIO_PORTD(25)
 371#define JZ_GPIO_UART0_RXD               JZ_GPIO_PORTD(26)
 372#define JZ_GPIO_MEM_ADDR17              JZ_GPIO_PORTD(27)
 373#define JZ_GPIO_MEM_ADDR18              JZ_GPIO_PORTD(28)
 374#define JZ_GPIO_UART0_CTS               JZ_GPIO_PORTD(30)
 375#define JZ_GPIO_UART0_RTS               JZ_GPIO_PORTD(31)
 376
 377#define JZ_GPIO_FUNC_MEM_SCLK_RSTN      JZ_GPIO_FUNC2
 378#define JZ_GPIO_FUNC_MEM_BCLK           JZ_GPIO_FUNC2
 379#define JZ_GPIO_FUNC_MEM_SDATO          JZ_GPIO_FUNC2
 380#define JZ_GPIO_FUNC_MEM_SDATI          JZ_GPIO_FUNC2
 381#define JZ_GPIO_FUNC_MEM_SYNC           JZ_GPIO_FUNC2
 382#define JZ_GPIO_FUNC_I2C_SDA            JZ_GPIO_FUNC2
 383#define JZ_GPIO_FUNC_I2C_SCK            JZ_GPIO_FUNC2
 384#define JZ_GPIO_FUNC_UART0_TXD          JZ_GPIO_FUNC2
 385#define JZ_GPIO_FUNC_UART0_RXD          JZ_GPIO_FUNC2
 386#define JZ_GPIO_FUNC_MEM_ADDR17         JZ_GPIO_FUNC2
 387#define JZ_GPIO_FUNC_MEM_ADDR18         JZ_GPIO_FUNC2
 388#define JZ_GPIO_FUNC_UART0_CTS          JZ_GPIO_FUNC2
 389#define JZ_GPIO_FUNC_UART0_RTS          JZ_GPIO_FUNC2
 390
 391#define JZ_GPIO_UART1_RXD               JZ_GPIO_PORTD(30)
 392#define JZ_GPIO_UART1_TXD               JZ_GPIO_PORTD(31)
 393
 394#define JZ_GPIO_FUNC_UART1_RXD          JZ_GPIO_FUNC3
 395#define JZ_GPIO_FUNC_UART1_TXD          JZ_GPIO_FUNC3
 396
 397#endif
 398