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
4b3df94c
Commit
4b3df94c
authored
Oct 04, 2004
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge
bk://bk.arm.linux.org.uk/linux-2.6-rmk
into ppc970.osdl.org:/home/torvalds/v2.6/linux
parents
50631ef3
6f931c36
Changes
9
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
315 additions
and
12 deletions
+315
-12
Documentation/arm/Samsung-S3C24XX/EB2410ITX.txt
Documentation/arm/Samsung-S3C24XX/EB2410ITX.txt
+15
-0
Documentation/arm/Samsung-S3C24XX/GPIO.txt
Documentation/arm/Samsung-S3C24XX/GPIO.txt
+122
-0
Documentation/arm/Samsung-S3C24XX/Overview.txt
Documentation/arm/Samsung-S3C24XX/Overview.txt
+48
-2
arch/arm/boot/compressed/head.S
arch/arm/boot/compressed/head.S
+6
-0
arch/arm/mach-s3c2410/gpio.c
arch/arm/mach-s3c2410/gpio.c
+38
-1
include/asm-arm/arch-rpc/uncompress.h
include/asm-arm/arch-rpc/uncompress.h
+2
-2
include/asm-arm/arch-s3c2410/hardware.h
include/asm-arm/arch-s3c2410/hardware.h
+16
-1
include/asm-arm/arch-s3c2410/regs-gpio.h
include/asm-arm/arch-s3c2410/regs-gpio.h
+12
-6
include/asm-arm/arch-s3c2410/regs-spi.h
include/asm-arm/arch-s3c2410/regs-spi.h
+56
-0
No files found.
Documentation/arm/Samsung-S3C24XX/EB2410ITX.txt
View file @
4b3df94c
...
@@ -26,4 +26,19 @@ Support
...
@@ -26,4 +26,19 @@ Support
and http://www.simtec.co.uk/products/EB2410ITX/resources.html
and http://www.simtec.co.uk/products/EB2410ITX/resources.html
MTD
---
The NAND and NOR onboard are currently supported in the linux-mtd cvs,
and are awaiting merge in the mainline. see the linux-mtd project at
http://www.linux-mtd.infradead.org/ for more information.
IDE
---
Both onboard IDE ports are supported, however there is no support for
changing speed of devices, PIO Mode 4 capable drives should be used.
(c) 2004 Ben Dooks, Simtec Electronics
(c) 2004 Ben Dooks, Simtec Electronics
Documentation/arm/Samsung-S3C24XX/GPIO.txt
0 → 100644
View file @
4b3df94c
S3C2410 GPIO Control
====================
Introduction
------------
The s3c2410 kernel provides an interface to configure and
manipulate the state of the GPIO pins, and find out other
information about them.
There are a number of conditions attached to the configuration
of the s3c2410 GPIO system, please read the Samsung provided
data-sheet/users manual to find out the complete list.
Headers
-------
See include/asm-arm/arch-s3c2410/regs-gpio.h for the list
of GPIO pins, and the configuration values for them. This
is included by using #include <asm/arch/regs-gpio.h>
The GPIO management functions are defined in the hardware
header include/asm-arm/arch-s3c2410/hardware.h which can be
included by #include <asm/arch/hardware.h>
A useful ammount of documentation can be found in the hardware
header on how the GPIO functions (and others) work.
Whilst a number of these functions do make some checks on what
is passed to them, for speed of use, they may not always ensure
that the user supplied data to them is correct.
PIN Numbers
-----------
Each pin has an unique number associated with it in regs-gpio.h,
eg S3C2410_GPA0 or S3C2410_GPF1. These defines are used to tell
the GPIO functions which pin is to be used.
Configuring a pin
-----------------
The following function allows the configuration of a given pin to
be changed.
void s3c2410_gpio_cfgpin(unsigned int pin, unsigned int function);
Eg:
s3c2410_gpio_cfgpin(S3C2410_GPA0, S3C2410_GPA0_ADDR0);
s3c2410_gpio_cfgpin(S3C2410_GPE8, S3C2410_GPE8_SDDAT1);
which would turn GPA0 into the lowest Address line A0, and set
GPE8 to be connected to the SDIO/MMC controller's SDDAT1 line.
Reading the current configuration
---------------------------------
The current configuration of a pin can be read by using:
s3c2410_gpio_getcfg(unsigned int pin);
The return value will be from the same set of values which can be
passed to s3c2410_gpio_cfgpin().
Configuring a pull-up resistor
------------------------------
A large proportion of the GPIO pins on the S3C2410 can have weak
pull-up resistors enabled. This can be configured by the following
function:
void s3c2410_gpio_pullup(unsigned int pin, unsigned int to);
Where the to value is zero to set the pull-up off, and 1 to enable
the specified pull-up. Any other values are currently undefined.
Getting the state of a PIN
--------------------------
The state of a pin can be read by using the function:
unsigned int s3c2410_gpio_getpin(unsigned int pin);
This will return either zero or non-zero. Do not count on this
function returning 1 if the pin is set.
Setting the state of a PIN
--------------------------
The value an pin is outputing can be modified by using the following:
void s3c2410_gpio_setpin(unsigned int pin, unsigned int to);
Which sets the given pin to the value. Use 0 to write 0, and 1 to
set the output to 1.
Getting the IRQ number associated with a PIN
--------------------------------------------
The following function can map the given pin number to an IRQ
number to pass to the IRQ system.
int s3c2410_gpio_getirq(unsigned int pin);
Note, not all pins have an IRQ.
Authour
-------
Ben Dooks, 03 October 2004
(c) 2004 Ben Dooks, Simtec Electronics
Documentation/arm/Samsung-S3C24XX/Overview.txt
View file @
4b3df94c
...
@@ -18,6 +18,9 @@ Configuration
...
@@ -18,6 +18,9 @@ Configuration
default by `make s3c2410_defconfig`. This configuration has support
default by `make s3c2410_defconfig`. This configuration has support
for all the machines, and the commonly used features on them.
for all the machines, and the commonly used features on them.
Certain machines may have their own default configurations as well,
please check the machine specific documentation.
Machines
Machines
--------
--------
...
@@ -42,10 +45,53 @@ Machines
...
@@ -42,10 +45,53 @@ Machines
Handheld (IPAQ), available in several varieties
Handheld (IPAQ), available in several varieties
Contributors
NAND
------------
----
The current kernels do not have direct support for the NAND
controller, the latest linux-mtd CVS has support for this.
See http://www.linux-mtd.infradead.org/
Serial
------
The s3c2410 serial driver provides support for the internal
serial ports. These devices appear as /dev/ttySAC0 through 3.
To create device nodes for these, use the following commands
mknod ttySAC0 c 204 64
mknod ttySAC1 c 204 65
mknod ttySAC2 c 204 66
GPIO
----
The core contains support for manipulating the GPIO, see the
documentation in GPIO.txt in the same directory as this file.
Clock Management
----------------
The core provides the interface defined in the header file
include/asm-arm/hardware/clock.h, to allow control over the
various clock units
Port Contributors
-----------------
Ben Dooks
Ben Dooks
Vincent Sanders
Vincent Sanders
Herbert Potzl
Herbert Potzl
Arnaud Patard
Arnaud Patard
Roc Wu
Document Author
---------------
Ben Dooks, (c) 2004 Simtec Electronics
arch/arm/boot/compressed/head.S
View file @
4b3df94c
...
@@ -349,6 +349,12 @@ LC0: .word LC0 @ r1
...
@@ -349,6 +349,12 @@ LC0: .word LC0 @ r1
LC1
:
.
word
reloc_end
-
reloc_start
LC1
:
.
word
reloc_end
-
reloc_start
.
size
LC0
,
.
-
LC0
.
size
LC0
,
.
-
LC0
.
globl
params
params
:
ldr
r0
,
=
params_phys
mov
pc
,
lr
.
ltorg
.
align
/*
/*
*
Turn
on
the
cache
.
We
need
to
setup
some
page
tables
so
that
we
*
Turn
on
the
cache
.
We
need
to
setup
some
page
tables
so
that
we
*
can
have
both
the
I
and
D
caches
on
.
*
can
have
both
the
I
and
D
caches
on
.
...
...
arch/arm/mach-s3c2410/gpio.c
View file @
4b3df94c
...
@@ -26,7 +26,8 @@
...
@@ -26,7 +26,8 @@
* 30-Sep-2004 BJD Fixed cfgpin() mask bug
* 30-Sep-2004 BJD Fixed cfgpin() mask bug
* 01-Oct-2004 BJD Added getcfg() to get pin configuration
* 01-Oct-2004 BJD Added getcfg() to get pin configuration
* 01-Oct-2004 BJD Fixed mask bug in pullup() call
* 01-Oct-2004 BJD Fixed mask bug in pullup() call
* 01-Oct-2004 BJD Added getoirq() to turn pin into irqno
* 01-Oct-2004 BJD Added getirq() to turn pin into irqno
* 04-Oct-2004 BJD Added irq filter controls for GPIO
*/
*/
...
@@ -155,3 +156,39 @@ int s3c2410_gpio_getirq(unsigned int pin)
...
@@ -155,3 +156,39 @@ int s3c2410_gpio_getirq(unsigned int pin)
return
(
pin
-
S3C2410_GPG0
)
+
IRQ_EINT8
;
return
(
pin
-
S3C2410_GPG0
)
+
IRQ_EINT8
;
}
}
int
s3c2410_gpio_irqfilter
(
unsigned
int
pin
,
unsigned
int
on
,
unsigned
int
config
)
{
unsigned
long
reg
=
S3C2410_EINFLT0
;
unsigned
long
flags
;
unsigned
long
val
;
if
(
pin
<
S3C2410_GPG8
||
pin
>
S3C2410_GPG15
)
return
-
1
;
config
&=
0xff
;
pin
-=
S3C2410_GPG8_EINT16
;
reg
+=
pin
&
~
3
;
local_irq_save
(
flags
);
/* update filter width and clock source */
val
=
__raw_readl
(
reg
);
val
&=
~
(
0xff
<<
((
pin
&
3
)
*
8
));
val
|=
config
<<
((
pin
&
3
)
*
8
);
__raw_writel
(
val
,
reg
);
/* update filter enable */
val
=
__raw_readl
(
S3C2410_EXTINT2
);
val
&=
~
(
1
<<
((
pin
*
4
)
+
3
));
val
|=
on
<<
((
pin
*
4
)
+
3
);
__raw_writel
(
val
,
S3C2410_EXTINT2
);
local_irq_restore
(
flags
);
return
0
;
}
include/asm-arm/arch-rpc/uncompress.h
View file @
4b3df94c
...
@@ -60,8 +60,8 @@ static const unsigned long palette_4[16] = {
...
@@ -60,8 +60,8 @@ static const unsigned long palette_4[16] = {
* params_phys is a linker defined symbol - see
* params_phys is a linker defined symbol - see
* arch/arm/boot/compressed/Makefile
* arch/arm/boot/compressed/Makefile
*/
*/
extern
struct
param_struct
params_phys
;
extern
__attribute__
((
pure
))
struct
param_struct
*
params
(
void
)
;
#define params (
¶ms_phys
)
#define params (
params()
)
#ifndef STANDALONE_DEBUG
#ifndef STANDALONE_DEBUG
/*
/*
...
...
include/asm-arm/arch-s3c2410/hardware.h
View file @
4b3df94c
...
@@ -48,7 +48,6 @@ extern void s3c2410_gpio_cfgpin(unsigned int pin, unsigned int function);
...
@@ -48,7 +48,6 @@ extern void s3c2410_gpio_cfgpin(unsigned int pin, unsigned int function);
extern
unsigned
int
s3c2410_gpio_getcfg
(
unsigned
int
pin
);
extern
unsigned
int
s3c2410_gpio_getcfg
(
unsigned
int
pin
);
/* s3c2410_gpio_getirq
/* s3c2410_gpio_getirq
*
*
* turn the given pin number into the corresponding IRQ number
* turn the given pin number into the corresponding IRQ number
...
@@ -60,6 +59,22 @@ extern unsigned int s3c2410_gpio_getcfg(unsigned int pin);
...
@@ -60,6 +59,22 @@ extern unsigned int s3c2410_gpio_getcfg(unsigned int pin);
extern
int
s3c2410_gpio_getirq
(
unsigned
int
pin
);
extern
int
s3c2410_gpio_getirq
(
unsigned
int
pin
);
/* s3c2410_gpio_irqfilter
*
* set the irq filtering on the given pin
*
* on = 0 => disable filtering
* 1 => enable filtering
*
* config = S3C2410_EINTFLT_PCLK or S3C2410_EINTFLT_EXTCLK orred with
* width of filter (0 through 63)
*
*
*/
extern
int
s3c2410_gpio_irqfilter
(
unsigned
int
pin
,
unsigned
int
on
,
unsigned
int
config
);
/* s3c2410_gpio_pullup
/* s3c2410_gpio_pullup
*
*
* configure the pull-up control on the given pin
* configure the pull-up control on the given pin
...
...
include/asm-arm/arch-s3c2410/regs-gpio.h
View file @
4b3df94c
...
@@ -14,7 +14,8 @@
...
@@ -14,7 +14,8 @@
* 23-06-2003 BJD Updated GSTATUS registers
* 23-06-2003 BJD Updated GSTATUS registers
* 12-03-2004 BJD Updated include protection
* 12-03-2004 BJD Updated include protection
* 20-07-2004 BJD Added GPIO pin numbers, added Port A definitions
* 20-07-2004 BJD Added GPIO pin numbers, added Port A definitions
*/
* 04-10-2004 BJD Fixed number of bugs, added EXT IRQ filter defs
*/
#ifndef __ASM_ARCH_REGS_GPIO_H
#ifndef __ASM_ARCH_REGS_GPIO_H
...
@@ -614,31 +615,31 @@
...
@@ -614,31 +615,31 @@
#define S3C2410_GPG10_OUTP (0x01 << 20)
#define S3C2410_GPG10_OUTP (0x01 << 20)
#define S3C2410_GPG10_EINT18 (0x02 << 20)
#define S3C2410_GPG10_EINT18 (0x02 << 20)
#define S3C2410_GPG1
0 S3C2410_GPIONO(S3C2410_GPIO_BANKG, 10
)
#define S3C2410_GPG1
1 S3C2410_GPIONO(S3C2410_GPIO_BANKG, 11
)
#define S3C2410_GPG11_INP (0x00 << 22)
#define S3C2410_GPG11_INP (0x00 << 22)
#define S3C2410_GPG11_OUTP (0x01 << 22)
#define S3C2410_GPG11_OUTP (0x01 << 22)
#define S3C2410_GPG11_EINT19 (0x02 << 22)
#define S3C2410_GPG11_EINT19 (0x02 << 22)
#define S3C2410_GPG11_TCLK1 (0x03 << 22)
#define S3C2410_GPG11_TCLK1 (0x03 << 22)
#define S3C2410_GPG1
0 S3C2410_GPIONO(S3C2410_GPIO_BANKG, 10
)
#define S3C2410_GPG1
2 S3C2410_GPIONO(S3C2410_GPIO_BANKG, 12
)
#define S3C2410_GPG12_INP (0x00 << 24)
#define S3C2410_GPG12_INP (0x00 << 24)
#define S3C2410_GPG12_OUTP (0x01 << 24)
#define S3C2410_GPG12_OUTP (0x01 << 24)
#define S3C2410_GPG12_EINT20 (0x02 << 24)
#define S3C2410_GPG12_EINT20 (0x02 << 24)
#define S3C2410_GPG12_XMON (0x03 << 24)
#define S3C2410_GPG12_XMON (0x03 << 24)
#define S3C2410_GPG1
0 S3C2410_GPIONO(S3C2410_GPIO_BANKG, 10
)
#define S3C2410_GPG1
3 S3C2410_GPIONO(S3C2410_GPIO_BANKG, 13
)
#define S3C2410_GPG13_INP (0x00 << 26)
#define S3C2410_GPG13_INP (0x00 << 26)
#define S3C2410_GPG13_OUTP (0x01 << 26)
#define S3C2410_GPG13_OUTP (0x01 << 26)
#define S3C2410_GPG13_EINT21 (0x02 << 26)
#define S3C2410_GPG13_EINT21 (0x02 << 26)
#define S3C2410_GPG13_nXPON (0x03 << 26)
#define S3C2410_GPG13_nXPON (0x03 << 26)
#define S3C2410_GPG1
0 S3C2410_GPIONO(S3C2410_GPIO_BANKG, 10
)
#define S3C2410_GPG1
4 S3C2410_GPIONO(S3C2410_GPIO_BANKG, 14
)
#define S3C2410_GPG14_INP (0x00 << 28)
#define S3C2410_GPG14_INP (0x00 << 28)
#define S3C2410_GPG14_OUTP (0x01 << 28)
#define S3C2410_GPG14_OUTP (0x01 << 28)
#define S3C2410_GPG14_EINT22 (0x02 << 28)
#define S3C2410_GPG14_EINT22 (0x02 << 28)
#define S3C2410_GPG14_YMON (0x03 << 28)
#define S3C2410_GPG14_YMON (0x03 << 28)
#define S3C2410_GPG1
0 S3C2410_GPIONO(S3C2410_GPIO_BANKG, 10
)
#define S3C2410_GPG1
5 S3C2410_GPIONO(S3C2410_GPIO_BANKG, 15
)
#define S3C2410_GPG15_INP (0x00 << 30)
#define S3C2410_GPG15_INP (0x00 << 30)
#define S3C2410_GPG15_OUTP (0x01 << 30)
#define S3C2410_GPG15_OUTP (0x01 << 30)
#define S3C2410_GPG15_EINT23 (0x02 << 30)
#define S3C2410_GPG15_EINT23 (0x02 << 30)
...
@@ -783,6 +784,11 @@
...
@@ -783,6 +784,11 @@
#define S3C2410_EINFLT2 S3C2410_GPIOREG(0x9C)
#define S3C2410_EINFLT2 S3C2410_GPIOREG(0x9C)
#define S3C2410_EINFLT3 S3C2410_GPIOREG(0xA0)
#define S3C2410_EINFLT3 S3C2410_GPIOREG(0xA0)
/* values for interrupt filtering */
#define S3C2410_EINTFLT_PCLK (0x00)
#define S3C2410_EINTFLT_EXTCLK (1<<7)
#define S3C2410_EINTFLT_WIDTHMSK(x) ((x) & 0x3f)
/* removed EINTxxxx defs from here, not meant for this */
/* removed EINTxxxx defs from here, not meant for this */
/* GSTATUS have miscellaneous information in them
/* GSTATUS have miscellaneous information in them
...
...
include/asm-arm/arch-s3c2410/regs-spi.h
0 → 100644
View file @
4b3df94c
/* linux/include/asm-arm/arch-s3c2410/regs-spi.h
*
* Copyright (c) 2004 Fetron GmbH
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* S3C2410 SPI register definition
*
* Changelog:
* 20-04-2004 KF Created file
* 04-10-2004 BJD Removed VA address (no longer mapped)
* tidied file for submission
*/
#ifndef __ASM_ARCH_REGS_SPI_H
#define __ASM_ARCH_REGS_SPI_H
#define S3C2410_SPCON (0x00)
#define S3C2410_SPCON_SMOD_DMA (2<<5)
/* DMA mode */
#define S3C2410_SPCON_SMOD_INT (1<<5)
/* interrupt mode */
#define S3C2410_SPCON_SMOD_POLL (0<<5)
/* polling mode */
#define S3C2410_SPCON_ENSCK (1<<4)
/* Enable SCK */
#define S3C2410_SPCON_MSTR (1<<3)
/* Master/Slave select
0: slave, 1: master */
#define S3C2410_SPCON_CPOL_HIGH (1<<2)
/* Clock polarity select */
#define S3C2410_SPCON_CPOL_LOW (0<<2)
/* Clock polarity select */
#define S3C2410_SPCON_CPHA_FMTB (1<<1)
/* Clock Phase Select */
#define S3C2410_SPCON_CPHA_FMTA (0<<1)
/* Clock Phase Select */
#define S3C2410_SPCON_TAGD (1<<0)
/* Tx auto garbage data mode */
#define S3C2410_SPSTA (0x04)
#define S3C2410_SPSTA_DCOL (1<<2)
/* Data Collision Error */
#define S3C2410_SPSTA_MULD (1<<1)
/* Multi Master Error */
#define S3C2410_SPSTA_READY (1<<0)
/* Data Tx/Rx ready */
#define S3C2410_SPPIN (0x08)
#define S3C2410_SPPIN_ENMUL (1<<2)
/* Multi Master Error detect */
#define S3C2410_SPPIN_RESERVED (1<<1)
#define S3C2410_SPPIN_KEEP (1<<0)
/* Master Out keep */
#define S3C2410_SPPRE (0x0C)
#define S3C2410_SPTDAT (0x10)
#define S3C2410_SPRDAT (0x14)
#endif
/* __ASM_ARCH_REGS_SPI_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