Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xiphi1978
linux
提交
b08d5af3
L
linux
项目概览
xiphi1978
/
linux
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
L
linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
b08d5af3
编写于
4月 06, 2008
作者:
M
Martin Michlmayr
提交者:
Lennert Buytenhek
6月 22, 2008
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[ARM] Orion: add HP Media Vault mv2120 support
Signed-off-by:
N
Lennert Buytenhek
<
buytenh@marvell.com
>
上级
42452b77
变更
3
显示空白变更内容
内联
并排
Showing
3 changed file
with
201 addition
and
0 deletion
+201
-0
arch/arm/mach-orion5x/Kconfig
arch/arm/mach-orion5x/Kconfig
+6
-0
arch/arm/mach-orion5x/Makefile
arch/arm/mach-orion5x/Makefile
+1
-0
arch/arm/mach-orion5x/mv2120-setup.c
arch/arm/mach-orion5x/mv2120-setup.c
+194
-0
未找到文件。
arch/arm/mach-orion5x/Kconfig
浏览文件 @
b08d5af3
...
...
@@ -56,6 +56,12 @@ config MACH_WRT350N_V2
Say 'Y' here if you want your kernel to support the
Linksys WRT350N v2 platform.
config MACH_MV2120
bool "HP Media Vault mv2120"
help
Say 'Y' here if you want your kernel to support the
HP Media Vault mv2120 or mv5100.
endmenu
endif
arch/arm/mach-orion5x/Makefile
浏览文件 @
b08d5af3
...
...
@@ -7,3 +7,4 @@ obj-$(CONFIG_MACH_DNS323) += dns323-setup.o
obj-$(CONFIG_MACH_TS209)
+=
ts209-setup.o
obj-$(CONFIG_MACH_TS409)
+=
ts409-setup.o
obj-$(CONFIG_MACH_WRT350N_V2)
+=
wrt350n-v2-setup.o
obj-$(CONFIG_MACH_MV2120)
+=
mv2120-setup.o
arch/arm/mach-orion5x/mv2120-setup.c
0 → 100644
浏览文件 @
b08d5af3
/*
* Copyright (C) 2007 Herbert Valerio Riedel <hvr@gnu.org>
* Copyright (C) 2008 Martin Michlmayr <tbm@cyrius.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*/
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/platform_device.h>
#include <linux/irq.h>
#include <linux/mtd/physmap.h>
#include <linux/mv643xx_eth.h>
#include <linux/leds.h>
#include <linux/gpio_keys.h>
#include <linux/input.h>
#include <linux/i2c.h>
#include <linux/ata_platform.h>
#include <asm/mach-types.h>
#include <asm/gpio.h>
#include <asm/mach/arch.h>
#include <asm/arch/orion5x.h>
#include "common.h"
#include "mpp.h"
#define MV2120_NOR_BOOT_BASE 0xf4000000
#define MV2120_NOR_BOOT_SIZE SZ_512K
#define MV2120_GPIO_RTC_IRQ 3
#define MV2120_GPIO_KEY_RESET 17
#define MV2120_GPIO_KEY_POWER 18
#define MV2120_GPIO_POWER_OFF 19
/*****************************************************************************
* Ethernet
****************************************************************************/
static
struct
mv643xx_eth_platform_data
mv2120_eth_data
=
{
.
phy_addr
=
8
,
};
static
struct
mv_sata_platform_data
mv2120_sata_data
=
{
.
n_ports
=
2
,
};
static
struct
mtd_partition
mv2120_partitions
[]
=
{
{
.
name
=
"firmware"
,
.
size
=
0x00080000
,
.
offset
=
0
,
},
};
static
struct
physmap_flash_data
mv2120_nor_flash_data
=
{
.
width
=
1
,
.
parts
=
mv2120_partitions
,
.
nr_parts
=
ARRAY_SIZE
(
mv2120_partitions
)
};
static
struct
resource
mv2120_nor_flash_resource
=
{
.
flags
=
IORESOURCE_MEM
,
.
start
=
MV2120_NOR_BOOT_BASE
,
.
end
=
MV2120_NOR_BOOT_BASE
+
MV2120_NOR_BOOT_SIZE
-
1
,
};
static
struct
platform_device
mv2120_nor_flash
=
{
.
name
=
"physmap-flash"
,
.
id
=
0
,
.
dev
=
{
.
platform_data
=
&
mv2120_nor_flash_data
,
},
.
resource
=
&
mv2120_nor_flash_resource
,
.
num_resources
=
1
,
};
static
struct
gpio_keys_button
mv2120_buttons
[]
=
{
{
.
code
=
KEY_RESTART
,
.
gpio
=
MV2120_GPIO_KEY_RESET
,
.
desc
=
"reset"
,
.
active_low
=
1
,
},
{
.
code
=
KEY_POWER
,
.
gpio
=
MV2120_GPIO_KEY_POWER
,
.
desc
=
"power"
,
.
active_low
=
1
,
},
};
static
struct
gpio_keys_platform_data
mv2120_button_data
=
{
.
buttons
=
mv2120_buttons
,
.
nbuttons
=
ARRAY_SIZE
(
mv2120_buttons
),
};
static
struct
platform_device
mv2120_button_device
=
{
.
name
=
"gpio-keys"
,
.
id
=
-
1
,
.
num_resources
=
0
,
.
dev
=
{
.
platform_data
=
&
mv2120_button_data
,
},
};
/****************************************************************************
* General Setup
****************************************************************************/
static
struct
orion5x_mpp_mode
mv2120_mpp_modes
[]
__initdata
=
{
{
0
,
MPP_GPIO
},
/* Sys status LED */
{
1
,
MPP_GPIO
},
/* Sys error LED */
{
2
,
MPP_GPIO
},
/* OverTemp interrupt */
{
3
,
MPP_GPIO
},
/* RTC interrupt */
{
4
,
MPP_GPIO
},
/* V_LED 5V */
{
5
,
MPP_GPIO
},
/* V_LED 3.3V */
{
6
,
MPP_UNUSED
},
{
7
,
MPP_UNUSED
},
{
8
,
MPP_GPIO
},
/* SATA 0 fail LED */
{
9
,
MPP_GPIO
},
/* SATA 1 fail LED */
{
10
,
MPP_UNUSED
},
{
11
,
MPP_UNUSED
},
{
12
,
MPP_SATA_LED
},
/* SATA 0 presence */
{
13
,
MPP_SATA_LED
},
/* SATA 1 presence */
{
14
,
MPP_SATA_LED
},
/* SATA 0 active */
{
15
,
MPP_SATA_LED
},
/* SATA 1 active */
{
16
,
MPP_UNUSED
},
{
17
,
MPP_GPIO
},
/* Reset button */
{
18
,
MPP_GPIO
},
/* Power button */
{
19
,
MPP_GPIO
},
/* Power off */
{
-
1
},
};
static
struct
i2c_board_info
__initdata
mv2120_i2c_rtc
=
{
I2C_BOARD_INFO
(
"rtc-pcf8563"
,
0x51
),
.
irq
=
0
,
};
static
void
mv2120_power_off
(
void
)
{
pr_info
(
"%s: triggering power-off...
\n
"
,
__func__
);
gpio_set_value
(
MV2120_GPIO_POWER_OFF
,
0
);
}
static
void
__init
mv2120_init
(
void
)
{
/* Setup basic Orion functions. Need to be called early. */
orion5x_init
();
orion5x_mpp_conf
(
mv2120_mpp_modes
);
/*
* Configure peripherals.
*/
orion5x_ehci0_init
();
orion5x_ehci1_init
();
orion5x_eth_init
(
&
mv2120_eth_data
);
orion5x_i2c_init
();
orion5x_sata_init
(
&
mv2120_sata_data
);
orion5x_uart0_init
();
orion5x_setup_dev_boot_win
(
MV2120_NOR_BOOT_BASE
,
MV2120_NOR_BOOT_SIZE
);
platform_device_register
(
&
mv2120_nor_flash
);
platform_device_register
(
&
mv2120_button_device
);
if
(
gpio_request
(
MV2120_GPIO_RTC_IRQ
,
"rtc"
)
==
0
)
{
if
(
gpio_direction_input
(
MV2120_GPIO_RTC_IRQ
)
==
0
)
mv2120_i2c_rtc
.
irq
=
gpio_to_irq
(
MV2120_GPIO_RTC_IRQ
);
else
gpio_free
(
MV2120_GPIO_RTC_IRQ
);
}
i2c_register_board_info
(
0
,
&
mv2120_i2c_rtc
,
1
);
/* register mv2120 specific power-off method */
if
(
gpio_request
(
MV2120_GPIO_POWER_OFF
,
"POWEROFF"
)
!=
0
||
gpio_direction_output
(
MV2120_GPIO_POWER_OFF
,
1
)
!=
0
)
pr_err
(
"mv2120: failed to setup power-off GPIO
\n
"
);
pm_power_off
=
mv2120_power_off
;
}
/* Warning: HP uses a wrong mach-type (=526) in their bootloader */
MACHINE_START
(
MV2120
,
"HP Media Vault mv2120"
)
/* Maintainer: Martin Michlmayr <tbm@cyrius.com> */
.
phys_io
=
ORION5X_REGS_PHYS_BASE
,
.
io_pg_offst
=
((
ORION5X_REGS_VIRT_BASE
)
>>
18
)
&
0xFFFC
,
.
boot_params
=
0x00000100
,
.
init_machine
=
mv2120_init
,
.
map_io
=
orion5x_map_io
,
.
init_irq
=
orion5x_init_irq
,
.
timer
=
&
orion5x_timer
,
.
fixup
=
tag_fixup_mem32
MACHINE_END
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录