/*
 * Copyright (C) 2017 Amlogic, Inc. All rights reserved.
 *
 * 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.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
 * more details.
 *
 */

#ifndef __ARCH_GXBB_GPIO_H__
#define __ARCH_GXBB_GPIO_H__
/*AO Bank*/
#define	GPIOAO_0    0
#define	GPIOAO_1    1
#define	GPIOAO_2    2
#define	GPIOAO_3    3
#define	GPIOAO_4    4
#define	GPIOAO_5    5
#define	GPIOAO_6    6
#define	GPIOAO_7    7
#define	GPIOAO_8    8
#define	GPIOAO_9    9
#define GPIOAO_12	12
/*EE Bank*/
#define	GPIOZ_0    0
#define	GPIOZ_1    1
#define	GPIOZ_2    2
#define	GPIOZ_3    3
#define	GPIOZ_4    4
#define	GPIOZ_5    5
#define	GPIOZ_6    6
#define	GPIOZ_7    7
#define	GPIOZ_8    8
#define	GPIOZ_9    9
#define	GPIOZ_10    10
#define	GPIOZ_11    11
#define	GPIOZ_12    12
#define	GPIOZ_13    13
#define	GPIOZ_14    14
#define	GPIOZ_15    15

#define	GPIOH_0    16
#define	GPIOH_1    17
#define	GPIOH_2    18
#define	GPIOH_3    19
#define	GPIOH_4    20
#define	GPIOH_5    21
#define	GPIOH_6    22
#define	GPIOH_7    23
#define	GPIOH_8    24
#define	GPIOH_9    25

#define	BOOT_0    26
#define	BOOT_1    27
#define	BOOT_2    28
#define	BOOT_3    29
#define	BOOT_4    30
#define	BOOT_5    31
#define	BOOT_6    32
#define	BOOT_7    33
#define	BOOT_8    34
#define	BOOT_9    35
#define	BOOT_10    36
#define	BOOT_11    37
#define	BOOT_12    38
#define	BOOT_13    39
#define	BOOT_14    40
#define	BOOT_15    41

#define	CARD_0    42
#define	CARD_1    43
#define	CARD_2    44
#define	CARD_3    45
#define	CARD_4    46
#define	CARD_5    47
#define	CARD_6    48

#define	GPIODV_0    49
#define	GPIODV_1    50
#define	GPIODV_2    51
#define	GPIODV_3    52
#define	GPIODV_4    53
#define	GPIODV_5    54
#define	GPIODV_6    55
#define	GPIODV_7    56
#define	GPIODV_8    57
#define	GPIODV_9    58
#define	GPIODV_10    59
#define	GPIODV_11    60
#define	GPIODV_12    61
#define	GPIODV_13    62
#define	GPIODV_14    63
#define	GPIODV_15    64
#define	GPIODV_16    65
#define	GPIODV_17    66
#define	GPIODV_18    67
#define	GPIODV_19    68
#define	GPIODV_20    69
#define	GPIODV_21    70
#define	GPIODV_22    71
#define	GPIODV_23    72
#define	GPIODV_24    73
#define	GPIODV_25    74
#define	GPIODV_26    75
#define	GPIODV_27    76
#define	GPIODV_28    77
#define	GPIODV_29    78

#define	GPIOX_0    79
#define	GPIOX_1    80
#define	GPIOX_2    81
#define	GPIOX_3    82
#define	GPIOX_4    83
#define	GPIOX_5    84
#define	GPIOX_6    85
#define	GPIOX_7    86
#define	GPIOX_8    87
#define	GPIOX_9    88
#define	GPIOX_10    89
#define	GPIOX_11    90
#define	GPIOX_12    91
#define	GPIOX_13    92
#define	GPIOX_14    93
#define	GPIOX_15    94
#define	GPIOX_16    95
#define	GPIOX_17    96
#define	GPIOX_18    97

#define	GPIOCLK_0    98
#define	GPIOCLK_1    99

#define	GPIO_TEST_N    100


/*AO REG */
#define AO 0x10
#define AO2 0x11
#endif
