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
Kirill Smelkov
linux
Commits
00e4acb1
Commit
00e4acb1
authored
Jan 27, 2010
by
Russell King
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'for-rmk' of
git://git.marvell.com/orion
parents
b04da8bf
cf11052a
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
118 additions
and
6 deletions
+118
-6
arch/arm/mach-kirkwood/rd88f6192-nas-setup.c
arch/arm/mach-kirkwood/rd88f6192-nas-setup.c
+6
-0
arch/arm/mach-orion5x/dns323-setup.c
arch/arm/mach-orion5x/dns323-setup.c
+27
-6
arch/arm/mach-orion5x/wrt350n-v2-setup.c
arch/arm/mach-orion5x/wrt350n-v2-setup.c
+79
-0
arch/arm/plat-orion/pcie.c
arch/arm/plat-orion/pcie.c
+6
-0
No files found.
arch/arm/mach-kirkwood/rd88f6192-nas-setup.c
View file @
00e4acb1
...
...
@@ -13,6 +13,7 @@
#include <linux/platform_device.h>
#include <linux/ata_platform.h>
#include <linux/mv643xx_eth.h>
#include <linux/gpio.h>
#include <linux/spi/flash.h>
#include <linux/spi/spi.h>
#include <linux/spi/orion_spi.h>
...
...
@@ -53,6 +54,11 @@ static void __init rd88f6192_init(void)
*/
kirkwood_init
();
orion_gpio_set_valid
(
RD88F6192_GPIO_USB_VBUS
,
1
);
if
(
gpio_request
(
RD88F6192_GPIO_USB_VBUS
,
"USB VBUS"
)
!=
0
||
gpio_direction_output
(
RD88F6192_GPIO_USB_VBUS
,
1
)
!=
0
)
pr_err
(
"RD-88F6192-NAS: failed to setup USB VBUS GPIO
\n
"
);
kirkwood_ehci_init
();
kirkwood_ge00_init
(
&
rd88f6192_ge00_data
);
kirkwood_sata_init
(
&
rd88f6192_sata_data
);
...
...
arch/arm/mach-orion5x/dns323-setup.c
View file @
00e4acb1
...
...
@@ -12,6 +12,7 @@
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/delay.h>
#include <linux/platform_device.h>
#include <linux/pci.h>
#include <linux/irq.h>
...
...
@@ -32,6 +33,7 @@
#define DNS323_GPIO_LED_RIGHT_AMBER 1
#define DNS323_GPIO_LED_LEFT_AMBER 2
#define DNS323_GPIO_SYSTEM_UP 3
#define DNS323_GPIO_LED_POWER 5
#define DNS323_GPIO_OVERTEMP 6
#define DNS323_GPIO_RTC 7
...
...
@@ -239,7 +241,7 @@ static struct gpio_led dns323_leds[] = {
{
.
name
=
"power:blue"
,
.
gpio
=
DNS323_GPIO_LED_POWER
,
.
active_low
=
1
,
.
default_state
=
LEDS_GPIO_DEFSTATE_ON
,
},
{
.
name
=
"right:amber"
,
.
gpio
=
DNS323_GPIO_LED_RIGHT_AMBER
,
...
...
@@ -334,7 +336,7 @@ static struct orion5x_mpp_mode dns323_mv88f5182_mpp_modes[] __initdata = {
{
0
,
MPP_UNUSED
},
{
1
,
MPP_GPIO
},
/* right amber LED (sata ch0) */
{
2
,
MPP_GPIO
},
/* left amber LED (sata ch1) */
{
3
,
MPP_
UNUSED
},
{
3
,
MPP_
GPIO
},
/* system up flag */
{
4
,
MPP_GPIO
},
/* power button LED */
{
5
,
MPP_GPIO
},
/* power button LED */
{
6
,
MPP_GPIO
},
/* GMT G751-2f overtemp */
...
...
@@ -372,13 +374,23 @@ static struct i2c_board_info __initdata dns323_i2c_devices[] = {
},
};
/* DNS-323 specific power off method */
static
void
dns323_power_off
(
void
)
/* DNS-323
rev. A
specific power off method */
static
void
dns323
a
_power_off
(
void
)
{
pr_info
(
"%s: triggering power-off...
\n
"
,
__func__
);
gpio_set_value
(
DNS323_GPIO_POWER_OFF
,
1
);
}
/* DNS-323 rev B specific power off method */
static
void
dns323b_power_off
(
void
)
{
pr_info
(
"%s: triggering power-off...
\n
"
,
__func__
);
/* Pin has to be changed to 1 and back to 0 to do actual power off. */
gpio_set_value
(
DNS323_GPIO_POWER_OFF
,
1
);
mdelay
(
100
);
gpio_set_value
(
DNS323_GPIO_POWER_OFF
,
0
);
}
static
void
__init
dns323_init
(
void
)
{
/* Setup basic Orion functions. Need to be called early. */
...
...
@@ -424,11 +436,20 @@ static void __init dns323_init(void)
if
(
dns323_dev_id
()
==
MV88F5182_DEV_ID
)
orion5x_sata_init
(
&
dns323_sata_data
);
/* register dns323 specific power-off method */
/* The 5182 has flag to indicate the system is up. Without this flag
* set, power LED will flash and cannot be controlled via leds-gpio.
*/
if
(
dns323_dev_id
()
==
MV88F5182_DEV_ID
)
gpio_set_value
(
DNS323_GPIO_SYSTEM_UP
,
1
);
/* Register dns323 specific power-off method */
if
(
gpio_request
(
DNS323_GPIO_POWER_OFF
,
"POWEROFF"
)
!=
0
||
gpio_direction_output
(
DNS323_GPIO_POWER_OFF
,
0
)
!=
0
)
pr_err
(
"DNS323: failed to setup power-off GPIO
\n
"
);
pm_power_off
=
dns323_power_off
;
if
(
dns323_dev_id
()
==
MV88F5182_DEV_ID
)
pm_power_off
=
dns323b_power_off
;
else
pm_power_off
=
dns323a_power_off
;
}
/* Warning: D-Link uses a wrong mach-type (=526) in their bootloader */
...
...
arch/arm/mach-orion5x/wrt350n-v2-setup.c
View file @
00e4acb1
...
...
@@ -15,6 +15,9 @@
#include <linux/mtd/physmap.h>
#include <linux/mv643xx_eth.h>
#include <linux/ethtool.h>
#include <linux/leds.h>
#include <linux/gpio_keys.h>
#include <linux/input.h>
#include <net/dsa.h>
#include <asm/mach-types.h>
#include <asm/gpio.h>
...
...
@@ -24,6 +27,80 @@
#include "common.h"
#include "mpp.h"
/*
* LEDs attached to GPIO
*/
static
struct
gpio_led
wrt350n_v2_led_pins
[]
=
{
{
.
name
=
"wrt350nv2:green:power"
,
.
gpio
=
0
,
.
active_low
=
1
,
},
{
.
name
=
"wrt350nv2:green:security"
,
.
gpio
=
1
,
.
active_low
=
1
,
},
{
.
name
=
"wrt350nv2:orange:power"
,
.
gpio
=
5
,
.
active_low
=
1
,
},
{
.
name
=
"wrt350nv2:green:usb"
,
.
gpio
=
6
,
.
active_low
=
1
,
},
{
.
name
=
"wrt350nv2:green:wireless"
,
.
gpio
=
7
,
.
active_low
=
1
,
},
};
static
struct
gpio_led_platform_data
wrt350n_v2_led_data
=
{
.
leds
=
wrt350n_v2_led_pins
,
.
num_leds
=
ARRAY_SIZE
(
wrt350n_v2_led_pins
),
};
static
struct
platform_device
wrt350n_v2_leds
=
{
.
name
=
"leds-gpio"
,
.
id
=
-
1
,
.
dev
=
{
.
platform_data
=
&
wrt350n_v2_led_data
,
},
};
/*
* Buttons attached to GPIO
*/
static
struct
gpio_keys_button
wrt350n_v2_buttons
[]
=
{
{
.
code
=
KEY_RESTART
,
.
gpio
=
3
,
.
desc
=
"Reset Button"
,
.
active_low
=
1
,
},
{
.
code
=
KEY_WLAN
,
.
gpio
=
2
,
.
desc
=
"WPS Button"
,
.
active_low
=
1
,
},
};
static
struct
gpio_keys_platform_data
wrt350n_v2_button_data
=
{
.
buttons
=
wrt350n_v2_buttons
,
.
nbuttons
=
ARRAY_SIZE
(
wrt350n_v2_buttons
),
};
static
struct
platform_device
wrt350n_v2_button_device
=
{
.
name
=
"gpio-keys"
,
.
id
=
-
1
,
.
num_resources
=
0
,
.
dev
=
{
.
platform_data
=
&
wrt350n_v2_button_data
,
},
};
/*
* General setup
*/
static
struct
orion5x_mpp_mode
wrt350n_v2_mpp_modes
[]
__initdata
=
{
{
0
,
MPP_GPIO
},
/* Power LED green (0=on) */
{
1
,
MPP_GPIO
},
/* Security LED (0=on) */
...
...
@@ -140,6 +217,8 @@ static void __init wrt350n_v2_init(void)
orion5x_setup_dev_boot_win
(
WRT350N_V2_NOR_BOOT_BASE
,
WRT350N_V2_NOR_BOOT_SIZE
);
platform_device_register
(
&
wrt350n_v2_nor_flash
);
platform_device_register
(
&
wrt350n_v2_leds
);
platform_device_register
(
&
wrt350n_v2_button_device
);
}
static
int
__init
wrt350n_v2_pci_map_irq
(
struct
pci_dev
*
dev
,
u8
slot
,
u8
pin
)
...
...
arch/arm/plat-orion/pcie.c
View file @
00e4acb1
...
...
@@ -132,6 +132,12 @@ static void __init orion_pcie_setup_wins(void __iomem *base,
size
+=
cs
->
size
;
}
/*
* Round up 'size' to the nearest power of two.
*/
if
((
size
&
(
size
-
1
))
!=
0
)
size
=
1
<<
fls
(
size
);
/*
* Setup BAR[1] to all DRAM banks.
*/
...
...
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