Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
2cce8263
Commit
2cce8263
authored
Sep 18, 2005
by
Pete Popov
Committed by
Ralf Baechle
Oct 29, 2005
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Kernel gpio/2 routines that will be used by some drivers.
Signed-off-by:
Ralf Baechle
<
ralf@linux-mips.org
>
parent
13bb199f
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
140 additions
and
1 deletion
+140
-1
arch/mips/au1000/common/Makefile
arch/mips/au1000/common/Makefile
+1
-1
arch/mips/au1000/common/gpio.c
arch/mips/au1000/common/gpio.c
+119
-0
include/asm-mips/mach-au1x00/au1xxx_gpio.h
include/asm-mips/mach-au1x00/au1xxx_gpio.h
+20
-0
No files found.
arch/mips/au1000/common/Makefile
View file @
2cce8263
...
...
@@ -8,7 +8,7 @@
obj-y
+=
prom.o int-handler.o irq.o puts.o time.o reset.o
\
au1xxx_irqmap.o clocks.o platform.o power.o setup.o
\
sleeper.o cputable.o dma.o dbdma.o
sleeper.o cputable.o dma.o dbdma.o
gpio.o
obj-$(CONFIG_AU1X00_USB_DEVICE)
+=
usbdev.o
obj-$(CONFIG_KGDB)
+=
dbg_io.o
...
...
arch/mips/au1000/common/gpio.c
0 → 100644
View file @
2cce8263
/*
* 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 SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
* NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include <linux/config.h>
#include <linux/module.h>
#include <au1000.h>
#include <au1xxx_gpio.h>
#define gpio1 sys
#if !defined(CONFIG_SOC_AU1000)
static
AU1X00_GPIO2
*
const
gpio2
=
(
AU1X00_GPIO2
*
)
GPIO2_BASE
;
#define GPIO2_OUTPUT_ENABLE_MASK 0x00010000
int
au1xxx_gpio2_read
(
int
signal
)
{
signal
-=
200
;
/* gpio2->dir &= ~(0x01 << signal); //Set GPIO to input */
return
((
gpio2
->
pinstate
>>
signal
)
&
0x01
);
}
void
au1xxx_gpio2_write
(
int
signal
,
int
value
)
{
signal
-=
200
;
gpio2
->
output
=
(
GPIO2_OUTPUT_ENABLE_MASK
<<
signal
)
|
(
value
<<
signal
);
}
void
au1xxx_gpio2_tristate
(
int
signal
)
{
signal
-=
200
;
gpio2
->
dir
&=
~
(
0x01
<<
signal
);
/* Set GPIO to input */
}
#endif
int
au1xxx_gpio1_read
(
int
signal
)
{
/* gpio1->trioutclr |= (0x01 << signal); */
return
((
gpio1
->
pinstaterd
>>
signal
)
&
0x01
);
}
void
au1xxx_gpio1_write
(
int
signal
,
int
value
)
{
if
(
value
)
gpio1
->
outputset
=
(
0x01
<<
signal
);
else
gpio1
->
outputclr
=
(
0x01
<<
signal
);
/* Output a Zero */
}
void
au1xxx_gpio1_tristate
(
int
signal
)
{
gpio1
->
trioutclr
=
(
0x01
<<
signal
);
/* Tristate signal */
}
int
au1xxx_gpio_read
(
int
signal
)
{
if
(
signal
>=
200
)
#if defined(CONFIG_SOC_AU1000)
return
0
;
#else
return
au1xxx_gpio2_read
(
signal
);
#endif
else
return
au1xxx_gpio1_read
(
signal
);
}
void
au1xxx_gpio_write
(
int
signal
,
int
value
)
{
if
(
signal
>=
200
)
#if defined(CONFIG_SOC_AU1000)
;
#else
au1xxx_gpio2_write
(
signal
,
value
);
#endif
else
au1xxx_gpio1_write
(
signal
,
value
);
}
void
au1xxx_gpio_tristate
(
int
signal
)
{
if
(
signal
>=
200
)
#if defined(CONFIG_SOC_AU1000)
;
#else
au1xxx_gpio2_tristate
(
signal
);
#endif
else
au1xxx_gpio1_tristate
(
signal
);
}
void
au1xxx_gpio1_set_inputs
(
void
)
{
gpio1
->
pininputen
=
0
;
}
EXPORT_SYMBOL
(
au1xxx_gpio1_set_inputs
);
EXPORT_SYMBOL
(
au1xxx_gpio_tristate
);
EXPORT_SYMBOL
(
au1xxx_gpio_write
);
EXPORT_SYMBOL
(
au1xxx_gpio_read
);
include/asm-mips/mach-au1x00/au1xxx_gpio.h
0 → 100644
View file @
2cce8263
#ifndef __AU1XXX_GPIO_H
#define __AU1XXX_GPIO_H
void
au1xxx_gpio1_set_inputs
(
void
);
void
au1xxx_gpio_tristate
(
int
signal
);
void
au1xxx_gpio_write
(
int
signal
,
int
value
);
int
au1xxx_gpio_read
(
int
signal
);
typedef
volatile
struct
{
u32
dir
;
u32
reserved
;
u32
output
;
u32
pinstate
;
u32
inten
;
u32
enable
;
}
AU1X00_GPIO2
;
#endif //__AU1XXX_GPIO_H
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment