Path: blob/master/arch/frv/include/asm/gpio-regs.h
15118 views
/* gpio-regs.h: on-chip general purpose I/O registers1*2* Copyright (C) 2003 Red Hat, Inc. All Rights Reserved.3* Written by David Howells ([email protected])4*5* This program is free software; you can redistribute it and/or6* modify it under the terms of the GNU General Public License7* as published by the Free Software Foundation; either version8* 2 of the License, or (at your option) any later version.9*/1011#ifndef _ASM_GPIO_REGS12#define _ASM_GPIO_REGS1314#define __reg(ADDR) (*(volatile unsigned long *)(ADDR))1516#define __get_PDR() ({ __reg(0xfeff0400); })17#define __set_PDR(V) do { __reg(0xfeff0400) = (V); mb(); } while(0)1819#define __get_GPDR() ({ __reg(0xfeff0408); })20#define __set_GPDR(V) do { __reg(0xfeff0408) = (V); mb(); } while(0)2122#define __get_SIR() ({ __reg(0xfeff0410); })23#define __set_SIR(V) do { __reg(0xfeff0410) = (V); mb(); } while(0)2425#define __get_SOR() ({ __reg(0xfeff0418); })26#define __set_SOR(V) do { __reg(0xfeff0418) = (V); mb(); } while(0)2728#define __set_PDSR(V) do { __reg(0xfeff0420) = (V); mb(); } while(0)2930#define __set_PDCR(V) do { __reg(0xfeff0428) = (V); mb(); } while(0)3132#define __get_RSTR() ({ __reg(0xfeff0500); })33#define __set_RSTR(V) do { __reg(0xfeff0500) = (V); mb(); } while(0)34353637/* PDR definitions */38#define PDR_GPIO_DATA(X) (1 << (X))3940/* GPDR definitions */41#define GPDR_INPUT 042#define GPDR_OUTPUT 143#define GPDR_DREQ0_BIT 0x0000100044#define GPDR_DREQ1_BIT 0x0000800045#define GPDR_DREQ2_BIT 0x0004000046#define GPDR_DREQ3_BIT 0x0008000047#define GPDR_DREQ4_BIT 0x0000400048#define GPDR_DREQ5_BIT 0x0002000049#define GPDR_DREQ6_BIT 0x0010000050#define GPDR_DREQ7_BIT 0x0020000051#define GPDR_DACK0_BIT 0x0000200052#define GPDR_DACK1_BIT 0x0001000053#define GPDR_DACK2_BIT 0x0010000054#define GPDR_DACK3_BIT 0x0020000055#define GPDR_DONE0_BIT 0x0000400056#define GPDR_DONE1_BIT 0x0002000057#define GPDR_GPIO_DIR(X,D) ((D) << (X))5859/* SIR definitions */60#define SIR_GPIO_INPUT 061#define SIR_DREQ7_INPUT 0x0020000062#define SIR_DREQ6_INPUT 0x0010000063#define SIR_DREQ3_INPUT 0x0008000064#define SIR_DREQ2_INPUT 0x0004000065#define SIR_DREQ5_INPUT 0x0002000066#define SIR_DREQ1_INPUT 0x0000800067#define SIR_DREQ4_INPUT 0x0000400068#define SIR_DREQ0_INPUT 0x0000100069#define SIR_RXD1_INPUT 0x0000040070#define SIR_CTS0_INPUT 0x0000010071#define SIR_RXD0_INPUT 0x0000004072#define SIR_GATE1_INPUT 0x0000002073#define SIR_GATE0_INPUT 0x0000001074#define SIR_IRQ3_INPUT 0x0000000875#define SIR_IRQ2_INPUT 0x0000000476#define SIR_IRQ1_INPUT 0x0000000277#define SIR_IRQ0_INPUT 0x0000000178#define SIR_DREQ_BITS (SIR_DREQ0_INPUT | SIR_DREQ1_INPUT | \79SIR_DREQ2_INPUT | SIR_DREQ3_INPUT | \80SIR_DREQ4_INPUT | SIR_DREQ5_INPUT | \81SIR_DREQ6_INPUT | SIR_DREQ7_INPUT)8283/* SOR definitions */84#define SOR_GPIO_OUTPUT 085#define SOR_DACK3_OUTPUT 0x0020000086#define SOR_DACK2_OUTPUT 0x0010000087#define SOR_DONE1_OUTPUT 0x0002000088#define SOR_DACK1_OUTPUT 0x0001000089#define SOR_DONE0_OUTPUT 0x0000400090#define SOR_DACK0_OUTPUT 0x0000200091#define SOR_TXD1_OUTPUT 0x0000080092#define SOR_RTS0_OUTPUT 0x0000020093#define SOR_TXD0_OUTPUT 0x0000008094#define SOR_TOUT1_OUTPUT 0x0000002095#define SOR_TOUT0_OUTPUT 0x0000001096#define SOR_DONE_BITS (SOR_DONE0_OUTPUT | SOR_DONE1_OUTPUT)97#define SOR_DACK_BITS (SOR_DACK0_OUTPUT | SOR_DACK1_OUTPUT | \98SOR_DACK2_OUTPUT | SOR_DACK3_OUTPUT)99100/* PDSR definitions */101#define PDSR_UNCHANGED 0102#define PDSR_SET_BIT(X) (1 << (X))103104/* PDCR definitions */105#define PDCR_UNCHANGED 0106#define PDCR_CLEAR_BIT(X) (1 << (X))107108/* RSTR definitions */109/* Read Only */110#define RSTR_POWERON 0x00000400111#define RSTR_SOFTRESET_STATUS 0x00000100112/* Write Only */113#define RSTR_SOFTRESET 0x00000001114115#endif /* _ASM_GPIO_REGS */116117118