diff options
Diffstat (limited to 'arch/arm/mach-mxs/include/mach/iomux.h')
-rw-r--r-- | arch/arm/mach-mxs/include/mach/iomux.h | 112 |
1 files changed, 0 insertions, 112 deletions
diff --git a/arch/arm/mach-mxs/include/mach/iomux.h b/arch/arm/mach-mxs/include/mach/iomux.h deleted file mode 100644 index 0091dbae11..0000000000 --- a/arch/arm/mach-mxs/include/mach/iomux.h +++ /dev/null @@ -1,112 +0,0 @@ -/* - * (C) Copyright 2010 Juergen Beisert - Pengutronix - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - */ - -#ifndef __ASM_MACH_IOMUX_H -#define __ASM_MACH_IOMUX_H - -#include <types.h> - -/* - * The muxable pins on i.MX23 are organized in 4 banks. On i.MX28 there are 7 - * banks. Each bank has up to 32 pins each. Furthermore for each pin some of the - * following properties can be configured: - * - drive strength: 4 mA, 8 mA, 12 mA or 16 mA - * - pull up enabled or bit keeper enabled (a pin cannot have both) - * - voltage: 1.8 V, 2.5 V (i.MX23 only) or 3.3 V (i.MX28 only) - * - function: 0..3, with 3 being the GPIO functionality - * - * So a configuration for a given pin can be described in an unsigned integer of - * length 32: - * - [ 4: 0] bank pin - * - [ 7: 5] bank - * - [ 8] 1 iff pin has a switchable pull up - * - [ 9] 1 iff pin has a switchable bit keeper - * - [ 10] 1 iff pin has switchable drive strength - * - [ 11] 1 iff pin has switchable voltage - * - [13:12] function - * - [ 14] 1 for enabled pull up - * - [ 15] 1 iff [14] is a valid pull up value - * - [ 16] 1 for enabled bit keeper - * - [ 17] 1 iff [16] is a valid bit keeper value - * - [19:18] value for drive strength i -> i * 4 mA - * - [ 20] 1 iff [19:18] is valid - * - [ 21] 0 for 1.8 V, 1 for 2.5 V resp. 3.3 V - * - [ 22] 1 iff [21] is valid - * - [ 23] 1 iff configure as GPIO out if function == 3 (i.e. GPIO) - * - [ 24] initial value iff configured as GPIO out - * - [ 25] error - */ - -#define BANKPIN(p) (((p) & 31) | ERROR((p) & ~31)) -#define BANK(b) ((((b) & 7) << 5) | (ERROR((b) & ~7))) -#define PE (1 << 8) -#define BK (1 << 9) -#define SE (1 << 10) -#define VE (1 << 11) -#define FUNC(f) ((((f) & 3) << 12) | (ERROR((f) & ~3))) -#define PULLUP(p) ((((p) & 1) << 14) | PEVALID | ERROR((p) & ~1)) -#define PEVALID (1 << 15) -#define BITKEEPER(b) ((((b) & 1) << 16) | BKVALID | ERROR((b) & ~1)) -#define BKVALID (1 << 17) -#define STRENGTH(s) ((((s) & 3) << 18) | SEVALID | ERROR((s) & ~3)) -#define S4MA 0 -#define S8MA 1 -#define S12MA 2 -#define S16MA 3 -#define SEVALID (1 << 20) -#define VOLTAGE(v) ((((v) & 1) << 21) | VEVALID | ERROR((v) & ~1)) -#define VE_1_8V VOLTAGE(0) -#define VEVALID (1 << 22) - -#define GPIO_OUT (1 << 23) -#define GPIO_IN (0 << 23) -#define GPIO_VALUE(v) ((((v) & 1) << 24) | ERROR((v) & ~1)) - -#define ERROR(x) (!!(x) << 25) - -#define GET_GPIO_NO(m) ((m) & 0xff) -#define GET_FUNC(m) (((m) >> 12) & 3) -#define PE_PRESENT(m) ((m) & PE) -#define GET_PULLUP(m) (((m) >> 14) & 1) -#define BK_PRESENT(m) ((m) & BK) -#define GET_BITKEEPER(m)(((m) >> 16) & 1) -#define SE_PRESENT(m) ((m) & SE) -#define GET_STRENGTH(m) (((m) >> 18) & 3) -#define VE_PRESENT(m) ((m) & VE) -#define GET_VOLTAGE(m) (((m) >> 21) & 1) -#define GET_GPIODIR(m) (!!((m) & GPIO_OUT)) -#define GET_GPIOVAL(m) (!!((m) & GPIO_VALUE(1))) -#define IS_GPIO 3 - -#if defined CONFIG_ARCH_IMX23 -/* - * The pin definition of i.MX23 are strange. Bank 0's pins 0 .. 15 are defined - * using PORTF(0, 0) .. PORTF(0, 15). Its pins 16 .. 31 however use PORTF(1, 0) - * .. PORTF(1, 15). So the PORTF macro is more ugly than necessary. - */ -# define PORTF(bank,bit) (BANK((bank) / 2) | BANKPIN((((bank) & 1) << 4) | (bit)) | ERROR((bit) & ~15) | ERROR((bank) & ~7)) -# define VE_2_5V VOLTAGE(0) -# include <mach/iomux-imx23.h> -#endif - -#if defined CONFIG_ARCH_IMX28 -# define PORTF(bank,bit) (BANK(bank) | BANKPIN(bit)) -# define VE_3_3V VOLTAGE(1) -# include <mach/iomux-imx28.h> -#endif - -void imx_gpio_mode(uint32_t); - -#endif /* __ASM_MACH_IOMUX_H */ |