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
bbeddc43
Commit
bbeddc43
authored
Jul 05, 2009
by
Russell King
Committed by
Russell King
Jul 06, 2009
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[ARM] versatile: add PL061 gpiolib support
Signed-off-by:
Russell King
<
rmk+kernel@arm.linux.org.uk
>
parent
28d0325c
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
43 additions
and
5 deletions
+43
-5
arch/arm/Kconfig
arch/arm/Kconfig
+1
-0
arch/arm/mach-versatile/core.c
arch/arm/mach-versatile/core.c
+13
-2
arch/arm/mach-versatile/include/mach/gpio.h
arch/arm/mach-versatile/include/mach/gpio.h
+6
-0
arch/arm/mach-versatile/include/mach/irqs.h
arch/arm/mach-versatile/include/mach/irqs.h
+10
-1
arch/arm/mach-versatile/versatile_pb.c
arch/arm/mach-versatile/versatile_pb.c
+13
-2
No files found.
arch/arm/Kconfig
View file @
bbeddc43
...
...
@@ -229,6 +229,7 @@ config ARCH_VERSATILE
select ICST307
select GENERIC_TIME
select GENERIC_CLOCKEVENTS
select ARCH_WANT_OPTIONAL_GPIOLIB
help
This enables support for ARM Ltd Versatile board.
...
...
arch/arm/mach-versatile/core.c
View file @
bbeddc43
...
...
@@ -26,6 +26,7 @@
#include <linux/interrupt.h>
#include <linux/amba/bus.h>
#include <linux/amba/clcd.h>
#include <linux/amba/pl061.h>
#include <linux/clocksource.h>
#include <linux/clockchips.h>
#include <linux/cnt32_to_63.h>
...
...
@@ -706,6 +707,16 @@ static struct clcd_board clcd_plat_data = {
.
remove
=
versatile_clcd_remove
,
};
static
struct
pl061_platform_data
gpio0_plat_data
=
{
.
gpio_base
=
0
,
.
irq_base
=
IRQ_GPIO0_START
,
};
static
struct
pl061_platform_data
gpio1_plat_data
=
{
.
gpio_base
=
8
,
.
irq_base
=
IRQ_GPIO1_START
,
};
#define AACI_IRQ { IRQ_AACI, NO_IRQ }
#define AACI_DMA { 0x80, 0x81 }
#define MMCI0_IRQ { IRQ_MMCI0A,IRQ_SIC_MMCI0B }
...
...
@@ -768,8 +779,8 @@ AMBA_DEVICE(clcd, "dev:20", CLCD, &clcd_plat_data);
AMBA_DEVICE
(
dmac
,
"dev:30"
,
DMAC
,
NULL
);
AMBA_DEVICE
(
sctl
,
"dev:e0"
,
SCTL
,
NULL
);
AMBA_DEVICE
(
wdog
,
"dev:e1"
,
WATCHDOG
,
NULL
);
AMBA_DEVICE
(
gpio0
,
"dev:e4"
,
GPIO0
,
NULL
);
AMBA_DEVICE
(
gpio1
,
"dev:e5"
,
GPIO1
,
NULL
);
AMBA_DEVICE
(
gpio0
,
"dev:e4"
,
GPIO0
,
&
gpio0_plat_data
);
AMBA_DEVICE
(
gpio1
,
"dev:e5"
,
GPIO1
,
&
gpio1_plat_data
);
AMBA_DEVICE
(
rtc
,
"dev:e8"
,
RTC
,
NULL
);
AMBA_DEVICE
(
sci0
,
"dev:f0"
,
SCI
,
NULL
);
AMBA_DEVICE
(
uart0
,
"dev:f1"
,
UART0
,
NULL
);
...
...
arch/arm/mach-versatile/include/mach/gpio.h
0 → 100644
View file @
bbeddc43
#include <asm-generic/gpio.h>
#define gpio_get_value __gpio_get_value
#define gpio_set_value __gpio_set_value
#define gpio_cansleep __gpio_cansleep
#define gpio_to_irq __gpio_to_irq
arch/arm/mach-versatile/include/mach/irqs.h
View file @
bbeddc43
...
...
@@ -122,4 +122,13 @@
#define IRQ_SIC_PCI3 (IRQ_SIC_START + SIC_INT_PCI3)
#define IRQ_SIC_END 63
#define NR_IRQS 64
#define IRQ_GPIO0_START (IRQ_SIC_END + 1)
#define IRQ_GPIO0_END (IRQ_GPIO0_START + 31)
#define IRQ_GPIO1_START (IRQ_GPIO0_END + 1)
#define IRQ_GPIO1_END (IRQ_GPIO1_START + 31)
#define IRQ_GPIO2_START (IRQ_GPIO1_END + 1)
#define IRQ_GPIO2_END (IRQ_GPIO2_START + 31)
#define IRQ_GPIO3_START (IRQ_GPIO2_END + 1)
#define IRQ_GPIO3_END (IRQ_GPIO3_START + 31)
#define NR_IRQS (IRQ_GPIO3_END + 1)
arch/arm/mach-versatile/versatile_pb.c
View file @
bbeddc43
...
...
@@ -23,6 +23,7 @@
#include <linux/device.h>
#include <linux/sysdev.h>
#include <linux/amba/bus.h>
#include <linux/amba/pl061.h>
#include <linux/io.h>
#include <mach/hardware.h>
...
...
@@ -45,6 +46,16 @@ static struct mmc_platform_data mmc1_plat_data = {
.
status
=
mmc_status
,
};
static
struct
pl061_platform_data
gpio2_plat_data
=
{
.
gpio_base
=
16
,
.
irq_base
=
IRQ_GPIO2_START
,
};
static
struct
pl061_platform_data
gpio3_plat_data
=
{
.
gpio_base
=
24
,
.
irq_base
=
IRQ_GPIO3_START
,
};
#define UART3_IRQ { IRQ_SIC_UART3, NO_IRQ }
#define UART3_DMA { 0x86, 0x87 }
#define SCI1_IRQ { IRQ_SIC_SCI3, NO_IRQ }
...
...
@@ -70,8 +81,8 @@ AMBA_DEVICE(sci1, "fpga:0a", SCI1, NULL);
AMBA_DEVICE
(
mmc1
,
"fpga:0b"
,
MMCI1
,
&
mmc1_plat_data
);
/* DevChip Primecells */
AMBA_DEVICE
(
gpio2
,
"dev:e6"
,
GPIO2
,
NULL
);
AMBA_DEVICE
(
gpio3
,
"dev:e7"
,
GPIO3
,
NULL
);
AMBA_DEVICE
(
gpio2
,
"dev:e6"
,
GPIO2
,
&
gpio2_plat_data
);
AMBA_DEVICE
(
gpio3
,
"dev:e7"
,
GPIO3
,
&
gpio3_plat_data
);
static
struct
amba_device
*
amba_devs
[]
__initdata
=
{
&
uart3_device
,
...
...
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