Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
kernel_linux
提交
b08d5af3
K
kernel_linux
项目概览
OpenHarmony
/
kernel_linux
上一次同步 4 年多
通知
15
Star
8
Fork
2
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
kernel_linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
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
...
@@ -56,6 +56,12 @@ config MACH_WRT350N_V2
Say 'Y' here if you want your kernel to support the
Say 'Y' here if you want your kernel to support the
Linksys WRT350N v2 platform.
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
endmenu
endif
endif
arch/arm/mach-orion5x/Makefile
浏览文件 @
b08d5af3
...
@@ -7,3 +7,4 @@ obj-$(CONFIG_MACH_DNS323) += dns323-setup.o
...
@@ -7,3 +7,4 @@ obj-$(CONFIG_MACH_DNS323) += dns323-setup.o
obj-$(CONFIG_MACH_TS209)
+=
ts209-setup.o
obj-$(CONFIG_MACH_TS209)
+=
ts209-setup.o
obj-$(CONFIG_MACH_TS409)
+=
ts409-setup.o
obj-$(CONFIG_MACH_TS409)
+=
ts409-setup.o
obj-$(CONFIG_MACH_WRT350N_V2)
+=
wrt350n-v2-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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录