Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
39bd8064
K
Kernel
项目概览
openeuler
/
Kernel
1 年多 前同步成功
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
39bd8064
编写于
7月 09, 2009
作者:
R
Russell King
提交者:
Russell King
7月 09, 2009
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'for-rmk' of
git://git.pengutronix.de/git/imx/linux-2.6
上级
db78450a
574ec547
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
454 addition
and
19 deletion
+454
-19
arch/arm/mach-mx3/Kconfig
arch/arm/mach-mx3/Kconfig
+8
-0
arch/arm/mach-mx3/Makefile
arch/arm/mach-mx3/Makefile
+1
-0
arch/arm/mach-mx3/armadillo5x0.c
arch/arm/mach-mx3/armadillo5x0.c
+63
-0
arch/arm/mach-mx3/devices.c
arch/arm/mach-mx3/devices.c
+0
-1
arch/arm/mach-mx3/pcm037.c
arch/arm/mach-mx3/pcm037.c
+165
-18
arch/arm/mach-mx3/pcm037.h
arch/arm/mach-mx3/pcm037.h
+11
-0
arch/arm/mach-mx3/pcm037_eet.c
arch/arm/mach-mx3/pcm037_eet.c
+204
-0
arch/arm/plat-mxc/include/mach/iomux-mx3.h
arch/arm/plat-mxc/include/mach/iomux-mx3.h
+2
-0
未找到文件。
arch/arm/mach-mx3/Kconfig
浏览文件 @
39bd8064
...
...
@@ -36,6 +36,14 @@ config MACH_PCM037
Include support for Phytec pcm037 platform. This includes
specific configurations for the board and its peripherals.
config MACH_PCM037_EET
bool "Support pcm037 EET board extensions"
depends on MACH_PCM037
help
Add support for PCM037 EET baseboard extensions. If you are using the
OLED display with EET, use "video=mx3fb:CMEL-OLED" kernel
command-line parameter.
config MACH_MX31LITE
bool "Support MX31 LITEKIT (LogicPD)"
select ARCH_MX31
...
...
arch/arm/mach-mx3/Makefile
浏览文件 @
39bd8064
...
...
@@ -11,6 +11,7 @@ obj-$(CONFIG_MACH_MX31ADS) += mx31ads.o
obj-$(CONFIG_MACH_MX31LILLY)
+=
mx31lilly.o mx31lilly-db.o
obj-$(CONFIG_MACH_MX31LITE)
+=
mx31lite.o
obj-$(CONFIG_MACH_PCM037)
+=
pcm037.o
obj-$(CONFIG_MACH_PCM037_EET)
+=
pcm037_eet.o
obj-$(CONFIG_MACH_MX31_3DS)
+=
mx31pdk.o
obj-$(CONFIG_MACH_MX31MOBOARD)
+=
mx31moboard.o mx31moboard-devboard.o
\
mx31moboard-marxbot.o
...
...
arch/arm/mach-mx3/armadillo5x0.c
浏览文件 @
39bd8064
...
...
@@ -31,6 +31,8 @@
#include <linux/smsc911x.h>
#include <linux/interrupt.h>
#include <linux/irq.h>
#include <linux/mtd/physmap.h>
#include <linux/io.h>
#include <mach/hardware.h>
#include <asm/mach-types.h>
...
...
@@ -46,8 +48,10 @@
#include <mach/mmc.h>
#include <mach/ipu.h>
#include <mach/mx3fb.h>
#include <mach/mxc_nand.h>
#include "devices.h"
#include "crm_regs.h"
static
int
armadillo5x0_pins
[]
=
{
/* UART1 */
...
...
@@ -93,7 +97,56 @@ static int armadillo5x0_pins[] = {
MX31_PIN_FPSHIFT__FPSHIFT
,
MX31_PIN_DRDY0__DRDY0
,
IOMUX_MODE
(
MX31_PIN_LCS1
,
IOMUX_CONFIG_GPIO
),
/*ADV7125_PSAVE*/
};
/*
* NAND Flash
*/
static
struct
mxc_nand_platform_data
armadillo5x0_nand_flash_pdata
=
{
.
width
=
1
,
.
hw_ecc
=
1
,
};
/*
* MTD NOR Flash
*/
static
struct
mtd_partition
armadillo5x0_nor_flash_partitions
[]
=
{
{
.
name
=
"nor.bootloader"
,
.
offset
=
0x00000000
,
.
size
=
4
*
32
*
1024
,
},
{
.
name
=
"nor.kernel"
,
.
offset
=
MTDPART_OFS_APPEND
,
.
size
=
16
*
128
*
1024
,
},
{
.
name
=
"nor.userland"
,
.
offset
=
MTDPART_OFS_APPEND
,
.
size
=
110
*
128
*
1024
,
},
{
.
name
=
"nor.config"
,
.
offset
=
MTDPART_OFS_APPEND
,
.
size
=
1
*
128
*
1024
,
},
};
static
struct
physmap_flash_data
armadillo5x0_nor_flash_pdata
=
{
.
width
=
2
,
.
parts
=
armadillo5x0_nor_flash_partitions
,
.
nr_parts
=
ARRAY_SIZE
(
armadillo5x0_nor_flash_partitions
),
};
static
struct
resource
armadillo5x0_nor_flash_resource
=
{
.
flags
=
IORESOURCE_MEM
,
.
start
=
CS0_BASE_ADDR
,
.
end
=
CS0_BASE_ADDR
+
SZ_64M
-
1
,
};
static
struct
platform_device
armadillo5x0_nor_flash
=
{
.
name
=
"physmap-flash"
,
.
id
=
-
1
,
.
num_resources
=
1
,
.
resource
=
&
armadillo5x0_nor_flash_resource
,
};
/*
...
...
@@ -272,6 +325,16 @@ static void __init armadillo5x0_init(void)
/* Register FB */
mxc_register_device
(
&
mx3_ipu
,
&
mx3_ipu_data
);
mxc_register_device
(
&
mx3_fb
,
&
mx3fb_pdata
);
/* Register NOR Flash */
mxc_register_device
(
&
armadillo5x0_nor_flash
,
&
armadillo5x0_nor_flash_pdata
);
/* Register NAND Flash */
mxc_register_device
(
&
mxc_nand_device
,
&
armadillo5x0_nand_flash_pdata
);
/* set NAND page size to 2k if not configured via boot mode pins */
__raw_writel
(
__raw_readl
(
MXC_CCM_RCSR
)
|
(
1
<<
30
),
MXC_CCM_RCSR
);
}
static
void
__init
armadillo5x0_timer_init
(
void
)
...
...
arch/arm/mach-mx3/devices.c
浏览文件 @
39bd8064
...
...
@@ -22,7 +22,6 @@
#include <linux/platform_device.h>
#include <linux/serial.h>
#include <linux/gpio.h>
#include <linux/dma-mapping.h>
#include <mach/hardware.h>
#include <mach/irqs.h>
#include <mach/common.h>
...
...
arch/arm/mach-mx3/pcm037.c
浏览文件 @
39bd8064
...
...
@@ -18,7 +18,7 @@
#include <linux/types.h>
#include <linux/init.h>
#include <linux/dma-mapping.h>
#include <linux/platform_device.h>
#include <linux/mtd/physmap.h>
#include <linux/mtd/plat-ram.h>
...
...
@@ -33,29 +33,67 @@
#include <linux/irq.h>
#include <linux/fsl_devices.h>
#include <mach/hardware.h>
#include <media/soc_camera.h>
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
#include <asm/mach/time.h>
#include <asm/mach/map.h>
#include <mach/board-pcm037.h>
#include <mach/common.h>
#include <mach/hardware.h>
#include <mach/i2c.h>
#include <mach/imx-uart.h>
#include <mach/iomux-mx3.h>
#include <mach/ipu.h>
#include <mach/board-pcm037.h>
#include <mach/mmc.h>
#include <mach/mx3_camera.h>
#include <mach/mx3fb.h>
#include <mach/mxc_nand.h>
#include <mach/mmc.h>
#ifdef CONFIG_I2C_IMX
#include <mach/i2c.h>
#endif
#include "devices.h"
#include "pcm037.h"
static
enum
pcm037_board_variant
pcm037_instance
=
PCM037_PCM970
;
static
int
__init
pcm037_variant_setup
(
char
*
str
)
{
if
(
!
strcmp
(
"eet"
,
str
))
pcm037_instance
=
PCM037_EET
;
else
if
(
strcmp
(
"pcm970"
,
str
))
pr_warning
(
"Unknown pcm037 baseboard variant %s
\n
"
,
str
);
return
1
;
}
/* Supported values: "pcm970" (default) and "eet" */
__setup
(
"pcm037_variant="
,
pcm037_variant_setup
);
enum
pcm037_board_variant
pcm037_variant
(
void
)
{
return
pcm037_instance
;
}
/* UART1 with RTS/CTS handshake signals */
static
unsigned
int
pcm037_uart1_handshake_pins
[]
=
{
MX31_PIN_CTS1__CTS1
,
MX31_PIN_RTS1__RTS1
,
MX31_PIN_TXD1__TXD1
,
MX31_PIN_RXD1__RXD1
,
};
/* UART1 without RTS/CTS handshake signals */
static
unsigned
int
pcm037_uart1_pins
[]
=
{
MX31_PIN_TXD1__TXD1
,
MX31_PIN_RXD1__RXD1
,
};
static
unsigned
int
pcm037_pins
[]
=
{
/* I2C */
MX31_PIN_CSPI2_MOSI__SCL
,
MX31_PIN_CSPI2_MISO__SDA
,
MX31_PIN_CSPI2_SS2__I2C3_SDA
,
MX31_PIN_CSPI2_SCLK__I2C3_SCL
,
/* SDHC1 */
MX31_PIN_SD1_DATA3__SD1_DATA3
,
MX31_PIN_SD1_DATA2__SD1_DATA2
,
...
...
@@ -73,11 +111,6 @@ static unsigned int pcm037_pins[] = {
MX31_PIN_CSPI1_SS0__SS0
,
MX31_PIN_CSPI1_SS1__SS1
,
MX31_PIN_CSPI1_SS2__SS2
,
/* UART1 */
MX31_PIN_CTS1__CTS1
,
MX31_PIN_RTS1__RTS1
,
MX31_PIN_TXD1__TXD1
,
MX31_PIN_RXD1__RXD1
,
/* UART2 */
MX31_PIN_TXD2__TXD2
,
MX31_PIN_RXD2__RXD2
,
...
...
@@ -120,6 +153,22 @@ static unsigned int pcm037_pins[] = {
MX31_PIN_D3_SPL__D3_SPL
,
MX31_PIN_D3_CLS__D3_CLS
,
MX31_PIN_LCS0__GPI03_23
,
/* CSI */
IOMUX_MODE
(
MX31_PIN_CSI_D5
,
IOMUX_CONFIG_GPIO
),
MX31_PIN_CSI_D6__CSI_D6
,
MX31_PIN_CSI_D7__CSI_D7
,
MX31_PIN_CSI_D8__CSI_D8
,
MX31_PIN_CSI_D9__CSI_D9
,
MX31_PIN_CSI_D10__CSI_D10
,
MX31_PIN_CSI_D11__CSI_D11
,
MX31_PIN_CSI_D12__CSI_D12
,
MX31_PIN_CSI_D13__CSI_D13
,
MX31_PIN_CSI_D14__CSI_D14
,
MX31_PIN_CSI_D15__CSI_D15
,
MX31_PIN_CSI_HSYNC__CSI_HSYNC
,
MX31_PIN_CSI_MCLK__CSI_MCLK
,
MX31_PIN_CSI_PIXCLK__CSI_PIXCLK
,
MX31_PIN_CSI_VSYNC__CSI_VSYNC
,
};
static
struct
physmap_flash_data
pcm037_flash_data
=
{
...
...
@@ -250,19 +299,43 @@ static struct mxc_nand_platform_data pcm037_nand_board_info = {
.
hw_ecc
=
1
,
};
#ifdef CONFIG_I2C_IMX
static
struct
imxi2c_platform_data
pcm037_i2c_1_data
=
{
.
bitrate
=
100000
,
};
static
struct
imxi2c_platform_data
pcm037_i2c_2_data
=
{
.
bitrate
=
20000
,
};
static
struct
at24_platform_data
board_eeprom
=
{
.
byte_len
=
4096
,
.
page_size
=
32
,
.
flags
=
AT24_FLAG_ADDR16
,
};
static
int
pcm037_camera_power
(
struct
device
*
dev
,
int
on
)
{
/* disable or enable the camera in X7 or X8 PCM970 connector */
gpio_set_value
(
IOMUX_TO_GPIO
(
MX31_PIN_CSI_D5
),
!
on
);
return
0
;
}
static
struct
i2c_board_info
pcm037_i2c_2_devices
[]
=
{
{
I2C_BOARD_INFO
(
"mt9t031"
,
0x5d
),
},
};
static
struct
soc_camera_link
iclink
=
{
.
bus_id
=
0
,
/* Must match with the camera ID */
.
power
=
pcm037_camera_power
,
.
board_info
=
&
pcm037_i2c_2_devices
[
0
],
.
i2c_adapter_id
=
2
,
.
module_name
=
"mt9t031"
,
};
static
struct
i2c_board_info
pcm037_i2c_devices
[]
=
{
{
{
I2C_BOARD_INFO
(
"at24"
,
0x52
),
/* E0=0, E1=1, E2=0 */
.
platform_data
=
&
board_eeprom
,
},
{
...
...
@@ -270,7 +343,14 @@ static struct i2c_board_info pcm037_i2c_devices[] = {
.
type
=
"pcf8563"
,
}
};
#endif
static
struct
platform_device
pcm037_camera
=
{
.
name
=
"soc-camera-pdrv"
,
.
id
=
0
,
.
dev
=
{
.
platform_data
=
&
iclink
,
},
};
/* Not connected by default */
#ifdef PCM970_SDHC_RW_SWITCH
...
...
@@ -334,9 +414,41 @@ static struct imxmmc_platform_data sdhc_pdata = {
.
exit
=
pcm970_sdhc1_exit
,
};
struct
mx3_camera_pdata
camera_pdata
=
{
.
dma_dev
=
&
mx3_ipu
.
dev
,
.
flags
=
MX3_CAMERA_DATAWIDTH_8
|
MX3_CAMERA_DATAWIDTH_10
,
.
mclk_10khz
=
2000
,
};
static
int
__init
pcm037_camera_alloc_dma
(
const
size_t
buf_size
)
{
dma_addr_t
dma_handle
;
void
*
buf
;
int
dma
;
if
(
buf_size
<
2
*
1024
*
1024
)
return
-
EINVAL
;
buf
=
dma_alloc_coherent
(
NULL
,
buf_size
,
&
dma_handle
,
GFP_KERNEL
);
if
(
!
buf
)
{
pr_err
(
"%s: cannot allocate camera buffer-memory
\n
"
,
__func__
);
return
-
ENOMEM
;
}
memset
(
buf
,
0
,
buf_size
);
dma
=
dma_declare_coherent_memory
(
&
mx3_camera
.
dev
,
dma_handle
,
dma_handle
,
buf_size
,
DMA_MEMORY_MAP
|
DMA_MEMORY_EXCLUSIVE
);
/* The way we call dma_declare_coherent_memory only a malloc can fail */
return
dma
&
DMA_MEMORY_MAP
?
0
:
-
ENOMEM
;
}
static
struct
platform_device
*
devices
[]
__initdata
=
{
&
pcm037_flash
,
&
pcm037_sram_device
,
&
pcm037_camera
,
};
static
struct
ipu_platform_data
mx3_ipu_data
=
{
...
...
@@ -377,6 +489,22 @@ static const struct fb_videomode fb_modedb[] = {
.
sync
=
FB_SYNC_VERT_HIGH_ACT
|
FB_SYNC_OE_ACT_HIGH
,
.
vmode
=
FB_VMODE_NONINTERLACED
,
.
flag
=
0
,
},
{
/* 240x320 @ 60 Hz */
.
name
=
"CMEL-OLED"
,
.
refresh
=
60
,
.
xres
=
240
,
.
yres
=
320
,
.
pixclock
=
185925
,
.
left_margin
=
9
,
.
right_margin
=
16
,
.
upper_margin
=
7
,
.
lower_margin
=
9
,
.
hsync_len
=
1
,
.
vsync_len
=
1
,
.
sync
=
FB_SYNC_OE_ACT_HIGH
|
FB_SYNC_CLK_INVERT
,
.
vmode
=
FB_VMODE_NONINTERLACED
,
.
flag
=
0
,
},
};
...
...
@@ -397,6 +525,14 @@ static void __init mxc_board_init(void)
mxc_iomux_setup_multiple_pins
(
pcm037_pins
,
ARRAY_SIZE
(
pcm037_pins
),
"pcm037"
);
if
(
pcm037_variant
()
==
PCM037_EET
)
mxc_iomux_setup_multiple_pins
(
pcm037_uart1_pins
,
ARRAY_SIZE
(
pcm037_uart1_pins
),
"pcm037_uart1"
);
else
mxc_iomux_setup_multiple_pins
(
pcm037_uart1_handshake_pins
,
ARRAY_SIZE
(
pcm037_uart1_handshake_pins
),
"pcm037_uart1"
);
platform_add_devices
(
devices
,
ARRAY_SIZE
(
devices
));
mxc_register_device
(
&
mxc_uart_device0
,
&
uart_pdata
);
...
...
@@ -415,18 +551,30 @@ static void __init mxc_board_init(void)
}
#ifdef CONFIG_I2C_IMX
/* I2C adapters and devices */
i2c_register_board_info
(
1
,
pcm037_i2c_devices
,
ARRAY_SIZE
(
pcm037_i2c_devices
));
mxc_register_device
(
&
mxc_i2c_device1
,
&
pcm037_i2c_1_data
);
#endif
mxc_register_device
(
&
mxc_i2c_device2
,
&
pcm037_i2c_2_data
);
mxc_register_device
(
&
mxc_nand_device
,
&
pcm037_nand_board_info
);
mxc_register_device
(
&
mxcsdhc_device0
,
&
sdhc_pdata
);
mxc_register_device
(
&
mx3_ipu
,
&
mx3_ipu_data
);
mxc_register_device
(
&
mx3_fb
,
&
mx3fb_pdata
);
if
(
!
gpio_usbotg_hs_activate
())
mxc_register_device
(
&
mxc_otg_udc_device
,
&
usb_pdata
);
/* CSI */
/* Camera power: default - off */
ret
=
gpio_request
(
IOMUX_TO_GPIO
(
MX31_PIN_CSI_D5
),
"mt9t031-power"
);
if
(
!
ret
)
gpio_direction_output
(
IOMUX_TO_GPIO
(
MX31_PIN_CSI_D5
),
1
);
else
iclink
.
power
=
NULL
;
if
(
!
pcm037_camera_alloc_dma
(
4
*
1024
*
1024
))
mxc_register_device
(
&
mx3_camera
,
&
camera_pdata
);
}
static
void
__init
pcm037_timer_init
(
void
)
...
...
@@ -448,4 +596,3 @@ MACHINE_START(PCM037, "Phytec Phycore pcm037")
.
init_machine
=
mxc_board_init
,
.
timer
=
&
pcm037_timer
,
MACHINE_END
arch/arm/mach-mx3/pcm037.h
0 → 100644
浏览文件 @
39bd8064
#ifndef __PCM037_H__
#define __PCM037_H__
enum
pcm037_board_variant
{
PCM037_PCM970
,
PCM037_EET
,
};
extern
enum
pcm037_board_variant
pcm037_variant
(
void
);
#endif
arch/arm/mach-mx3/pcm037_eet.c
0 → 100644
浏览文件 @
39bd8064
/*
* Copyright (C) 2009
* Guennadi Liakhovetski, DENX Software Engineering, <lg@denx.de>
*
* 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.
*/
#include <linux/gpio.h>
#include <linux/gpio_keys.h>
#include <linux/input.h>
#include <linux/platform_device.h>
#include <linux/spi/spi.h>
#include <mach/common.h>
#if defined(CONFIG_SPI_IMX) || defined(CONFIG_SPI_IMX_MODULE)
#include <mach/spi.h>
#endif
#include <mach/iomux-mx3.h>
#include <asm/mach-types.h>
#include "pcm037.h"
#include "devices.h"
static
unsigned
int
pcm037_eet_pins
[]
=
{
/* SPI #1 */
MX31_PIN_CSPI1_MISO__MISO
,
MX31_PIN_CSPI1_MOSI__MOSI
,
MX31_PIN_CSPI1_SCLK__SCLK
,
MX31_PIN_CSPI1_SPI_RDY__SPI_RDY
,
MX31_PIN_CSPI1_SS0__SS0
,
MX31_PIN_CSPI1_SS1__SS1
,
MX31_PIN_CSPI1_SS2__SS2
,
/* Reserve and hardwire GPIO 57 high - S6E63D6 chipselect */
IOMUX_MODE
(
MX31_PIN_KEY_COL7
,
IOMUX_CONFIG_GPIO
),
/* GPIO keys */
IOMUX_MODE
(
MX31_PIN_GPIO1_0
,
IOMUX_CONFIG_GPIO
),
/* 0 */
IOMUX_MODE
(
MX31_PIN_GPIO1_1
,
IOMUX_CONFIG_GPIO
),
/* 1 */
IOMUX_MODE
(
MX31_PIN_GPIO1_2
,
IOMUX_CONFIG_GPIO
),
/* 2 */
IOMUX_MODE
(
MX31_PIN_GPIO1_3
,
IOMUX_CONFIG_GPIO
),
/* 3 */
IOMUX_MODE
(
MX31_PIN_SVEN0
,
IOMUX_CONFIG_GPIO
),
/* 32 */
IOMUX_MODE
(
MX31_PIN_STX0
,
IOMUX_CONFIG_GPIO
),
/* 33 */
IOMUX_MODE
(
MX31_PIN_SRX0
,
IOMUX_CONFIG_GPIO
),
/* 34 */
IOMUX_MODE
(
MX31_PIN_SIMPD0
,
IOMUX_CONFIG_GPIO
),
/* 35 */
IOMUX_MODE
(
MX31_PIN_RTS1
,
IOMUX_CONFIG_GPIO
),
/* 38 */
IOMUX_MODE
(
MX31_PIN_CTS1
,
IOMUX_CONFIG_GPIO
),
/* 39 */
IOMUX_MODE
(
MX31_PIN_KEY_ROW4
,
IOMUX_CONFIG_GPIO
),
/* 50 */
IOMUX_MODE
(
MX31_PIN_KEY_ROW5
,
IOMUX_CONFIG_GPIO
),
/* 51 */
IOMUX_MODE
(
MX31_PIN_KEY_ROW6
,
IOMUX_CONFIG_GPIO
),
/* 52 */
IOMUX_MODE
(
MX31_PIN_KEY_ROW7
,
IOMUX_CONFIG_GPIO
),
/* 53 */
/* LEDs */
IOMUX_MODE
(
MX31_PIN_DTR_DTE1
,
IOMUX_CONFIG_GPIO
),
/* 44 */
IOMUX_MODE
(
MX31_PIN_DSR_DTE1
,
IOMUX_CONFIG_GPIO
),
/* 45 */
IOMUX_MODE
(
MX31_PIN_KEY_COL5
,
IOMUX_CONFIG_GPIO
),
/* 55 */
IOMUX_MODE
(
MX31_PIN_KEY_COL6
,
IOMUX_CONFIG_GPIO
),
/* 56 */
};
/* SPI */
static
struct
spi_board_info
pcm037_spi_dev
[]
=
{
{
.
modalias
=
"dac124s085"
,
.
max_speed_hz
=
400000
,
.
bus_num
=
0
,
.
chip_select
=
0
,
/* Index in pcm037_spi1_cs[] */
.
mode
=
SPI_CPHA
,
},
};
/* Platform Data for MXC CSPI */
#if defined(CONFIG_SPI_IMX) || defined(CONFIG_SPI_IMX_MODULE)
static
int
pcm037_spi1_cs
[]
=
{
MXC_SPI_CS
(
1
),
IOMUX_TO_GPIO
(
MX31_PIN_KEY_COL7
)};
struct
spi_imx_master
pcm037_spi1_master
=
{
.
chipselect
=
pcm037_spi1_cs
,
.
num_chipselect
=
ARRAY_SIZE
(
pcm037_spi1_cs
),
};
#endif
/* GPIO-keys input device */
static
struct
gpio_keys_button
pcm037_gpio_keys
[]
=
{
{
.
type
=
EV_KEY
,
.
code
=
KEY_L
,
.
gpio
=
0
,
.
desc
=
"Wheel Manual"
,
.
wakeup
=
0
,
},
{
.
type
=
EV_KEY
,
.
code
=
KEY_A
,
.
gpio
=
1
,
.
desc
=
"Wheel AF"
,
.
wakeup
=
0
,
},
{
.
type
=
EV_KEY
,
.
code
=
KEY_V
,
.
gpio
=
2
,
.
desc
=
"Wheel View"
,
.
wakeup
=
0
,
},
{
.
type
=
EV_KEY
,
.
code
=
KEY_M
,
.
gpio
=
3
,
.
desc
=
"Wheel Menu"
,
.
wakeup
=
0
,
},
{
.
type
=
EV_KEY
,
.
code
=
KEY_UP
,
.
gpio
=
32
,
.
desc
=
"Nav Pad Up"
,
.
wakeup
=
0
,
},
{
.
type
=
EV_KEY
,
.
code
=
KEY_RIGHT
,
.
gpio
=
33
,
.
desc
=
"Nav Pad Right"
,
.
wakeup
=
0
,
},
{
.
type
=
EV_KEY
,
.
code
=
KEY_DOWN
,
.
gpio
=
34
,
.
desc
=
"Nav Pad Down"
,
.
wakeup
=
0
,
},
{
.
type
=
EV_KEY
,
.
code
=
KEY_LEFT
,
.
gpio
=
35
,
.
desc
=
"Nav Pad Left"
,
.
wakeup
=
0
,
},
{
.
type
=
EV_KEY
,
.
code
=
KEY_ENTER
,
.
gpio
=
38
,
.
desc
=
"Nav Pad Ok"
,
.
wakeup
=
0
,
},
{
.
type
=
EV_KEY
,
.
code
=
KEY_O
,
.
gpio
=
39
,
.
desc
=
"Wheel Off"
,
.
wakeup
=
0
,
},
{
.
type
=
EV_KEY
,
.
code
=
BTN_FORWARD
,
.
gpio
=
50
,
.
desc
=
"Focus Forward"
,
.
wakeup
=
0
,
},
{
.
type
=
EV_KEY
,
.
code
=
BTN_BACK
,
.
gpio
=
51
,
.
desc
=
"Focus Backward"
,
.
wakeup
=
0
,
},
{
.
type
=
EV_KEY
,
.
code
=
BTN_MIDDLE
,
.
gpio
=
52
,
.
desc
=
"Release Half"
,
.
wakeup
=
0
,
},
{
.
type
=
EV_KEY
,
.
code
=
BTN_EXTRA
,
.
gpio
=
53
,
.
desc
=
"Release Full"
,
.
wakeup
=
0
,
},
};
static
struct
gpio_keys_platform_data
pcm037_gpio_keys_platform_data
=
{
.
buttons
=
pcm037_gpio_keys
,
.
nbuttons
=
ARRAY_SIZE
(
pcm037_gpio_keys
),
.
rep
=
0
,
/* No auto-repeat */
};
static
struct
platform_device
pcm037_gpio_keys_device
=
{
.
name
=
"gpio-keys"
,
.
id
=
-
1
,
.
dev
=
{
.
platform_data
=
&
pcm037_gpio_keys_platform_data
,
},
};
static
int
eet_init_devices
(
void
)
{
if
(
!
machine_is_pcm037
()
||
pcm037_variant
()
!=
PCM037_EET
)
return
0
;
mxc_iomux_setup_multiple_pins
(
pcm037_eet_pins
,
ARRAY_SIZE
(
pcm037_eet_pins
),
"pcm037_eet"
);
/* SPI */
spi_register_board_info
(
pcm037_spi_dev
,
ARRAY_SIZE
(
pcm037_spi_dev
));
#if defined(CONFIG_SPI_IMX) || defined(CONFIG_SPI_IMX_MODULE)
mxc_register_device
(
&
mxc_spi_device0
,
&
pcm037_spi1_master
);
#endif
platform_device_register
(
&
pcm037_gpio_keys_device
);
return
0
;
}
late_initcall
(
eet_init_devices
);
arch/arm/plat-mxc/include/mach/iomux-mx3.h
浏览文件 @
39bd8064
...
...
@@ -602,6 +602,8 @@ enum iomux_pins {
#define MX31_PIN_I2C_DAT__SDA IOMUX_MODE(MX31_PIN_I2C_DAT, IOMUX_CONFIG_FUNC)
#define MX31_PIN_DCD_DTE1__I2C2_SDA IOMUX_MODE(MX31_PIN_DCD_DTE1, IOMUX_CONFIG_ALT2)
#define MX31_PIN_RI_DTE1__I2C2_SCL IOMUX_MODE(MX31_PIN_RI_DTE1, IOMUX_CONFIG_ALT2)
#define MX31_PIN_CSPI2_SS2__I2C3_SDA IOMUX_MODE(MX31_PIN_CSPI2_SS2, IOMUX_CONFIG_ALT1)
#define MX31_PIN_CSPI2_SCLK__I2C3_SCL IOMUX_MODE(MX31_PIN_CSPI2_SCLK, IOMUX_CONFIG_ALT1)
#define MX31_PIN_CSI_D4__CSI_D4 IOMUX_MODE(MX31_PIN_CSI_D4, IOMUX_CONFIG_FUNC)
#define MX31_PIN_CSI_D5__CSI_D5 IOMUX_MODE(MX31_PIN_CSI_D5, IOMUX_CONFIG_FUNC)
#define MX31_PIN_CSI_D6__CSI_D6 IOMUX_MODE(MX31_PIN_CSI_D6, IOMUX_CONFIG_FUNC)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录