gpio.h revision a2c8cfef6abb33ee49d80c58391ebfc4f94221ef
11394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu/* 21394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * File: arch/blackfin/kernel/bfin_gpio.h 31394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * Based on: 41394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * Author: Michael Hennerich (hennerich@blackfin.uclinux.org) 51394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * 61394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * Created: 71394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * Description: 81394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * 91394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * Modified: 10a2c8cfef6abb33ee49d80c58391ebfc4f94221efMichael Hennerich * Copyright 2004-2008 Analog Devices Inc. 111394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * 121394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * Bugs: Enter bugs at http://blackfin.uclinux.org/ 131394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * 141394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * This program is free software; you can redistribute it and/or modify 151394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * it under the terms of the GNU General Public License as published by 161394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * the Free Software Foundation; either version 2 of the License, or 171394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * (at your option) any later version. 181394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * 191394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * This program is distributed in the hope that it will be useful, 201394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * but WITHOUT ANY WARRANTY; without even the implied warranty of 211394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 221394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * GNU General Public License for more details. 231394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * 241394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * You should have received a copy of the GNU General Public License 251394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * along with this program; if not, see the file COPYING, or write 261394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * to the Free Software Foundation, Inc., 271394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 281394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu */ 291394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 301394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu/* 311394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* Number BF537/6/4 BF561 BF533/2/1 32590031450a52c373bf72f5fb156fbcc0c78c6f2cMichael Hennerich* BF527/5/2 331394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* 341394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* GPIO_0 PF0 PF0 PF0 351394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* GPIO_1 PF1 PF1 PF1 361394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* GPIO_2 PF2 PF2 PF2 371394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* GPIO_3 PF3 PF3 PF3 381394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* GPIO_4 PF4 PF4 PF4 391394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* GPIO_5 PF5 PF5 PF5 401394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* GPIO_6 PF6 PF6 PF6 411394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* GPIO_7 PF7 PF7 PF7 421394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* GPIO_8 PF8 PF8 PF8 431394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* GPIO_9 PF9 PF9 PF9 441394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* GPIO_10 PF10 PF10 PF10 451394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* GPIO_11 PF11 PF11 PF11 461394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* GPIO_12 PF12 PF12 PF12 471394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* GPIO_13 PF13 PF13 PF13 481394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* GPIO_14 PF14 PF14 PF14 491394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* GPIO_15 PF15 PF15 PF15 501394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* GPIO_16 PG0 PF16 511394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* GPIO_17 PG1 PF17 521394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* GPIO_18 PG2 PF18 531394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* GPIO_19 PG3 PF19 541394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* GPIO_20 PG4 PF20 551394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* GPIO_21 PG5 PF21 561394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* GPIO_22 PG6 PF22 571394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* GPIO_23 PG7 PF23 581394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* GPIO_24 PG8 PF24 591394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* GPIO_25 PG9 PF25 601394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* GPIO_26 PG10 PF26 611394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* GPIO_27 PG11 PF27 621394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* GPIO_28 PG12 PF28 631394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* GPIO_29 PG13 PF29 641394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* GPIO_30 PG14 PF30 651394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* GPIO_31 PG15 PF31 661394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* GPIO_32 PH0 PF32 671394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* GPIO_33 PH1 PF33 681394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* GPIO_34 PH2 PF34 691394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* GPIO_35 PH3 PF35 701394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* GPIO_36 PH4 PF36 711394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* GPIO_37 PH5 PF37 721394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* GPIO_38 PH6 PF38 731394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* GPIO_39 PH7 PF39 741394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* GPIO_40 PH8 PF40 751394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* GPIO_41 PH9 PF41 761394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* GPIO_42 PH10 PF42 771394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* GPIO_43 PH11 PF43 781394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* GPIO_44 PH12 PF44 791394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* GPIO_45 PH13 PF45 801394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* GPIO_46 PH14 PF46 811394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* GPIO_47 PH15 PF47 821394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu*/ 831394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 841394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#ifndef __ARCH_BLACKFIN_GPIO_H__ 851394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define __ARCH_BLACKFIN_GPIO_H__ 861394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 871394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define gpio_bank(x) ((x) >> 4) 881394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define gpio_bit(x) (1<<((x) & 0xF)) 891394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define gpio_sub_n(x) ((x) & 0xF) 901394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 911394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_BANKSIZE 16 921394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 931394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_0 0 941394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_1 1 951394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_2 2 961394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_3 3 971394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_4 4 981394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_5 5 991394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_6 6 1001394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_7 7 1011394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_8 8 1021394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_9 9 1031394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_10 10 1041394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_11 11 1051394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_12 12 1061394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_13 13 1071394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_14 14 1081394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_15 15 1091394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_16 16 1101394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_17 17 1111394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_18 18 1121394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_19 19 1131394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_20 20 1141394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_21 21 1151394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_22 22 1161394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_23 23 1171394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_24 24 1181394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_25 25 1191394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_26 26 1201394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_27 27 1211394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_28 28 1221394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_29 29 1231394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_30 30 1241394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_31 31 1251394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_32 32 1261394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_33 33 1271394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_34 34 1281394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_35 35 1291394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_36 36 1301394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_37 37 1311394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_38 38 1321394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_39 39 1331394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_40 40 1341394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_41 41 1351394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_42 42 1361394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_43 43 1371394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_44 44 1381394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_45 45 1391394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_46 46 1401394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_47 47 1411394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 1421394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 1431394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define PERIPHERAL_USAGE 1 1441394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_USAGE 0 1451394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 1461394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#ifdef BF533_FAMILY 1471394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define MAX_BLACKFIN_GPIOS 16 148214cccbbb22136566e72956fcd23c48c2a4abb33Bryan Wu 149214cccbbb22136566e72956fcd23c48c2a4abb33Bryan Wu#define GPIO_PF0 0 150214cccbbb22136566e72956fcd23c48c2a4abb33Bryan Wu#define GPIO_PF1 1 151214cccbbb22136566e72956fcd23c48c2a4abb33Bryan Wu#define GPIO_PF2 2 152214cccbbb22136566e72956fcd23c48c2a4abb33Bryan Wu#define GPIO_PF3 3 153214cccbbb22136566e72956fcd23c48c2a4abb33Bryan Wu#define GPIO_PF4 4 154214cccbbb22136566e72956fcd23c48c2a4abb33Bryan Wu#define GPIO_PF5 5 155214cccbbb22136566e72956fcd23c48c2a4abb33Bryan Wu#define GPIO_PF6 6 156214cccbbb22136566e72956fcd23c48c2a4abb33Bryan Wu#define GPIO_PF7 7 157214cccbbb22136566e72956fcd23c48c2a4abb33Bryan Wu#define GPIO_PF8 8 158214cccbbb22136566e72956fcd23c48c2a4abb33Bryan Wu#define GPIO_PF9 9 159214cccbbb22136566e72956fcd23c48c2a4abb33Bryan Wu#define GPIO_PF10 10 160214cccbbb22136566e72956fcd23c48c2a4abb33Bryan Wu#define GPIO_PF11 11 161214cccbbb22136566e72956fcd23c48c2a4abb33Bryan Wu#define GPIO_PF12 12 162214cccbbb22136566e72956fcd23c48c2a4abb33Bryan Wu#define GPIO_PF13 13 163214cccbbb22136566e72956fcd23c48c2a4abb33Bryan Wu#define GPIO_PF14 14 164214cccbbb22136566e72956fcd23c48c2a4abb33Bryan Wu#define GPIO_PF15 15 165214cccbbb22136566e72956fcd23c48c2a4abb33Bryan Wu 1661394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 1671394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 168590031450a52c373bf72f5fb156fbcc0c78c6f2cMichael Hennerich#if defined(BF527_FAMILY) || defined(BF537_FAMILY) 1691394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define MAX_BLACKFIN_GPIOS 48 1701394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 1711394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_PF0 0 1721394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_PF1 1 1731394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_PF2 2 1741394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_PF3 3 1751394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_PF4 4 1761394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_PF5 5 1771394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_PF6 6 1781394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_PF7 7 1791394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_PF8 8 1801394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_PF9 9 1811394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_PF10 10 1821394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_PF11 11 1831394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_PF12 12 1841394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_PF13 13 1851394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_PF14 14 1861394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_PF15 15 1871394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_PG0 16 1881394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_PG1 17 1891394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_PG2 18 1901394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_PG3 19 1911394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_PG4 20 1921394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_PG5 21 1931394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_PG6 22 1941394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_PG7 23 1951394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_PG8 24 1961394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_PG9 25 1971394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_PG10 26 1981394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_PG11 27 1991394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_PG12 28 2001394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_PG13 29 2011394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_PG14 30 2021394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_PG15 31 2031394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_PH0 32 2041394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_PH1 33 2051394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_PH2 34 2061394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_PH3 35 2071394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_PH4 36 2081394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_PH5 37 2091394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_PH6 38 2101394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_PH7 39 2111394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_PH8 40 2121394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_PH9 41 2131394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_PH10 42 2141394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_PH11 43 2151394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_PH12 44 2161394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_PH13 45 2171394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_PH14 46 2181394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define GPIO_PH15 47 2191394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 220678402709602a5e62bb79454f0f41bd952373300Michael Hennerich#define PORT_F GPIO_PF0 221678402709602a5e62bb79454f0f41bd952373300Michael Hennerich#define PORT_G GPIO_PG0 222678402709602a5e62bb79454f0f41bd952373300Michael Hennerich#define PORT_H GPIO_PH0 223678402709602a5e62bb79454f0f41bd952373300Michael Hennerich 2241394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 2251394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 22624a07a124198153540f8f43d9e91d16227aba66eRoy Huang#ifdef BF548_FAMILY 22724a07a124198153540f8f43d9e91d16227aba66eRoy Huang#include <asm-blackfin/mach-bf548/gpio.h> 22824a07a124198153540f8f43d9e91d16227aba66eRoy Huang#endif 22924a07a124198153540f8f43d9e91d16227aba66eRoy Huang 2301394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#ifdef BF561_FAMILY 2311394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define MAX_BLACKFIN_GPIOS 48 2325610db61cf2945a5e74667e952f2792c96ba53a1Michael Hennerich 2335610db61cf2945a5e74667e952f2792c96ba53a1Michael Hennerich#define GPIO_PF0 0 2345610db61cf2945a5e74667e952f2792c96ba53a1Michael Hennerich#define GPIO_PF1 1 2355610db61cf2945a5e74667e952f2792c96ba53a1Michael Hennerich#define GPIO_PF2 2 2365610db61cf2945a5e74667e952f2792c96ba53a1Michael Hennerich#define GPIO_PF3 3 2375610db61cf2945a5e74667e952f2792c96ba53a1Michael Hennerich#define GPIO_PF4 4 2385610db61cf2945a5e74667e952f2792c96ba53a1Michael Hennerich#define GPIO_PF5 5 2395610db61cf2945a5e74667e952f2792c96ba53a1Michael Hennerich#define GPIO_PF6 6 2405610db61cf2945a5e74667e952f2792c96ba53a1Michael Hennerich#define GPIO_PF7 7 2415610db61cf2945a5e74667e952f2792c96ba53a1Michael Hennerich#define GPIO_PF8 8 2425610db61cf2945a5e74667e952f2792c96ba53a1Michael Hennerich#define GPIO_PF9 9 2435610db61cf2945a5e74667e952f2792c96ba53a1Michael Hennerich#define GPIO_PF10 10 2445610db61cf2945a5e74667e952f2792c96ba53a1Michael Hennerich#define GPIO_PF11 11 2455610db61cf2945a5e74667e952f2792c96ba53a1Michael Hennerich#define GPIO_PF12 12 2465610db61cf2945a5e74667e952f2792c96ba53a1Michael Hennerich#define GPIO_PF13 13 2475610db61cf2945a5e74667e952f2792c96ba53a1Michael Hennerich#define GPIO_PF14 14 2485610db61cf2945a5e74667e952f2792c96ba53a1Michael Hennerich#define GPIO_PF15 15 2495610db61cf2945a5e74667e952f2792c96ba53a1Michael Hennerich#define GPIO_PF16 16 2505610db61cf2945a5e74667e952f2792c96ba53a1Michael Hennerich#define GPIO_PF17 17 2515610db61cf2945a5e74667e952f2792c96ba53a1Michael Hennerich#define GPIO_PF18 18 2525610db61cf2945a5e74667e952f2792c96ba53a1Michael Hennerich#define GPIO_PF19 19 2535610db61cf2945a5e74667e952f2792c96ba53a1Michael Hennerich#define GPIO_PF20 20 2545610db61cf2945a5e74667e952f2792c96ba53a1Michael Hennerich#define GPIO_PF21 21 2555610db61cf2945a5e74667e952f2792c96ba53a1Michael Hennerich#define GPIO_PF22 22 2565610db61cf2945a5e74667e952f2792c96ba53a1Michael Hennerich#define GPIO_PF23 23 2575610db61cf2945a5e74667e952f2792c96ba53a1Michael Hennerich#define GPIO_PF24 24 2585610db61cf2945a5e74667e952f2792c96ba53a1Michael Hennerich#define GPIO_PF25 25 2595610db61cf2945a5e74667e952f2792c96ba53a1Michael Hennerich#define GPIO_PF26 26 2605610db61cf2945a5e74667e952f2792c96ba53a1Michael Hennerich#define GPIO_PF27 27 2615610db61cf2945a5e74667e952f2792c96ba53a1Michael Hennerich#define GPIO_PF28 28 2625610db61cf2945a5e74667e952f2792c96ba53a1Michael Hennerich#define GPIO_PF29 29 2635610db61cf2945a5e74667e952f2792c96ba53a1Michael Hennerich#define GPIO_PF30 30 2645610db61cf2945a5e74667e952f2792c96ba53a1Michael Hennerich#define GPIO_PF31 31 2655610db61cf2945a5e74667e952f2792c96ba53a1Michael Hennerich#define GPIO_PF32 32 2665610db61cf2945a5e74667e952f2792c96ba53a1Michael Hennerich#define GPIO_PF33 33 2675610db61cf2945a5e74667e952f2792c96ba53a1Michael Hennerich#define GPIO_PF34 34 2685610db61cf2945a5e74667e952f2792c96ba53a1Michael Hennerich#define GPIO_PF35 35 2695610db61cf2945a5e74667e952f2792c96ba53a1Michael Hennerich#define GPIO_PF36 36 2705610db61cf2945a5e74667e952f2792c96ba53a1Michael Hennerich#define GPIO_PF37 37 2715610db61cf2945a5e74667e952f2792c96ba53a1Michael Hennerich#define GPIO_PF38 38 2725610db61cf2945a5e74667e952f2792c96ba53a1Michael Hennerich#define GPIO_PF39 39 2735610db61cf2945a5e74667e952f2792c96ba53a1Michael Hennerich#define GPIO_PF40 40 2745610db61cf2945a5e74667e952f2792c96ba53a1Michael Hennerich#define GPIO_PF41 41 2755610db61cf2945a5e74667e952f2792c96ba53a1Michael Hennerich#define GPIO_PF42 42 2765610db61cf2945a5e74667e952f2792c96ba53a1Michael Hennerich#define GPIO_PF43 43 2775610db61cf2945a5e74667e952f2792c96ba53a1Michael Hennerich#define GPIO_PF44 44 2785610db61cf2945a5e74667e952f2792c96ba53a1Michael Hennerich#define GPIO_PF45 45 2795610db61cf2945a5e74667e952f2792c96ba53a1Michael Hennerich#define GPIO_PF46 46 2805610db61cf2945a5e74667e952f2792c96ba53a1Michael Hennerich#define GPIO_PF47 47 2815610db61cf2945a5e74667e952f2792c96ba53a1Michael Hennerich 282678402709602a5e62bb79454f0f41bd952373300Michael Hennerich#define PORT_FIO0 GPIO_0 283678402709602a5e62bb79454f0f41bd952373300Michael Hennerich#define PORT_FIO1 GPIO_16 284678402709602a5e62bb79454f0f41bd952373300Michael Hennerich#define PORT_FIO2 GPIO_32 2851394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 2861394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 2871394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#ifndef __ASSEMBLY__ 2881394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 2891394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu/*********************************************************** 2901394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* 2911394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* FUNCTIONS: Blackfin General Purpose Ports Access Functions 2921394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* 2931394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* INPUTS/OUTPUTS: 2941394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* gpio - GPIO Number between 0 and MAX_BLACKFIN_GPIOS 2951394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* 2961394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* 2971394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* DESCRIPTION: These functions abstract direct register access 2981394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* to Blackfin processor General Purpose 2991394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* Ports Regsiters 3001394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* 3011394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* CAUTION: These functions do not belong to the GPIO Driver API 3021394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu************************************************************* 3031394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* MODIFICATION HISTORY : 3041394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu**************************************************************/ 3051394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 306cefe658bca9cf1d4af841c45d170ebd0f881889eMichael Hennerich#ifndef BF548_FAMILY 307a2c8cfef6abb33ee49d80c58391ebfc4f94221efMichael Hennerichvoid set_gpio_dir(unsigned, unsigned short); 308a2c8cfef6abb33ee49d80c58391ebfc4f94221efMichael Hennerichvoid set_gpio_inen(unsigned, unsigned short); 309a2c8cfef6abb33ee49d80c58391ebfc4f94221efMichael Hennerichvoid set_gpio_polar(unsigned, unsigned short); 310a2c8cfef6abb33ee49d80c58391ebfc4f94221efMichael Hennerichvoid set_gpio_edge(unsigned, unsigned short); 311a2c8cfef6abb33ee49d80c58391ebfc4f94221efMichael Hennerichvoid set_gpio_both(unsigned, unsigned short); 312a2c8cfef6abb33ee49d80c58391ebfc4f94221efMichael Hennerichvoid set_gpio_data(unsigned, unsigned short); 313a2c8cfef6abb33ee49d80c58391ebfc4f94221efMichael Hennerichvoid set_gpio_maska(unsigned, unsigned short); 314a2c8cfef6abb33ee49d80c58391ebfc4f94221efMichael Hennerichvoid set_gpio_maskb(unsigned, unsigned short); 315a2c8cfef6abb33ee49d80c58391ebfc4f94221efMichael Hennerichvoid set_gpio_toggle(unsigned); 316a2c8cfef6abb33ee49d80c58391ebfc4f94221efMichael Hennerichvoid set_gpiop_dir(unsigned, unsigned short); 317a2c8cfef6abb33ee49d80c58391ebfc4f94221efMichael Hennerichvoid set_gpiop_inen(unsigned, unsigned short); 318a2c8cfef6abb33ee49d80c58391ebfc4f94221efMichael Hennerichvoid set_gpiop_polar(unsigned, unsigned short); 319a2c8cfef6abb33ee49d80c58391ebfc4f94221efMichael Hennerichvoid set_gpiop_edge(unsigned, unsigned short); 320a2c8cfef6abb33ee49d80c58391ebfc4f94221efMichael Hennerichvoid set_gpiop_both(unsigned, unsigned short); 321a2c8cfef6abb33ee49d80c58391ebfc4f94221efMichael Hennerichvoid set_gpiop_data(unsigned, unsigned short); 322a2c8cfef6abb33ee49d80c58391ebfc4f94221efMichael Hennerichvoid set_gpiop_maska(unsigned, unsigned short); 323a2c8cfef6abb33ee49d80c58391ebfc4f94221efMichael Hennerichvoid set_gpiop_maskb(unsigned, unsigned short); 324a2c8cfef6abb33ee49d80c58391ebfc4f94221efMichael Hennerichunsigned short get_gpio_dir(unsigned); 325a2c8cfef6abb33ee49d80c58391ebfc4f94221efMichael Hennerichunsigned short get_gpio_inen(unsigned); 326a2c8cfef6abb33ee49d80c58391ebfc4f94221efMichael Hennerichunsigned short get_gpio_polar(unsigned); 327a2c8cfef6abb33ee49d80c58391ebfc4f94221efMichael Hennerichunsigned short get_gpio_edge(unsigned); 328a2c8cfef6abb33ee49d80c58391ebfc4f94221efMichael Hennerichunsigned short get_gpio_both(unsigned); 329a2c8cfef6abb33ee49d80c58391ebfc4f94221efMichael Hennerichunsigned short get_gpio_maska(unsigned); 330a2c8cfef6abb33ee49d80c58391ebfc4f94221efMichael Hennerichunsigned short get_gpio_maskb(unsigned); 331a2c8cfef6abb33ee49d80c58391ebfc4f94221efMichael Hennerichunsigned short get_gpio_data(unsigned); 332a2c8cfef6abb33ee49d80c58391ebfc4f94221efMichael Hennerichunsigned short get_gpiop_dir(unsigned); 333a2c8cfef6abb33ee49d80c58391ebfc4f94221efMichael Hennerichunsigned short get_gpiop_inen(unsigned); 334a2c8cfef6abb33ee49d80c58391ebfc4f94221efMichael Hennerichunsigned short get_gpiop_polar(unsigned); 335a2c8cfef6abb33ee49d80c58391ebfc4f94221efMichael Hennerichunsigned short get_gpiop_edge(unsigned); 336a2c8cfef6abb33ee49d80c58391ebfc4f94221efMichael Hennerichunsigned short get_gpiop_both(unsigned); 337a2c8cfef6abb33ee49d80c58391ebfc4f94221efMichael Hennerichunsigned short get_gpiop_maska(unsigned); 338a2c8cfef6abb33ee49d80c58391ebfc4f94221efMichael Hennerichunsigned short get_gpiop_maskb(unsigned); 339a2c8cfef6abb33ee49d80c58391ebfc4f94221efMichael Hennerichunsigned short get_gpiop_data(unsigned); 3401394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 3411394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustruct gpio_port_t { 3421394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu unsigned short data; 3431394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu unsigned short dummy1; 3441394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu unsigned short data_clear; 3451394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu unsigned short dummy2; 3461394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu unsigned short data_set; 3471394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu unsigned short dummy3; 3481394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu unsigned short toggle; 3491394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu unsigned short dummy4; 3501394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu unsigned short maska; 3511394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu unsigned short dummy5; 3521394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu unsigned short maska_clear; 3531394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu unsigned short dummy6; 3541394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu unsigned short maska_set; 3551394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu unsigned short dummy7; 3561394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu unsigned short maska_toggle; 3571394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu unsigned short dummy8; 3581394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu unsigned short maskb; 3591394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu unsigned short dummy9; 3601394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu unsigned short maskb_clear; 3611394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu unsigned short dummy10; 3621394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu unsigned short maskb_set; 3631394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu unsigned short dummy11; 3641394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu unsigned short maskb_toggle; 3651394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu unsigned short dummy12; 3661394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu unsigned short dir; 3671394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu unsigned short dummy13; 3681394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu unsigned short polar; 3691394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu unsigned short dummy14; 3701394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu unsigned short edge; 3711394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu unsigned short dummy15; 3721394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu unsigned short both; 3731394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu unsigned short dummy16; 3741394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu unsigned short inen; 3751394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 37624a07a124198153540f8f43d9e91d16227aba66eRoy Huang#endif 3771394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 3781394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#ifdef CONFIG_PM 3791394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define PM_WAKE_RISING 0x1 3801394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define PM_WAKE_FALLING 0x2 3811394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define PM_WAKE_HIGH 0x4 3821394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define PM_WAKE_LOW 0x8 3831394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define PM_WAKE_BOTH_EDGES (PM_WAKE_RISING | PM_WAKE_FALLING) 3841394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 385a2c8cfef6abb33ee49d80c58391ebfc4f94221efMichael Hennerichint gpio_pm_wakeup_request(unsigned gpio, unsigned char type); 386a2c8cfef6abb33ee49d80c58391ebfc4f94221efMichael Hennerichvoid gpio_pm_wakeup_free(unsigned gpio); 3871394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wuunsigned int gpio_pm_setup(void); 3881394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wuvoid gpio_pm_restore(void); 3891394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 3901394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustruct gpio_port_s { 3911394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu unsigned short data; 3921394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu unsigned short data_clear; 3931394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu unsigned short data_set; 3941394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu unsigned short toggle; 3951394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu unsigned short maska; 3961394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu unsigned short maska_clear; 3971394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu unsigned short maska_set; 3981394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu unsigned short maska_toggle; 3991394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu unsigned short maskb; 4001394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu unsigned short maskb_clear; 4011394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu unsigned short maskb_set; 4021394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu unsigned short maskb_toggle; 4031394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu unsigned short dir; 4041394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu unsigned short polar; 4051394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu unsigned short edge; 4061394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu unsigned short both; 4071394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu unsigned short inen; 4081394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 4091394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu unsigned short fer; 410581d62ab304fb43d2ae4de06527676661b171cf6Michael Hennerich unsigned short reserved; 4111394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 4121394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif /*CONFIG_PM*/ 4131394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 4141394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu/*********************************************************** 4151394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* 4161394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* FUNCTIONS: Blackfin GPIO Driver 4171394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* 4181394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* INPUTS/OUTPUTS: 4191394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* gpio - GPIO Number between 0 and MAX_BLACKFIN_GPIOS 4201394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* 4211394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* 4221394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* DESCRIPTION: Blackfin GPIO Driver API 4231394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* 4241394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* CAUTION: 4251394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu************************************************************* 4261394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu* MODIFICATION HISTORY : 4271394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu**************************************************************/ 4281394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 429acbcd2631975cf6f0be5cd294cbfd12226cd9958Michael Hennerichint gpio_request(unsigned, const char *); 430acbcd2631975cf6f0be5cd294cbfd12226cd9958Michael Hennerichvoid gpio_free(unsigned); 4311394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 432acbcd2631975cf6f0be5cd294cbfd12226cd9958Michael Hennerichvoid gpio_set_value(unsigned gpio, int arg); 433acbcd2631975cf6f0be5cd294cbfd12226cd9958Michael Hennerichint gpio_get_value(unsigned gpio); 4341394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 435cefe658bca9cf1d4af841c45d170ebd0f881889eMichael Hennerich#ifndef BF548_FAMILY 4361394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define gpio_get_value(gpio) get_gpio_data(gpio) 4371394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define gpio_set_value(gpio, value) set_gpio_data(gpio, value) 438cefe658bca9cf1d4af841c45d170ebd0f881889eMichael Hennerich#endif 4391394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 440acbcd2631975cf6f0be5cd294cbfd12226cd9958Michael Hennerichint gpio_direction_input(unsigned gpio); 441acbcd2631975cf6f0be5cd294cbfd12226cd9958Michael Hennerichint gpio_direction_output(unsigned gpio, int value); 4421394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 443301af2952b35fa527c89b4c0c0c1003d50afc378Michael Hennerich#include <asm-generic/gpio.h> /* cansleep wrappers */ 444301af2952b35fa527c89b4c0c0c1003d50afc378Michael Hennerich#include <asm/irq.h> 445301af2952b35fa527c89b4c0c0c1003d50afc378Michael Hennerich 446301af2952b35fa527c89b4c0c0c1003d50afc378Michael Hennerichstatic inline int gpio_to_irq(unsigned gpio) 447301af2952b35fa527c89b4c0c0c1003d50afc378Michael Hennerich{ 448301af2952b35fa527c89b4c0c0c1003d50afc378Michael Hennerich return (gpio + GPIO_IRQ_BASE); 449301af2952b35fa527c89b4c0c0c1003d50afc378Michael Hennerich} 450301af2952b35fa527c89b4c0c0c1003d50afc378Michael Hennerich 451301af2952b35fa527c89b4c0c0c1003d50afc378Michael Hennerichstatic inline int irq_to_gpio(unsigned irq) 452301af2952b35fa527c89b4c0c0c1003d50afc378Michael Hennerich{ 453301af2952b35fa527c89b4c0c0c1003d50afc378Michael Hennerich return (irq - GPIO_IRQ_BASE); 454301af2952b35fa527c89b4c0c0c1003d50afc378Michael Hennerich} 455301af2952b35fa527c89b4c0c0c1003d50afc378Michael Hennerich 4561394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif /* __ASSEMBLY__ */ 4571394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 4581394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif /* __ARCH_BLACKFIN_GPIO_H__ */ 459