Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
raspberrypi-kernel
提交
e252d4c3
R
raspberrypi-kernel
项目概览
openeuler
/
raspberrypi-kernel
通知
13
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
raspberrypi-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
e252d4c3
编写于
11月 29, 2007
作者:
R
Russell King
提交者:
Russell King
11月 29, 2007
浏览文件
操作
浏览文件
下载
差异文件
Merge branches 'at91-fixes' and 'pxa-fixes'
上级
98aa6864
e7032700
008f6d2a
变更
30
隐藏空白更改
内联
并排
Showing
30 changed file
with
294 addition
and
63 deletion
+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
未找到文件。
MAINTAINERS
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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 */
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录