1bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park/* 2bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park * Copyright (c) 2010-2012 Samsung Electronics Co., Ltd. 37d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim * http://www.samsung.com 47d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim * 5bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park * EXYNOS - GPIO lib support 67d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim * 77d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim * This program is free software; you can redistribute it and/or modify 87d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim * it under the terms of the GNU General Public License version 2 as 97d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim * published by the Free Software Foundation. 107d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim*/ 117d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim 127d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#ifndef __ASM_ARCH_GPIO_H 137d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define __ASM_ARCH_GPIO_H __FILE__ 147d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim 15bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park/* Macro for EXYNOS GPIO numbering */ 16bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park 17bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS_GPIO_NEXT(__gpio) \ 18bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park ((__gpio##_START) + (__gpio##_NR) + CONFIG_S3C_GPIO_SPACE + 1) 19bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park 20bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park/* EXYNOS4 GPIO bank sizes */ 217d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim 227d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPIO_A0_NR (8) 237d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPIO_A1_NR (6) 247d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPIO_B_NR (8) 257d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPIO_C0_NR (5) 267d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPIO_C1_NR (5) 277d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPIO_D0_NR (4) 287d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPIO_D1_NR (4) 297d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPIO_E0_NR (5) 307d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPIO_E1_NR (8) 317d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPIO_E2_NR (6) 327d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPIO_E3_NR (8) 337d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPIO_E4_NR (8) 347d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPIO_F0_NR (8) 357d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPIO_F1_NR (8) 367d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPIO_F2_NR (8) 377d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPIO_F3_NR (6) 387d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPIO_J0_NR (8) 397d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPIO_J1_NR (5) 407d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPIO_K0_NR (7) 417d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPIO_K1_NR (7) 427d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPIO_K2_NR (7) 437d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPIO_K3_NR (7) 447d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPIO_L0_NR (8) 457d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPIO_L1_NR (3) 467d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPIO_L2_NR (8) 477d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPIO_X0_NR (8) 487d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPIO_X1_NR (8) 497d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPIO_X2_NR (8) 507d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPIO_X3_NR (8) 5147a9c0ee79489a3bd4ed52f424b5e5c507768ce3Marek Szyprowski#define EXYNOS4_GPIO_Y0_NR (6) 5247a9c0ee79489a3bd4ed52f424b5e5c507768ce3Marek Szyprowski#define EXYNOS4_GPIO_Y1_NR (4) 5347a9c0ee79489a3bd4ed52f424b5e5c507768ce3Marek Szyprowski#define EXYNOS4_GPIO_Y2_NR (6) 5447a9c0ee79489a3bd4ed52f424b5e5c507768ce3Marek Szyprowski#define EXYNOS4_GPIO_Y3_NR (8) 5547a9c0ee79489a3bd4ed52f424b5e5c507768ce3Marek Szyprowski#define EXYNOS4_GPIO_Y4_NR (8) 5647a9c0ee79489a3bd4ed52f424b5e5c507768ce3Marek Szyprowski#define EXYNOS4_GPIO_Y5_NR (8) 5747a9c0ee79489a3bd4ed52f424b5e5c507768ce3Marek Szyprowski#define EXYNOS4_GPIO_Y6_NR (8) 587d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPIO_Z_NR (7) 597d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim 60bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park/* EXYNOS4 GPIO bank numbers */ 617d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim 62bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Parkenum exynos4_gpio_number { 637d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim EXYNOS4_GPIO_A0_START = 0, 64bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS4_GPIO_A1_START = EXYNOS_GPIO_NEXT(EXYNOS4_GPIO_A0), 65bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS4_GPIO_B_START = EXYNOS_GPIO_NEXT(EXYNOS4_GPIO_A1), 66bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS4_GPIO_C0_START = EXYNOS_GPIO_NEXT(EXYNOS4_GPIO_B), 67bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS4_GPIO_C1_START = EXYNOS_GPIO_NEXT(EXYNOS4_GPIO_C0), 68bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS4_GPIO_D0_START = EXYNOS_GPIO_NEXT(EXYNOS4_GPIO_C1), 69bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS4_GPIO_D1_START = EXYNOS_GPIO_NEXT(EXYNOS4_GPIO_D0), 70bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS4_GPIO_E0_START = EXYNOS_GPIO_NEXT(EXYNOS4_GPIO_D1), 71bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS4_GPIO_E1_START = EXYNOS_GPIO_NEXT(EXYNOS4_GPIO_E0), 72bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS4_GPIO_E2_START = EXYNOS_GPIO_NEXT(EXYNOS4_GPIO_E1), 73bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS4_GPIO_E3_START = EXYNOS_GPIO_NEXT(EXYNOS4_GPIO_E2), 74bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS4_GPIO_E4_START = EXYNOS_GPIO_NEXT(EXYNOS4_GPIO_E3), 75bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS4_GPIO_F0_START = EXYNOS_GPIO_NEXT(EXYNOS4_GPIO_E4), 76bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS4_GPIO_F1_START = EXYNOS_GPIO_NEXT(EXYNOS4_GPIO_F0), 77bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS4_GPIO_F2_START = EXYNOS_GPIO_NEXT(EXYNOS4_GPIO_F1), 78bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS4_GPIO_F3_START = EXYNOS_GPIO_NEXT(EXYNOS4_GPIO_F2), 79bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS4_GPIO_J0_START = EXYNOS_GPIO_NEXT(EXYNOS4_GPIO_F3), 80bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS4_GPIO_J1_START = EXYNOS_GPIO_NEXT(EXYNOS4_GPIO_J0), 81bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS4_GPIO_K0_START = EXYNOS_GPIO_NEXT(EXYNOS4_GPIO_J1), 82bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS4_GPIO_K1_START = EXYNOS_GPIO_NEXT(EXYNOS4_GPIO_K0), 83bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS4_GPIO_K2_START = EXYNOS_GPIO_NEXT(EXYNOS4_GPIO_K1), 84bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS4_GPIO_K3_START = EXYNOS_GPIO_NEXT(EXYNOS4_GPIO_K2), 85bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS4_GPIO_L0_START = EXYNOS_GPIO_NEXT(EXYNOS4_GPIO_K3), 86bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS4_GPIO_L1_START = EXYNOS_GPIO_NEXT(EXYNOS4_GPIO_L0), 87bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS4_GPIO_L2_START = EXYNOS_GPIO_NEXT(EXYNOS4_GPIO_L1), 88bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS4_GPIO_X0_START = EXYNOS_GPIO_NEXT(EXYNOS4_GPIO_L2), 89bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS4_GPIO_X1_START = EXYNOS_GPIO_NEXT(EXYNOS4_GPIO_X0), 90bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS4_GPIO_X2_START = EXYNOS_GPIO_NEXT(EXYNOS4_GPIO_X1), 91bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS4_GPIO_X3_START = EXYNOS_GPIO_NEXT(EXYNOS4_GPIO_X2), 92bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS4_GPIO_Y0_START = EXYNOS_GPIO_NEXT(EXYNOS4_GPIO_X3), 93bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS4_GPIO_Y1_START = EXYNOS_GPIO_NEXT(EXYNOS4_GPIO_Y0), 94bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS4_GPIO_Y2_START = EXYNOS_GPIO_NEXT(EXYNOS4_GPIO_Y1), 95bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS4_GPIO_Y3_START = EXYNOS_GPIO_NEXT(EXYNOS4_GPIO_Y2), 96bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS4_GPIO_Y4_START = EXYNOS_GPIO_NEXT(EXYNOS4_GPIO_Y3), 97bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS4_GPIO_Y5_START = EXYNOS_GPIO_NEXT(EXYNOS4_GPIO_Y4), 98bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS4_GPIO_Y6_START = EXYNOS_GPIO_NEXT(EXYNOS4_GPIO_Y5), 99bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS4_GPIO_Z_START = EXYNOS_GPIO_NEXT(EXYNOS4_GPIO_Y6), 1007d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim}; 1017d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim 1027d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim/* EXYNOS4 GPIO number definitions */ 103bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park 1047d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPA0(_nr) (EXYNOS4_GPIO_A0_START + (_nr)) 1057d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPA1(_nr) (EXYNOS4_GPIO_A1_START + (_nr)) 1067d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPB(_nr) (EXYNOS4_GPIO_B_START + (_nr)) 1077d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPC0(_nr) (EXYNOS4_GPIO_C0_START + (_nr)) 1087d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPC1(_nr) (EXYNOS4_GPIO_C1_START + (_nr)) 1097d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPD0(_nr) (EXYNOS4_GPIO_D0_START + (_nr)) 1107d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPD1(_nr) (EXYNOS4_GPIO_D1_START + (_nr)) 1117d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPE0(_nr) (EXYNOS4_GPIO_E0_START + (_nr)) 1127d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPE1(_nr) (EXYNOS4_GPIO_E1_START + (_nr)) 1137d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPE2(_nr) (EXYNOS4_GPIO_E2_START + (_nr)) 1147d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPE3(_nr) (EXYNOS4_GPIO_E3_START + (_nr)) 1157d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPE4(_nr) (EXYNOS4_GPIO_E4_START + (_nr)) 1167d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPF0(_nr) (EXYNOS4_GPIO_F0_START + (_nr)) 1177d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPF1(_nr) (EXYNOS4_GPIO_F1_START + (_nr)) 1187d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPF2(_nr) (EXYNOS4_GPIO_F2_START + (_nr)) 1197d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPF3(_nr) (EXYNOS4_GPIO_F3_START + (_nr)) 1207d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPJ0(_nr) (EXYNOS4_GPIO_J0_START + (_nr)) 1217d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPJ1(_nr) (EXYNOS4_GPIO_J1_START + (_nr)) 1227d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPK0(_nr) (EXYNOS4_GPIO_K0_START + (_nr)) 1237d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPK1(_nr) (EXYNOS4_GPIO_K1_START + (_nr)) 1247d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPK2(_nr) (EXYNOS4_GPIO_K2_START + (_nr)) 1257d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPK3(_nr) (EXYNOS4_GPIO_K3_START + (_nr)) 1267d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPL0(_nr) (EXYNOS4_GPIO_L0_START + (_nr)) 1277d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPL1(_nr) (EXYNOS4_GPIO_L1_START + (_nr)) 1287d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPL2(_nr) (EXYNOS4_GPIO_L2_START + (_nr)) 1297d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPX0(_nr) (EXYNOS4_GPIO_X0_START + (_nr)) 1307d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPX1(_nr) (EXYNOS4_GPIO_X1_START + (_nr)) 1317d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPX2(_nr) (EXYNOS4_GPIO_X2_START + (_nr)) 1327d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPX3(_nr) (EXYNOS4_GPIO_X3_START + (_nr)) 13347a9c0ee79489a3bd4ed52f424b5e5c507768ce3Marek Szyprowski#define EXYNOS4_GPY0(_nr) (EXYNOS4_GPIO_Y0_START + (_nr)) 13447a9c0ee79489a3bd4ed52f424b5e5c507768ce3Marek Szyprowski#define EXYNOS4_GPY1(_nr) (EXYNOS4_GPIO_Y1_START + (_nr)) 13547a9c0ee79489a3bd4ed52f424b5e5c507768ce3Marek Szyprowski#define EXYNOS4_GPY2(_nr) (EXYNOS4_GPIO_Y2_START + (_nr)) 13647a9c0ee79489a3bd4ed52f424b5e5c507768ce3Marek Szyprowski#define EXYNOS4_GPY3(_nr) (EXYNOS4_GPIO_Y3_START + (_nr)) 13747a9c0ee79489a3bd4ed52f424b5e5c507768ce3Marek Szyprowski#define EXYNOS4_GPY4(_nr) (EXYNOS4_GPIO_Y4_START + (_nr)) 13847a9c0ee79489a3bd4ed52f424b5e5c507768ce3Marek Szyprowski#define EXYNOS4_GPY5(_nr) (EXYNOS4_GPIO_Y5_START + (_nr)) 13947a9c0ee79489a3bd4ed52f424b5e5c507768ce3Marek Szyprowski#define EXYNOS4_GPY6(_nr) (EXYNOS4_GPIO_Y6_START + (_nr)) 1407d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPZ(_nr) (EXYNOS4_GPIO_Z_START + (_nr)) 1417d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim 1427d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim/* the end of the EXYNOS4 specific gpios */ 143bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park 1447d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#define EXYNOS4_GPIO_END (EXYNOS4_GPZ(EXYNOS4_GPIO_Z_NR) + 1) 1457d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim 146bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park/* EXYNOS5 GPIO bank sizes */ 147bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park 148bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPIO_A0_NR (8) 149bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPIO_A1_NR (6) 150bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPIO_A2_NR (8) 151bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPIO_B0_NR (5) 152bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPIO_B1_NR (5) 153bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPIO_B2_NR (4) 154bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPIO_B3_NR (4) 155bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPIO_C0_NR (7) 156bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPIO_C1_NR (7) 157bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPIO_C2_NR (7) 158bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPIO_C3_NR (7) 159bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPIO_D0_NR (8) 160bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPIO_D1_NR (8) 161bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPIO_Y0_NR (6) 162bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPIO_Y1_NR (4) 163bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPIO_Y2_NR (6) 164bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPIO_Y3_NR (8) 165bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPIO_Y4_NR (8) 166bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPIO_Y5_NR (8) 167bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPIO_Y6_NR (8) 168bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPIO_X0_NR (8) 169bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPIO_X1_NR (8) 170bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPIO_X2_NR (8) 171bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPIO_X3_NR (8) 172bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPIO_E0_NR (8) 173bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPIO_E1_NR (2) 174bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPIO_F0_NR (4) 175bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPIO_F1_NR (4) 176bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPIO_G0_NR (8) 177bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPIO_G1_NR (8) 178bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPIO_G2_NR (2) 179bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPIO_H0_NR (4) 180bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPIO_H1_NR (8) 181bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPIO_V0_NR (8) 182bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPIO_V1_NR (8) 183bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPIO_V2_NR (8) 184bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPIO_V3_NR (8) 185bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPIO_V4_NR (2) 186bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPIO_Z_NR (7) 187bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park 188bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park/* EXYNOS5 GPIO bank numbers */ 189bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park 190bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Parkenum exynos5_gpio_number { 191bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS5_GPIO_A0_START = 0, 192bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS5_GPIO_A1_START = EXYNOS_GPIO_NEXT(EXYNOS5_GPIO_A0), 193bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS5_GPIO_A2_START = EXYNOS_GPIO_NEXT(EXYNOS5_GPIO_A1), 194bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS5_GPIO_B0_START = EXYNOS_GPIO_NEXT(EXYNOS5_GPIO_A2), 195bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS5_GPIO_B1_START = EXYNOS_GPIO_NEXT(EXYNOS5_GPIO_B0), 196bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS5_GPIO_B2_START = EXYNOS_GPIO_NEXT(EXYNOS5_GPIO_B1), 197bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS5_GPIO_B3_START = EXYNOS_GPIO_NEXT(EXYNOS5_GPIO_B2), 198bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS5_GPIO_C0_START = EXYNOS_GPIO_NEXT(EXYNOS5_GPIO_B3), 199bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS5_GPIO_C1_START = EXYNOS_GPIO_NEXT(EXYNOS5_GPIO_C0), 200bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS5_GPIO_C2_START = EXYNOS_GPIO_NEXT(EXYNOS5_GPIO_C1), 201bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS5_GPIO_C3_START = EXYNOS_GPIO_NEXT(EXYNOS5_GPIO_C2), 202bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS5_GPIO_D0_START = EXYNOS_GPIO_NEXT(EXYNOS5_GPIO_C3), 203bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS5_GPIO_D1_START = EXYNOS_GPIO_NEXT(EXYNOS5_GPIO_D0), 204bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS5_GPIO_Y0_START = EXYNOS_GPIO_NEXT(EXYNOS5_GPIO_D1), 205bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS5_GPIO_Y1_START = EXYNOS_GPIO_NEXT(EXYNOS5_GPIO_Y0), 206bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS5_GPIO_Y2_START = EXYNOS_GPIO_NEXT(EXYNOS5_GPIO_Y1), 207bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS5_GPIO_Y3_START = EXYNOS_GPIO_NEXT(EXYNOS5_GPIO_Y2), 208bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS5_GPIO_Y4_START = EXYNOS_GPIO_NEXT(EXYNOS5_GPIO_Y3), 209bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS5_GPIO_Y5_START = EXYNOS_GPIO_NEXT(EXYNOS5_GPIO_Y4), 210bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS5_GPIO_Y6_START = EXYNOS_GPIO_NEXT(EXYNOS5_GPIO_Y5), 211bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS5_GPIO_X0_START = EXYNOS_GPIO_NEXT(EXYNOS5_GPIO_Y6), 212bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS5_GPIO_X1_START = EXYNOS_GPIO_NEXT(EXYNOS5_GPIO_X0), 213bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS5_GPIO_X2_START = EXYNOS_GPIO_NEXT(EXYNOS5_GPIO_X1), 214bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS5_GPIO_X3_START = EXYNOS_GPIO_NEXT(EXYNOS5_GPIO_X2), 215bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS5_GPIO_E0_START = EXYNOS_GPIO_NEXT(EXYNOS5_GPIO_X3), 216bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS5_GPIO_E1_START = EXYNOS_GPIO_NEXT(EXYNOS5_GPIO_E0), 217bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS5_GPIO_F0_START = EXYNOS_GPIO_NEXT(EXYNOS5_GPIO_E1), 218bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS5_GPIO_F1_START = EXYNOS_GPIO_NEXT(EXYNOS5_GPIO_F0), 219bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS5_GPIO_G0_START = EXYNOS_GPIO_NEXT(EXYNOS5_GPIO_F1), 220bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS5_GPIO_G1_START = EXYNOS_GPIO_NEXT(EXYNOS5_GPIO_G0), 221bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS5_GPIO_G2_START = EXYNOS_GPIO_NEXT(EXYNOS5_GPIO_G1), 222bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS5_GPIO_H0_START = EXYNOS_GPIO_NEXT(EXYNOS5_GPIO_G2), 223bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS5_GPIO_H1_START = EXYNOS_GPIO_NEXT(EXYNOS5_GPIO_H0), 224bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS5_GPIO_V0_START = EXYNOS_GPIO_NEXT(EXYNOS5_GPIO_H1), 225bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS5_GPIO_V1_START = EXYNOS_GPIO_NEXT(EXYNOS5_GPIO_V0), 226bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS5_GPIO_V2_START = EXYNOS_GPIO_NEXT(EXYNOS5_GPIO_V1), 227bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS5_GPIO_V3_START = EXYNOS_GPIO_NEXT(EXYNOS5_GPIO_V2), 228bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS5_GPIO_V4_START = EXYNOS_GPIO_NEXT(EXYNOS5_GPIO_V3), 229bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park EXYNOS5_GPIO_Z_START = EXYNOS_GPIO_NEXT(EXYNOS5_GPIO_V4), 230bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park}; 231bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park 232bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park/* EXYNOS5 GPIO number definitions */ 233bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park 234bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPA0(_nr) (EXYNOS5_GPIO_A0_START + (_nr)) 235bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPA1(_nr) (EXYNOS5_GPIO_A1_START + (_nr)) 236bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPA2(_nr) (EXYNOS5_GPIO_A2_START + (_nr)) 237bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPB0(_nr) (EXYNOS5_GPIO_B0_START + (_nr)) 238bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPB1(_nr) (EXYNOS5_GPIO_B1_START + (_nr)) 239bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPB2(_nr) (EXYNOS5_GPIO_B2_START + (_nr)) 240bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPB3(_nr) (EXYNOS5_GPIO_B3_START + (_nr)) 241bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPC0(_nr) (EXYNOS5_GPIO_C0_START + (_nr)) 242bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPC1(_nr) (EXYNOS5_GPIO_C1_START + (_nr)) 243bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPC2(_nr) (EXYNOS5_GPIO_C2_START + (_nr)) 244bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPC3(_nr) (EXYNOS5_GPIO_C3_START + (_nr)) 245bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPD0(_nr) (EXYNOS5_GPIO_D0_START + (_nr)) 246bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPD1(_nr) (EXYNOS5_GPIO_D1_START + (_nr)) 247bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPY0(_nr) (EXYNOS5_GPIO_Y0_START + (_nr)) 248bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPY1(_nr) (EXYNOS5_GPIO_Y1_START + (_nr)) 249bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPY2(_nr) (EXYNOS5_GPIO_Y2_START + (_nr)) 250bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPY3(_nr) (EXYNOS5_GPIO_Y3_START + (_nr)) 251bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPY4(_nr) (EXYNOS5_GPIO_Y4_START + (_nr)) 252bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPY5(_nr) (EXYNOS5_GPIO_Y5_START + (_nr)) 253bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPY6(_nr) (EXYNOS5_GPIO_Y6_START + (_nr)) 254bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPX0(_nr) (EXYNOS5_GPIO_X0_START + (_nr)) 255bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPX1(_nr) (EXYNOS5_GPIO_X1_START + (_nr)) 256bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPX2(_nr) (EXYNOS5_GPIO_X2_START + (_nr)) 257bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPX3(_nr) (EXYNOS5_GPIO_X3_START + (_nr)) 258bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPE0(_nr) (EXYNOS5_GPIO_E0_START + (_nr)) 259bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPE1(_nr) (EXYNOS5_GPIO_E1_START + (_nr)) 260bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPF0(_nr) (EXYNOS5_GPIO_F0_START + (_nr)) 261bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPF1(_nr) (EXYNOS5_GPIO_F1_START + (_nr)) 262bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPG0(_nr) (EXYNOS5_GPIO_G0_START + (_nr)) 263bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPG1(_nr) (EXYNOS5_GPIO_G1_START + (_nr)) 264bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPG2(_nr) (EXYNOS5_GPIO_G2_START + (_nr)) 265bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPH0(_nr) (EXYNOS5_GPIO_H0_START + (_nr)) 266bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPH1(_nr) (EXYNOS5_GPIO_H1_START + (_nr)) 267bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPV0(_nr) (EXYNOS5_GPIO_V0_START + (_nr)) 268bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPV1(_nr) (EXYNOS5_GPIO_V1_START + (_nr)) 269bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPV2(_nr) (EXYNOS5_GPIO_V2_START + (_nr)) 270bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPV3(_nr) (EXYNOS5_GPIO_V3_START + (_nr)) 271bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPV4(_nr) (EXYNOS5_GPIO_V4_START + (_nr)) 272bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPZ(_nr) (EXYNOS5_GPIO_Z_START + (_nr)) 273bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park 274bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park/* the end of the EXYNOS5 specific gpios */ 275bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park 276bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define EXYNOS5_GPIO_END (EXYNOS5_GPZ(EXYNOS5_GPIO_Z_NR) + 1) 277bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park 278bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park/* actually, EXYNOS5_GPIO_END is bigger than EXYNOS4 */ 279bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park 280bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define S3C_GPIO_END (EXYNOS5_GPIO_END) 281bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park 282bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park/* define the number of gpios */ 283bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park 284bcdc87b594e779b6aa753c912fa4a14942edb01eSangsu Park#define ARCH_NR_GPIOS (CONFIG_SAMSUNG_GPIO_EXTRA + S3C_GPIO_END) 2857d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim 2867d30e8b3815f804139271dfc31962ab74ce89650Kukjin Kim#endif /* __ASM_ARCH_GPIO_H */ 287