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