Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
linux-davinci-2.6.23
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
linux
linux-davinci-2.6.23
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