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
nexedi
linux
Commits
e252d4c3
Commit
e252d4c3
authored
Nov 29, 2007
by
Russell King
Committed by
Russell King
Nov 29, 2007
Browse files
Options
Browse Files
Download
Plain Diff
Merge branches 'at91-fixes' and 'pxa-fixes'
parents
98aa6864
e7032700
008f6d2a
Changes
30
Hide whitespace changes
Inline
Side-by-side
Showing
30 changed files
with
294 additions
and
63 deletions
+294
-63
MAINTAINERS
MAINTAINERS
+1
-1
arch/arm/mach-at91/at91rm9200_devices.c
arch/arm/mach-at91/at91rm9200_devices.c
+38
-3
arch/arm/mach-at91/at91sam9260_devices.c
arch/arm/mach-at91/at91sam9260_devices.c
+39
-3
arch/arm/mach-at91/at91sam9261_devices.c
arch/arm/mach-at91/at91sam9261_devices.c
+39
-3
arch/arm/mach-at91/at91sam9263_devices.c
arch/arm/mach-at91/at91sam9263_devices.c
+39
-3
arch/arm/mach-at91/at91sam9rl_devices.c
arch/arm/mach-at91/at91sam9rl_devices.c
+39
-4
arch/arm/mach-at91/board-carmeva.c
arch/arm/mach-at91/board-carmeva.c
+1
-1
arch/arm/mach-at91/board-csb337.c
arch/arm/mach-at91/board-csb337.c
+4
-7
arch/arm/mach-at91/board-csb637.c
arch/arm/mach-at91/board-csb637.c
+1
-1
arch/arm/mach-at91/board-dk.c
arch/arm/mach-at91/board-dk.c
+14
-1
arch/arm/mach-at91/board-eb9200.c
arch/arm/mach-at91/board-eb9200.c
+9
-1
arch/arm/mach-at91/board-ek.c
arch/arm/mach-at91/board-ek.c
+1
-1
arch/arm/mach-at91/board-kafa.c
arch/arm/mach-at91/board-kafa.c
+1
-1
arch/arm/mach-at91/board-kb9202.c
arch/arm/mach-at91/board-kb9202.c
+1
-1
arch/arm/mach-at91/board-picotux200.c
arch/arm/mach-at91/board-picotux200.c
+1
-1
arch/arm/mach-at91/board-sam9260ek.c
arch/arm/mach-at91/board-sam9260ek.c
+1
-1
arch/arm/mach-at91/board-sam9261ek.c
arch/arm/mach-at91/board-sam9261ek.c
+9
-9
arch/arm/mach-at91/board-sam9263ek.c
arch/arm/mach-at91/board-sam9263ek.c
+1
-1
arch/arm/mach-at91/board-sam9rlek.c
arch/arm/mach-at91/board-sam9rlek.c
+1
-1
arch/arm/mach-at91/clock.c
arch/arm/mach-at91/clock.c
+6
-3
arch/arm/mach-pxa/pxa27x.c
arch/arm/mach-pxa/pxa27x.c
+1
-1
arch/arm/mach-pxa/pxa320.c
arch/arm/mach-pxa/pxa320.c
+5
-2
arch/arm/mach-pxa/ssp.c
arch/arm/mach-pxa/ssp.c
+1
-0
drivers/serial/pxa.c
drivers/serial/pxa.c
+2
-2
include/asm-arm/arch-at91/board.h
include/asm-arm/arch-at91/board.h
+2
-1
include/asm-arm/arch-pxa/irqs.h
include/asm-arm/arch-pxa/irqs.h
+18
-2
include/asm-arm/arch-pxa/mfp-pxa300.h
include/asm-arm/arch-pxa/mfp-pxa300.h
+1
-1
include/asm-arm/arch-pxa/mfp-pxa320.h
include/asm-arm/arch-pxa/mfp-pxa320.h
+1
-1
include/asm-arm/arch-pxa/mfp.h
include/asm-arm/arch-pxa/mfp.h
+13
-5
include/asm-arm/arch-pxa/pxa-regs.h
include/asm-arm/arch-pxa/pxa-regs.h
+4
-1
No files found.
MAINTAINERS
View file @
e252d4c3
...
...
@@ -440,7 +440,7 @@ S: Maintained
ARM/ATMEL AT91RM9200 ARM ARCHITECTURE
P: Andrew Victor
M:
andrew@sanpeople.com
M:
linux@maxim.org.za
L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
W: http://maxim.org.za/at91_26.html
S: Maintained
...
...
arch/arm/mach-at91/at91rm9200_devices.c
View file @
e252d4c3
...
...
@@ -14,6 +14,7 @@
#include <asm/mach/map.h>
#include <linux/platform_device.h>
#include <linux/i2c-gpio.h>
#include <asm/arch/board.h>
#include <asm/arch/gpio.h>
...
...
@@ -435,7 +436,40 @@ void __init at91_add_device_nand(struct at91_nand_data *data) {}
* TWI (i2c)
* -------------------------------------------------------------------- */
#if defined(CONFIG_I2C_AT91) || defined(CONFIG_I2C_AT91_MODULE)
/*
* Prefer the GPIO code since the TWI controller isn't robust
* (gets overruns and underruns under load) and can only issue
* repeated STARTs in one scenario (the driver doesn't yet handle them).
*/
#if defined(CONFIG_I2C_GPIO) || defined(CONFIG_I2C_GPIO_MODULE)
static
struct
i2c_gpio_platform_data
pdata
=
{
.
sda_pin
=
AT91_PIN_PA25
,
.
sda_is_open_drain
=
1
,
.
scl_pin
=
AT91_PIN_PA26
,
.
scl_is_open_drain
=
1
,
.
udelay
=
2
,
/* ~100 kHz */
};
static
struct
platform_device
at91rm9200_twi_device
=
{
.
name
=
"i2c-gpio"
,
.
id
=
-
1
,
.
dev
.
platform_data
=
&
pdata
,
};
void
__init
at91_add_device_i2c
(
struct
i2c_board_info
*
devices
,
int
nr_devices
)
{
at91_set_GPIO_periph
(
AT91_PIN_PA25
,
1
);
/* TWD (SDA) */
at91_set_multi_drive
(
AT91_PIN_PA25
,
1
);
at91_set_GPIO_periph
(
AT91_PIN_PA26
,
1
);
/* TWCK (SCL) */
at91_set_multi_drive
(
AT91_PIN_PA26
,
1
);
i2c_register_board_info
(
0
,
devices
,
nr_devices
);
platform_device_register
(
&
at91rm9200_twi_device
);
}
#elif defined(CONFIG_I2C_AT91) || defined(CONFIG_I2C_AT91_MODULE)
static
struct
resource
twi_resources
[]
=
{
[
0
]
=
{
...
...
@@ -457,7 +491,7 @@ static struct platform_device at91rm9200_twi_device = {
.
num_resources
=
ARRAY_SIZE
(
twi_resources
),
};
void
__init
at91_add_device_i2c
(
void
)
void
__init
at91_add_device_i2c
(
struct
i2c_board_info
*
devices
,
int
nr_devices
)
{
/* pins used for TWI interface */
at91_set_A_periph
(
AT91_PIN_PA25
,
0
);
/* TWD */
...
...
@@ -466,10 +500,11 @@ void __init at91_add_device_i2c(void)
at91_set_A_periph
(
AT91_PIN_PA26
,
0
);
/* TWCK */
at91_set_multi_drive
(
AT91_PIN_PA26
,
1
);
i2c_register_board_info
(
0
,
devices
,
nr_devices
);
platform_device_register
(
&
at91rm9200_twi_device
);
}
#else
void
__init
at91_add_device_i2c
(
void
)
{}
void
__init
at91_add_device_i2c
(
struct
i2c_board_info
*
devices
,
int
nr_devices
)
{}
#endif
...
...
arch/arm/mach-at91/at91sam9260_devices.c
View file @
e252d4c3
...
...
@@ -13,6 +13,7 @@
#include <asm/mach/map.h>
#include <linux/platform_device.h>
#include <linux/i2c-gpio.h>
#include <asm/arch/board.h>
#include <asm/arch/gpio.h>
...
...
@@ -352,7 +353,41 @@ void __init at91_add_device_nand(struct at91_nand_data *data) {}
* TWI (i2c)
* -------------------------------------------------------------------- */
#if defined(CONFIG_I2C_AT91) || defined(CONFIG_I2C_AT91_MODULE)
/*
* Prefer the GPIO code since the TWI controller isn't robust
* (gets overruns and underruns under load) and can only issue
* repeated STARTs in one scenario (the driver doesn't yet handle them).
*/
#if defined(CONFIG_I2C_GPIO) || defined(CONFIG_I2C_GPIO_MODULE)
static
struct
i2c_gpio_platform_data
pdata
=
{
.
sda_pin
=
AT91_PIN_PA23
,
.
sda_is_open_drain
=
1
,
.
scl_pin
=
AT91_PIN_PA24
,
.
scl_is_open_drain
=
1
,
.
udelay
=
2
,
/* ~100 kHz */
};
static
struct
platform_device
at91sam9260_twi_device
=
{
.
name
=
"i2c-gpio"
,
.
id
=
-
1
,
.
dev
.
platform_data
=
&
pdata
,
};
void
__init
at91_add_device_i2c
(
struct
i2c_board_info
*
devices
,
int
nr_devices
)
{
at91_set_GPIO_periph
(
AT91_PIN_PA23
,
1
);
/* TWD (SDA) */
at91_set_multi_drive
(
AT91_PIN_PA23
,
1
);
at91_set_GPIO_periph
(
AT91_PIN_PA24
,
1
);
/* TWCK (SCL) */
at91_set_multi_drive
(
AT91_PIN_PA24
,
1
);
i2c_register_board_info
(
0
,
devices
,
nr_devices
);
platform_device_register
(
&
at91sam9260_twi_device
);
}
#elif defined(CONFIG_I2C_AT91) || defined(CONFIG_I2C_AT91_MODULE)
static
struct
resource
twi_resources
[]
=
{
[
0
]
=
{
...
...
@@ -374,7 +409,7 @@ static struct platform_device at91sam9260_twi_device = {
.
num_resources
=
ARRAY_SIZE
(
twi_resources
),
};
void
__init
at91_add_device_i2c
(
void
)
void
__init
at91_add_device_i2c
(
struct
i2c_board_info
*
devices
,
int
nr_devices
)
{
/* pins used for TWI interface */
at91_set_A_periph
(
AT91_PIN_PA23
,
0
);
/* TWD */
...
...
@@ -383,10 +418,11 @@ void __init at91_add_device_i2c(void)
at91_set_A_periph
(
AT91_PIN_PA24
,
0
);
/* TWCK */
at91_set_multi_drive
(
AT91_PIN_PA24
,
1
);
i2c_register_board_info
(
0
,
devices
,
nr_devices
);
platform_device_register
(
&
at91sam9260_twi_device
);
}
#else
void
__init
at91_add_device_i2c
(
void
)
{}
void
__init
at91_add_device_i2c
(
struct
i2c_board_info
*
devices
,
int
nr_devices
)
{}
#endif
...
...
arch/arm/mach-at91/at91sam9261_devices.c
View file @
e252d4c3
...
...
@@ -14,7 +14,9 @@
#include <asm/mach/map.h>
#include <linux/platform_device.h>
#include <linux/i2c-gpio.h>
#include <linux/fb.h>
#include <video/atmel_lcdc.h>
#include <asm/arch/board.h>
...
...
@@ -275,7 +277,40 @@ void __init at91_add_device_nand(struct at91_nand_data *data) {}
* TWI (i2c)
* -------------------------------------------------------------------- */
#if defined(CONFIG_I2C_AT91) || defined(CONFIG_I2C_AT91_MODULE)
/*
* Prefer the GPIO code since the TWI controller isn't robust
* (gets overruns and underruns under load) and can only issue
* repeated STARTs in one scenario (the driver doesn't yet handle them).
*/
#if defined(CONFIG_I2C_GPIO) || defined(CONFIG_I2C_GPIO_MODULE)
static
struct
i2c_gpio_platform_data
pdata
=
{
.
sda_pin
=
AT91_PIN_PA7
,
.
sda_is_open_drain
=
1
,
.
scl_pin
=
AT91_PIN_PA8
,
.
scl_is_open_drain
=
1
,
.
udelay
=
2
,
/* ~100 kHz */
};
static
struct
platform_device
at91sam9261_twi_device
=
{
.
name
=
"i2c-gpio"
,
.
id
=
-
1
,
.
dev
.
platform_data
=
&
pdata
,
};
void
__init
at91_add_device_i2c
(
struct
i2c_board_info
*
devices
,
int
nr_devices
)
{
at91_set_GPIO_periph
(
AT91_PIN_PA7
,
1
);
/* TWD (SDA) */
at91_set_multi_drive
(
AT91_PIN_PA7
,
1
);
at91_set_GPIO_periph
(
AT91_PIN_PA8
,
1
);
/* TWCK (SCL) */
at91_set_multi_drive
(
AT91_PIN_PA8
,
1
);
i2c_register_board_info
(
0
,
devices
,
nr_devices
);
platform_device_register
(
&
at91sam9261_twi_device
);
}
#elif defined(CONFIG_I2C_AT91) || defined(CONFIG_I2C_AT91_MODULE)
static
struct
resource
twi_resources
[]
=
{
[
0
]
=
{
...
...
@@ -297,7 +332,7 @@ static struct platform_device at91sam9261_twi_device = {
.
num_resources
=
ARRAY_SIZE
(
twi_resources
),
};
void
__init
at91_add_device_i2c
(
void
)
void
__init
at91_add_device_i2c
(
struct
i2c_board_info
*
devices
,
int
nr_devices
)
{
/* pins used for TWI interface */
at91_set_A_periph
(
AT91_PIN_PA7
,
0
);
/* TWD */
...
...
@@ -306,10 +341,11 @@ void __init at91_add_device_i2c(void)
at91_set_A_periph
(
AT91_PIN_PA8
,
0
);
/* TWCK */
at91_set_multi_drive
(
AT91_PIN_PA8
,
1
);
i2c_register_board_info
(
0
,
devices
,
nr_devices
);
platform_device_register
(
&
at91sam9261_twi_device
);
}
#else
void
__init
at91_add_device_i2c
(
void
)
{}
void
__init
at91_add_device_i2c
(
struct
i2c_board_info
*
devices
,
int
nr_devices
)
{}
#endif
...
...
arch/arm/mach-at91/at91sam9263_devices.c
View file @
e252d4c3
...
...
@@ -13,7 +13,9 @@
#include <asm/mach/map.h>
#include <linux/platform_device.h>
#include <linux/i2c-gpio.h>
#include <linux/fb.h>
#include <video/atmel_lcdc.h>
#include <asm/arch/board.h>
...
...
@@ -421,7 +423,40 @@ void __init at91_add_device_nand(struct at91_nand_data *data) {}
* TWI (i2c)
* -------------------------------------------------------------------- */
#if defined(CONFIG_I2C_AT91) || defined(CONFIG_I2C_AT91_MODULE)
/*
* Prefer the GPIO code since the TWI controller isn't robust
* (gets overruns and underruns under load) and can only issue
* repeated STARTs in one scenario (the driver doesn't yet handle them).
*/
#if defined(CONFIG_I2C_GPIO) || defined(CONFIG_I2C_GPIO_MODULE)
static
struct
i2c_gpio_platform_data
pdata
=
{
.
sda_pin
=
AT91_PIN_PB4
,
.
sda_is_open_drain
=
1
,
.
scl_pin
=
AT91_PIN_PB5
,
.
scl_is_open_drain
=
1
,
.
udelay
=
2
,
/* ~100 kHz */
};
static
struct
platform_device
at91sam9263_twi_device
=
{
.
name
=
"i2c-gpio"
,
.
id
=
-
1
,
.
dev
.
platform_data
=
&
pdata
,
};
void
__init
at91_add_device_i2c
(
struct
i2c_board_info
*
devices
,
int
nr_devices
)
{
at91_set_GPIO_periph
(
AT91_PIN_PB4
,
1
);
/* TWD (SDA) */
at91_set_multi_drive
(
AT91_PIN_PB4
,
1
);
at91_set_GPIO_periph
(
AT91_PIN_PB5
,
1
);
/* TWCK (SCL) */
at91_set_multi_drive
(
AT91_PIN_PB5
,
1
);
i2c_register_board_info
(
0
,
devices
,
nr_devices
);
platform_device_register
(
&
at91sam9263_twi_device
);
}
#elif defined(CONFIG_I2C_AT91) || defined(CONFIG_I2C_AT91_MODULE)
static
struct
resource
twi_resources
[]
=
{
[
0
]
=
{
...
...
@@ -443,7 +478,7 @@ static struct platform_device at91sam9263_twi_device = {
.
num_resources
=
ARRAY_SIZE
(
twi_resources
),
};
void
__init
at91_add_device_i2c
(
void
)
void
__init
at91_add_device_i2c
(
struct
i2c_board_info
*
devices
,
int
nr_devices
)
{
/* pins used for TWI interface */
at91_set_A_periph
(
AT91_PIN_PB4
,
0
);
/* TWD */
...
...
@@ -452,10 +487,11 @@ void __init at91_add_device_i2c(void)
at91_set_A_periph
(
AT91_PIN_PB5
,
0
);
/* TWCK */
at91_set_multi_drive
(
AT91_PIN_PB5
,
1
);
i2c_register_board_info
(
0
,
devices
,
nr_devices
);
platform_device_register
(
&
at91sam9263_twi_device
);
}
#else
void
__init
at91_add_device_i2c
(
void
)
{}
void
__init
at91_add_device_i2c
(
struct
i2c_board_info
*
devices
,
int
nr_devices
)
{}
#endif
...
...
arch/arm/mach-at91/at91sam9rl_devices.c
View file @
e252d4c3
...
...
@@ -10,8 +10,9 @@
#include <asm/mach/map.h>
#include <linux/platform_device.h>
#include <linux/
fb
.h>
#include <linux/
i2c-gpio
.h>
#include <linux/fb.h>
#include <video/atmel_lcdc.h>
#include <asm/arch/board.h>
...
...
@@ -169,7 +170,40 @@ void __init at91_add_device_nand(struct at91_nand_data *data) {}
* TWI (i2c)
* -------------------------------------------------------------------- */
#if defined(CONFIG_I2C_AT91) || defined(CONFIG_I2C_AT91_MODULE)
/*
* Prefer the GPIO code since the TWI controller isn't robust
* (gets overruns and underruns under load) and can only issue
* repeated STARTs in one scenario (the driver doesn't yet handle them).
*/
#if defined(CONFIG_I2C_GPIO) || defined(CONFIG_I2C_GPIO_MODULE)
static
struct
i2c_gpio_platform_data
pdata
=
{
.
sda_pin
=
AT91_PIN_PA23
,
.
sda_is_open_drain
=
1
,
.
scl_pin
=
AT91_PIN_PA24
,
.
scl_is_open_drain
=
1
,
.
udelay
=
2
,
/* ~100 kHz */
};
static
struct
platform_device
at91sam9rl_twi_device
=
{
.
name
=
"i2c-gpio"
,
.
id
=
-
1
,
.
dev
.
platform_data
=
&
pdata
,
};
void
__init
at91_add_device_i2c
(
struct
i2c_board_info
*
devices
,
int
nr_devices
)
{
at91_set_GPIO_periph
(
AT91_PIN_PA23
,
1
);
/* TWD (SDA) */
at91_set_multi_drive
(
AT91_PIN_PA23
,
1
);
at91_set_GPIO_periph
(
AT91_PIN_PA24
,
1
);
/* TWCK (SCL) */
at91_set_multi_drive
(
AT91_PIN_PA24
,
1
);
i2c_register_board_info
(
0
,
devices
,
nr_devices
);
platform_device_register
(
&
at91sam9rl_twi_device
);
}
#elif defined(CONFIG_I2C_AT91) || defined(CONFIG_I2C_AT91_MODULE)
static
struct
resource
twi_resources
[]
=
{
[
0
]
=
{
...
...
@@ -191,7 +225,7 @@ static struct platform_device at91sam9rl_twi_device = {
.
num_resources
=
ARRAY_SIZE
(
twi_resources
),
};
void
__init
at91_add_device_i2c
(
void
)
void
__init
at91_add_device_i2c
(
struct
i2c_board_info
*
devices
,
int
nr_devices
)
{
/* pins used for TWI interface */
at91_set_A_periph
(
AT91_PIN_PA23
,
0
);
/* TWD */
...
...
@@ -200,10 +234,11 @@ void __init at91_add_device_i2c(void)
at91_set_A_periph
(
AT91_PIN_PA24
,
0
);
/* TWCK */
at91_set_multi_drive
(
AT91_PIN_PA24
,
1
);
i2c_register_board_info
(
0
,
devices
,
nr_devices
);
platform_device_register
(
&
at91sam9rl_twi_device
);
}
#else
void
__init
at91_add_device_i2c
(
void
)
{}
void
__init
at91_add_device_i2c
(
struct
i2c_board_info
*
devices
,
int
nr_devices
)
{}
#endif
...
...
arch/arm/mach-at91/board-carmeva.c
View file @
e252d4c3
...
...
@@ -128,7 +128,7 @@ static void __init carmeva_board_init(void)
/* USB Device */
at91_add_device_udc
(
&
carmeva_udc_data
);
/* I2C */
at91_add_device_i2c
();
at91_add_device_i2c
(
NULL
,
0
);
/* SPI */
at91_add_device_spi
(
carmeva_spi_devices
,
ARRAY_SIZE
(
carmeva_spi_devices
));
/* Compact Flash */
...
...
arch/arm/mach-at91/board-csb337.c
View file @
e252d4c3
...
...
@@ -23,7 +23,6 @@
#include <linux/mm.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/i2c.h>
#include <linux/spi/spi.h>
#include <linux/mtd/physmap.h>
...
...
@@ -85,12 +84,12 @@ static struct at91_udc_data __initdata csb337_udc_data = {
};
static
struct
i2c_board_info
__initdata
csb337_i2c_devices
[]
=
{
{
I2C_BOARD_INFO
(
"rtc-ds1307"
,
0x68
),
.
type
=
"ds1307"
,
{
I2C_BOARD_INFO
(
"rtc-ds1307"
,
0x68
),
.
type
=
"ds1307"
,
},
};
static
struct
at91_cf_data
__initdata
csb337_cf_data
=
{
/*
* connector P4 on the CSB 337 mates to
...
...
@@ -168,9 +167,7 @@ static void __init csb337_board_init(void)
/* USB Device */
at91_add_device_udc
(
&
csb337_udc_data
);
/* I2C */
at91_add_device_i2c
();
i2c_register_board_info
(
0
,
csb337_i2c_devices
,
ARRAY_SIZE
(
csb337_i2c_devices
));
at91_add_device_i2c
(
csb337_i2c_devices
,
ARRAY_SIZE
(
csb337_i2c_devices
));
/* Compact Flash */
at91_set_gpio_input
(
AT91_PIN_PB22
,
1
);
/* IOIS16 */
at91_add_device_cf
(
&
csb337_cf_data
);
...
...
arch/arm/mach-at91/board-csb637.c
View file @
e252d4c3
...
...
@@ -129,7 +129,7 @@ static void __init csb637_board_init(void)
/* USB Device */
at91_add_device_udc
(
&
csb637_udc_data
);
/* I2C */
at91_add_device_i2c
();
at91_add_device_i2c
(
NULL
,
0
);
/* SPI */
at91_add_device_spi
(
NULL
,
0
);
/* NOR flash */
...
...
arch/arm/mach-at91/board-dk.c
View file @
e252d4c3
...
...
@@ -124,6 +124,19 @@ static struct spi_board_info dk_spi_devices[] = {
#endif
};
static
struct
i2c_board_info
__initdata
dk_i2c_devices
[]
=
{
{
I2C_BOARD_INFO
(
"ics1523"
,
0x26
),
},
{
I2C_BOARD_INFO
(
"x9429"
,
0x28
),
},
{
I2C_BOARD_INFO
(
"at24c"
,
0x50
),
.
type
=
"24c1024"
,
}
};
static
struct
mtd_partition
__initdata
dk_nand_partition
[]
=
{
{
.
name
=
"NAND Partition 1"
,
...
...
@@ -185,7 +198,7 @@ static void __init dk_board_init(void)
/* Compact Flash */
at91_add_device_cf
(
&
dk_cf_data
);
/* I2C */
at91_add_device_i2c
();
at91_add_device_i2c
(
dk_i2c_devices
,
ARRAY_SIZE
(
dk_i2c_devices
)
);
/* SPI */
at91_add_device_spi
(
dk_spi_devices
,
ARRAY_SIZE
(
dk_spi_devices
));
#ifdef CONFIG_MTD_AT91_DATAFLASH_CARD
...
...
arch/arm/mach-at91/board-eb9200.c
View file @
e252d4c3
...
...
@@ -91,6 +91,14 @@ static struct at91_mmc_data __initdata eb9200_mmc_data = {
.
wire4
=
1
,
};
static
struct
i2c_board_info
__initdata
eb9200_i2c_devices
[]
=
{
{
I2C_BOARD_INFO
(
"at24c"
,
0x50
),
.
type
=
"24c512"
,
},
};
static
void
__init
eb9200_board_init
(
void
)
{
/* Serial */
...
...
@@ -102,7 +110,7 @@ static void __init eb9200_board_init(void)
/* USB Device */
at91_add_device_udc
(
&
eb9200_udc_data
);
/* I2C */
at91_add_device_i2c
();
at91_add_device_i2c
(
eb9200_i2c_devices
,
ARRAY_SIZE
(
eb9200_i2c_devices
)
);
/* Compact Flash */
at91_add_device_cf
(
&
eb9200_cf_data
);
/* SPI */
...
...
arch/arm/mach-at91/board-ek.c
View file @
e252d4c3
...
...
@@ -145,7 +145,7 @@ static void __init ek_board_init(void)
at91_add_device_udc
(
&
ek_udc_data
);
at91_set_multi_drive
(
ek_udc_data
.
pullup_pin
,
1
);
/* pullup_pin is connected to reset */
/* I2C */
at91_add_device_i2c
();
at91_add_device_i2c
(
ek_i2c_devices
,
ARRAY_SIZE
(
ek_i2c_devices
)
);
/* SPI */
at91_add_device_spi
(
ek_spi_devices
,
ARRAY_SIZE
(
ek_spi_devices
));
#ifdef CONFIG_MTD_AT91_DATAFLASH_CARD
...
...
arch/arm/mach-at91/board-kafa.c
View file @
e252d4c3
...
...
@@ -92,7 +92,7 @@ static void __init kafa_board_init(void)
/* USB Device */
at91_add_device_udc
(
&
kafa_udc_data
);
/* I2C */
at91_add_device_i2c
();
at91_add_device_i2c
(
NULL
,
0
);
/* SPI */
at91_add_device_spi
(
NULL
,
0
);
}
...
...
arch/arm/mach-at91/board-kb9202.c
View file @
e252d4c3
...
...
@@ -124,7 +124,7 @@ static void __init kb9202_board_init(void)
/* MMC */
at91_add_device_mmc
(
0
,
&
kb9202_mmc_data
);
/* I2C */
at91_add_device_i2c
();
at91_add_device_i2c
(
NULL
,
0
);
/* SPI */
at91_add_device_spi
(
NULL
,
0
);
/* NAND */
...
...
arch/arm/mach-at91/board-picotux200.c
View file @
e252d4c3
...
...
@@ -139,7 +139,7 @@ static void __init picotux200_board_init(void)
// at91_add_device_udc(&picotux200_udc_data);
// at91_set_multi_drive(picotux200_udc_data.pullup_pin, 1); /* pullup_pin is connected to reset */
/* I2C */
at91_add_device_i2c
();
at91_add_device_i2c
(
NULL
,
0
);
/* SPI */
// at91_add_device_spi(picotux200_spi_devices, ARRAY_SIZE(picotux200_spi_devices));
#ifdef CONFIG_MTD_AT91_DATAFLASH_CARD
...
...
arch/arm/mach-at91/board-sam9260ek.c
View file @
e252d4c3
...
...
@@ -189,7 +189,7 @@ static void __init ek_board_init(void)
/* MMC */
at91_add_device_mmc
(
0
,
&
ek_mmc_data
);
/* I2C */
at91_add_device_i2c
();
at91_add_device_i2c
(
NULL
,
0
);
}
MACHINE_START
(
AT91SAM9260EK
,
"Atmel AT91SAM9260-EK"
)
...
...
arch/arm/mach-at91/board-sam9261ek.c
View file @
e252d4c3
...
...
@@ -382,14 +382,14 @@ static struct platform_device ek_button_device = {
static
void
__init
ek_add_device_buttons
(
void
)
{
at91_set_gpio_input
(
AT91_PIN_P
B
27
,
0
);
/* btn0 */
at91_set_deglitch
(
AT91_PIN_P
B
27
,
1
);
at91_set_gpio_input
(
AT91_PIN_P
B
26
,
0
);
/* btn1 */
at91_set_deglitch
(
AT91_PIN_P
B
26
,
1
);
at91_set_gpio_input
(
AT91_PIN_P
B
25
,
0
);
/* btn2 */
at91_set_deglitch
(
AT91_PIN_P
B
25
,
1
);
at91_set_gpio_input
(
AT91_PIN_P
B
24
,
0
);
/* btn3 */
at91_set_deglitch
(
AT91_PIN_P
B
24
,
1
);
at91_set_gpio_input
(
AT91_PIN_P
A
27
,
0
);
/* btn0 */
at91_set_deglitch
(
AT91_PIN_P
A
27
,
1
);
at91_set_gpio_input
(
AT91_PIN_P
A
26
,
0
);
/* btn1 */
at91_set_deglitch
(
AT91_PIN_P
A
26
,
1
);
at91_set_gpio_input
(
AT91_PIN_P
A
25
,
0
);
/* btn2 */
at91_set_deglitch
(
AT91_PIN_P
A
25
,
1
);
at91_set_gpio_input
(
AT91_PIN_P
A
24
,
0
);
/* btn3 */
at91_set_deglitch
(
AT91_PIN_P
A
24
,
1
);
platform_device_register
(
&
ek_button_device
);
}
...
...
@@ -406,7 +406,7 @@ static void __init ek_board_init(void)
/* USB Device */
at91_add_device_udc
(
&
ek_udc_data
);
/* I2C */
at91_add_device_i2c
();
at91_add_device_i2c
(
NULL
,
0
);
/* NAND */
at91_add_device_nand
(
&
ek_nand_data
);
/* DM9000 ethernet */
...
...
arch/arm/mach-at91/board-sam9263ek.c
View file @
e252d4c3
...
...
@@ -291,7 +291,7 @@ static void __init ek_board_init(void)
/* NAND */
at91_add_device_nand
(
&
ek_nand_data
);
/* I2C */
at91_add_device_i2c
();
at91_add_device_i2c
(
NULL
,
0
);
/* LCD Controller */
at91_add_device_lcdc
(
&
ek_lcdc_data
);
/* AC97 */
...
...
arch/arm/mach-at91/board-sam9rlek.c
View file @
e252d4c3
...
...
@@ -181,7 +181,7 @@ static void __init ek_board_init(void)
/* Serial */
at91_add_device_serial
();
/* I2C */
at91_add_device_i2c
();
at91_add_device_i2c
(
NULL
,
0
);
/* NAND */
at91_add_device_nand
(
&
ek_nand_data
);
/* SPI */
...
...
arch/arm/mach-at91/clock.c
View file @
e252d4c3
...
...
@@ -351,7 +351,7 @@ static void init_programmable_clock(struct clk *clk)
pckr
=
at91_sys_read
(
AT91_PMC_PCKR
(
clk
->
id
));
parent
=
at91_css_to_clk
(
pckr
&
AT91_PMC_CSS
);
clk
->
parent
=
parent
;
clk
->
rate_hz
=
parent
->
rate_hz
/
(
1
<<
((
pckr
>>
2
)
&
3
));
clk
->
rate_hz
=
parent
->
rate_hz
/
(
1
<<
((
pckr
&
AT91_PMC_PRES
)
>>
2
));
}
#endif
/* CONFIG_AT91_PROGRAMMABLE_CLOCKS */
...
...
@@ -587,8 +587,11 @@ int __init at91_clock_init(unsigned long main_clock)
mckr
=
at91_sys_read
(
AT91_PMC_MCKR
);
mck
.
parent
=
at91_css_to_clk
(
mckr
&
AT91_PMC_CSS
);
freq
=
mck
.
parent
->
rate_hz
;
freq
/=
(
1
<<
((
mckr
>>
2
)
&
3
));
/* prescale */
mck
.
rate_hz
=
freq
/
(
1
+
((
mckr
>>
8
)
&
3
));
/* mdiv */
freq
/=
(
1
<<
((
mckr
&
AT91_PMC_PRES
)
>>
2
));
/* prescale */
if
(
cpu_is_at91rm9200
())
mck
.
rate_hz
=
freq
/
(
1
+
((
mckr
&
AT91_PMC_MDIV
)
>>
8
));
/* mdiv */
else
mck
.
rate_hz
=
freq
/
(
1
<<
((
mckr
&
AT91_PMC_MDIV
)
>>
8
));
/* mdiv */
/* Register the PMC's standard clocks */
for
(
i
=
0
;
i
<
ARRAY_SIZE
(
standard_pmc_clocks
);
i
++
)
...
...
arch/arm/mach-pxa/pxa27x.c
View file @
e252d4c3
...
...
@@ -146,7 +146,7 @@ static struct clk pxa27x_clks[] = {
INIT_CKEN
(
"MMCCLK"
,
MMC
,
19500000
,
0
,
&
pxa_device_mci
.
dev
),
INIT_CKEN
(
"FICPCLK"
,
FICP
,
48000000
,
0
,
&
pxa_device_ficp
.
dev
),
INIT_CKEN
(
"USBCLK"
,
USB
,
48000000
,
0
,
&
pxa27x_device_ohci
.
dev
),
INIT_CKEN
(
"USBCLK"
,
USB
HOST
,
48000000
,
0
,
&
pxa27x_device_ohci
.
dev
),
INIT_CKEN
(
"I2CCLK"
,
PWRI2C
,
13000000
,
0
,
&
pxa27x_device_i2c_power
.
dev
),
INIT_CKEN
(
"KBDCLK"
,
KEYPAD
,
32768
,
0
,
NULL
),
...
...
arch/arm/mach-pxa/pxa320.c
View file @
e252d4c3
...
...
@@ -23,8 +23,11 @@
static
struct
pxa3xx_mfp_addr_map
pxa320_mfp_addr_map
[]
__initdata
=
{
MFP_ADDR_X
(
GPIO0
,
GPIO4
,
0x0124
),
MFP_ADDR_X
(
GPIO5
,
GPIO26
,
0x028C
),
MFP_ADDR_X
(
GPIO27
,
GPIO62
,
0x0400
),
MFP_ADDR_X
(
GPIO5
,
GPIO9
,
0x028C
),
MFP_ADDR
(
GPIO10
,
0x0458
),
MFP_ADDR_X
(
GPIO11
,
GPIO26
,
0x02A0
),
MFP_ADDR_X
(
GPIO27
,
GPIO48
,
0x0400
),
MFP_ADDR_X
(
GPIO49
,
GPIO62
,
0x045C
),
MFP_ADDR_X
(
GPIO63
,
GPIO73
,
0x04B4
),
MFP_ADDR_X
(
GPIO74
,
GPIO98
,
0x04F0
),
MFP_ADDR_X
(
GPIO99
,
GPIO127
,
0x0600
),
...
...
arch/arm/mach-pxa/ssp.c
View file @
e252d4c3
...
...
@@ -309,6 +309,7 @@ void ssp_exit(struct ssp_dev *dev)
if
(
dev
->
port
>
PXA_SSP_PORTS
||
dev
->
port
==
0
)
{
printk
(
KERN_WARNING
"SSP: tried to close invalid port
\n
"
);
mutex_unlock
(
&
mutex
);
return
;
}
...
...
drivers/serial/pxa.c
View file @
e252d4c3
...
...
@@ -585,11 +585,11 @@ serial_pxa_type(struct uart_port *port)
return
up
->
name
;
}
#ifdef CONFIG_SERIAL_PXA_CONSOLE
static
struct
uart_pxa_port
*
serial_pxa_ports
[
4
];
static
struct
uart_driver
serial_pxa_reg
;
#ifdef CONFIG_SERIAL_PXA_CONSOLE
#define BOTH_EMPTY (UART_LSR_TEMT | UART_LSR_THRE)
/*
...
...
include/asm-arm/arch-at91/board.h
View file @
e252d4c3
...
...
@@ -33,6 +33,7 @@
#include <linux/mtd/partitions.h>
#include <linux/device.h>
#include <linux/i2c.h>
#include <linux/spi/spi.h>
/* USB Device */
...
...
@@ -94,7 +95,7 @@ struct at91_nand_data {
extern
void
__init
at91_add_device_nand
(
struct
at91_nand_data
*
data
);
/* I2C*/
extern
void
__init
at91_add_device_i2c
(
void
);
extern
void
__init
at91_add_device_i2c
(
struct
i2c_board_info
*
devices
,
int
nr_devices
);
/* SPI */
extern
void
__init
at91_add_device_spi
(
struct
spi_board_info
*
devices
,
int
nr_devices
);
...
...
include/asm-arm/arch-pxa/irqs.h
View file @
e252d4c3
...
...
@@ -13,7 +13,7 @@
#define PXA_IRQ(x) (x)
#if
def CONFIG_PXA27x
#if
defined(CONFIG_PXA27x) || defined(CONFIG_PXA3xx)
#define IRQ_SSP3 PXA_IRQ(0)
/* SSP3 service request */
#define IRQ_MSL PXA_IRQ(1)
/* MSL Interface interrupt */
#define IRQ_USBH2 PXA_IRQ(2)
/* USB Host interrupt 1 (OHCI) */
...
...
@@ -52,11 +52,27 @@
#define IRQ_RTC1Hz PXA_IRQ(30)
/* RTC HZ Clock Tick */
#define IRQ_RTCAlrm PXA_IRQ(31)
/* RTC Alarm */
#if
def CONFIG_PXA27x
#if
defined(CONFIG_PXA27x) || defined(CONFIG_PXA3xx)
#define IRQ_TPM PXA_IRQ(32)
/* TPM interrupt */
#define IRQ_CAMERA PXA_IRQ(33)
/* Camera Interface */
#endif
#ifdef CONFIG_PXA3xx
#define IRQ_SSP4 PXA_IRQ(13)
/* SSP4 service request */
#define IRQ_CIR PXA_IRQ(34)
/* Consumer IR */
#define IRQ_TSI PXA_IRQ(36)
/* Touch Screen Interface (PXA320) */
#define IRQ_USIM2 PXA_IRQ(38)
/* USIM2 Controller */
#define IRQ_GRPHICS PXA_IRQ(39)
/* Graphics Controller */
#define IRQ_MMC2 PXA_IRQ(41)
/* MMC2 Controller */
#define IRQ_1WIRE PXA_IRQ(44)
/* 1-Wire Controller */
#define IRQ_NAND PXA_IRQ(45)
/* NAND Controller */
#define IRQ_USB2 PXA_IRQ(46)
/* USB 2.0 Device Controller */
#define IRQ_WAKEUP0 PXA_IRQ(49)
/* EXT_WAKEUP0 */
#define IRQ_WAKEUP1 PXA_IRQ(50)
/* EXT_WAKEUP1 */
#define IRQ_DMEMC PXA_IRQ(51)
/* Dynamic Memory Controller */
#define IRQ_MMC3 PXA_IRQ(55)
/* MMC3 Controller (PXA310) */
#endif
#define PXA_GPIO_IRQ_BASE (64)
#define PXA_GPIO_IRQ_NUM (128)
...
...
include/asm-arm/arch-pxa/mfp-pxa300.h
View file @
e252d4c3
...
...
@@ -179,7 +179,7 @@
#define GPIO62_LCD_CS_N MFP_CFG_DRV(GPIO62, AF2, DS01X)
#define GPIO72_LCD_FCLK MFP_CFG_DRV(GPIO72, AF1, DS01X)
#define GPIO73_LCD_LCLK MFP_CFG_DRV(GPIO73, AF1, DS01X)
#define GPIO74_LCD_PCLK MFP_CFG_DRV(GPIO74, AF1, DS0
1
X)
#define GPIO74_LCD_PCLK MFP_CFG_DRV(GPIO74, AF1, DS0
2
X)
#define GPIO75_LCD_BIAS MFP_CFG_DRV(GPIO75, AF1, DS01X)
#define GPIO76_LCD_VSYNC MFP_CFG_DRV(GPIO76, AF2, DS01X)
...
...
include/asm-arm/arch-pxa/mfp-pxa320.h
View file @
e252d4c3
...
...
@@ -18,7 +18,7 @@
#include <asm/arch/mfp.h>
/* GPIO */
#define GPIO46_GPIO MFP_CFG(GPIO6, AF0)
#define GPIO46_GPIO MFP_CFG(GPIO
4
6, AF0)
#define GPIO49_GPIO MFP_CFG(GPIO49, AF0)
#define GPIO50_GPIO MFP_CFG(GPIO50, AF0)
#define GPIO51_GPIO MFP_CFG(GPIO51, AF0)
...
...
include/asm-arm/arch-pxa/mfp.h
View file @
e252d4c3
...
...
@@ -346,23 +346,31 @@ typedef uint32_t mfp_cfg_t;
#define MFP_CFG_PIN(mfp_cfg) (((mfp_cfg) >> 16) & 0xffff)
#define MFP_CFG_VAL(mfp_cfg) ((mfp_cfg) & 0xffff)
#define MFPR_DEFAULT (0x0000)
/*
* MFP register defaults to
* drive strength fast 3mA (010'b)
* edge detection logic disabled
* alternate function 0
*/
#define MFPR_DEFAULT (0x0840)
#define MFP_CFG(pin, af) \
((MFP_PIN_##pin << 16) | MFPR_DEFAULT | (MFP_##af))
#define MFP_CFG_DRV(pin, af, drv) \
((MFP_PIN_##pin << 16) |
MFPR_DEFAULT
|\
((MFP_PIN_##pin << 16) |
(MFPR_DEFAULT & ~MFPR_DRV_MASK)
|\
((MFP_##drv) << 10) | (MFP_##af))
#define MFP_CFG_LPM(pin, af, lpm) \
((MFP_PIN_##pin << 16) |
MFPR_DEFAULT | (MFP_##af
) |\
((MFP_PIN_##pin << 16) |
(MFPR_DEFAULT & ~MFPR_LPM_MASK
) |\
(((MFP_LPM_##lpm) & 0x3) << 7) |\
(((MFP_LPM_##lpm) & 0x4) << 12) |\
(((MFP_LPM_##lpm) & 0x8) << 10))
(((MFP_LPM_##lpm) & 0x8) << 10) |\
(MFP_##af))
#define MFP_CFG_X(pin, af, drv, lpm) \
((MFP_PIN_##pin << 16) | MFPR_DEFAULT |\
((MFP_PIN_##pin << 16) |\
(MFPR_DEFAULT & ~(MFPR_DRV_MASK | MFPR_LPM_MASK)) |\
((MFP_##drv) << 10) | (MFP_##af) |\
(((MFP_LPM_##lpm) & 0x3) << 7) |\
(((MFP_LPM_##lpm) & 0x4) << 12) |\
...
...
include/asm-arm/arch-pxa/pxa-regs.h
View file @
e252d4c3
...
...
@@ -110,7 +110,10 @@
#define DALGN __REG(0x400000a0)
/* DMA Alignment Register */
#define DINT __REG(0x400000f0)
/* DMA Interrupt Register */
#define DRCMR(n) __REG2(0x40000100, (n)<<2)
#define DRCMR(n) (*(((n) < 64) ? \
&__REG2(0x40000100, ((n) & 0x3f) << 2) : \
&__REG2(0x40001100, ((n) & 0x3f) << 2)))
#define DRCMR0 __REG(0x40000100)
/* Request to Channel Map Register for DREQ 0 */
#define DRCMR1 __REG(0x40000104)
/* Request to Channel Map Register for DREQ 1 */
#define DRCMR2 __REG(0x40000108)
/* Request to Channel Map Register for I2S receive Request */
...
...
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