-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
arm: kirkwood: add support for ZyXEL NSA310
Hello, Andrew > > +#define NSA310_GPIO_LED_ESATA_GREEN 12 > > <..> > > +#define NSA310_GPIO_POWER_OFF 48 > > It looks like most of these are not used. Please remove them. True. Fixed. > > +static struct mtd_partition nsa310_mtd_parts[] = { > > + { > > + .name = "uboot", > > + .offset = 0, > > + .size = 0x100000, > > + .mask_flags = MTD_WRITEABLE, > > + }, { > > <..> > You should be able to put all that into DT. Take a look at Correct. I did the conversion and tested that the partitions can be read with dd and produce exactly the same data before and after conversion. So, the partition offsets at least should be fine. > > +static struct i2c_board_info __initdata nsa310_i2c_info[] = { > > + { I2C_BOARD_INFO("adt7476", 0x2e) }, > > +}; > > You can also do this in DT as well. kirkwood-ts219.dtsi has > > i2c@11000 { > status = "okay"; > clock-frequency = <400000>; Ok, I did convert the i2c definition to use the devicetree. The adt7476 device itself is not at reach of device tree, AFAIK and requires more work at there? Thanks for your valuable comments. Following is a new patch that should address the problems and mistakes you pointed and also some of the pointed by Jason Cooper. The nand and i2c are now defined at DT and I also removed the pointless defines and ARM_APPENDED_DTB. It is based against the Linus' official 3.6 version. Best regards, Tero Signed-off-by: Jason Cooper <jason@lakedaemon.net>
- Loading branch information
Tero Jaasko
authored and
Jason Cooper
committed
Nov 21, 2012
1 parent
767fc1e
commit afcad88
Showing
7 changed files
with
269 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,144 @@ | ||
/dts-v1/; | ||
|
||
/include/ "kirkwood.dtsi" | ||
|
||
/ { | ||
model = "ZyXEL NSA310"; | ||
compatible = "zyxel,nsa310", "marvell,kirkwood-88f6281", "marvell,kirkwood"; | ||
|
||
memory { | ||
device_type = "memory"; | ||
reg = <0x00000000 0x10000000>; | ||
}; | ||
|
||
chosen { | ||
bootargs = "console=ttyS0,115200"; | ||
}; | ||
|
||
ocp@f1000000 { | ||
|
||
serial@12000 { | ||
clock-frequency = <200000000>; | ||
status = "ok"; | ||
}; | ||
|
||
sata@80000 { | ||
status = "okay"; | ||
nr-ports = <2>; | ||
}; | ||
|
||
i2c@11000 { | ||
status = "okay"; | ||
}; | ||
|
||
nand@3000000 { | ||
status = "okay"; | ||
chip-delay = <35>; | ||
|
||
partition@0 { | ||
label = "uboot"; | ||
reg = <0x0000000 0x0100000>; | ||
read-only; | ||
}; | ||
partition@100000 { | ||
label = "uboot_env"; | ||
reg = <0x0100000 0x0080000>; | ||
}; | ||
partition@180000 { | ||
label = "key_store"; | ||
reg = <0x0180000 0x0080000>; | ||
}; | ||
partition@200000 { | ||
label = "info"; | ||
reg = <0x0200000 0x0080000>; | ||
}; | ||
partition@280000 { | ||
label = "etc"; | ||
reg = <0x0280000 0x0a00000>; | ||
}; | ||
partition@c80000 { | ||
label = "kernel_1"; | ||
reg = <0x0c80000 0x0a00000>; | ||
}; | ||
partition@1680000 { | ||
label = "rootfs1"; | ||
reg = <0x1680000 0x2fc0000>; | ||
}; | ||
partition@4640000 { | ||
label = "kernel_2"; | ||
reg = <0x4640000 0x0a00000>; | ||
}; | ||
partition@5040000 { | ||
label = "rootfs2"; | ||
reg = <0x5040000 0x2fc0000>; | ||
}; | ||
}; | ||
}; | ||
|
||
gpio_keys { | ||
compatible = "gpio-keys"; | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
|
||
button@1 { | ||
label = "Power Button"; | ||
linux,code = <116>; | ||
gpios = <&gpio1 14 0>; | ||
}; | ||
button@2 { | ||
label = "Copy Button"; | ||
linux,code = <133>; | ||
gpios = <&gpio1 5 1>; | ||
}; | ||
button@3 { | ||
label = "Reset Button"; | ||
linux,code = <0x198>; | ||
gpios = <&gpio1 4 1>; | ||
}; | ||
}; | ||
|
||
gpio-leds { | ||
compatible = "gpio-leds"; | ||
|
||
green-sys { | ||
label = "nsa310:green:sys"; | ||
gpios = <&gpio0 28 0>; | ||
}; | ||
red-sys { | ||
label = "nsa310:red:sys"; | ||
gpios = <&gpio0 29 0>; | ||
}; | ||
green-hdd { | ||
label = "nsa310:green:hdd"; | ||
gpios = <&gpio1 9 0>; | ||
}; | ||
red-hdd { | ||
label = "nsa310:red:hdd"; | ||
gpios = <&gpio1 10 0>; | ||
}; | ||
green-esata { | ||
label = "nsa310:green:esata"; | ||
gpios = <&gpio0 12 0>; | ||
}; | ||
red-esata { | ||
label = "nsa310:red:esata"; | ||
gpios = <&gpio0 13 0>; | ||
}; | ||
green-usb { | ||
label = "nsa310:green:usb"; | ||
gpios = <&gpio0 15 0>; | ||
}; | ||
red-usb { | ||
label = "nsa310:red:usb"; | ||
gpios = <&gpio0 16 0>; | ||
}; | ||
green-copy { | ||
label = "nsa310:green:copy"; | ||
gpios = <&gpio1 7 0>; | ||
}; | ||
red-copy { | ||
label = "nsa310:red:copy"; | ||
gpios = <&gpio1 8 0>; | ||
}; | ||
}; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,105 @@ | ||
/* | ||
* arch/arm/mach-kirkwood/nsa-310-setup.c | ||
* | ||
* ZyXEL NSA-310 Setup | ||
* | ||
* This file is licensed under the terms of the GNU General Public | ||
* License version 2. This program is licensed "as is" without any | ||
* warranty of any kind, whether express or implied. | ||
*/ | ||
|
||
#include <linux/kernel.h> | ||
#include <linux/init.h> | ||
#include <linux/i2c.h> | ||
#include <linux/gpio.h> | ||
|
||
#include <asm/mach-types.h> | ||
#include <asm/mach/arch.h> | ||
#include <mach/kirkwood.h> | ||
#include "common.h" | ||
#include "mpp.h" | ||
|
||
#define NSA310_GPIO_USB_POWER_OFF 21 | ||
#define NSA310_GPIO_POWER_OFF 48 | ||
|
||
static unsigned int nsa310_mpp_config[] __initdata = { | ||
MPP12_GPIO, /* led esata green */ | ||
MPP13_GPIO, /* led esata red */ | ||
MPP15_GPIO, /* led usb green */ | ||
MPP16_GPIO, /* led usb red */ | ||
MPP21_GPIO, /* control usb power off */ | ||
MPP28_GPIO, /* led sys green */ | ||
MPP29_GPIO, /* led sys red */ | ||
MPP36_GPIO, /* key reset */ | ||
MPP37_GPIO, /* key copy */ | ||
MPP39_GPIO, /* led copy green */ | ||
MPP40_GPIO, /* led copy red */ | ||
MPP41_GPIO, /* led hdd green */ | ||
MPP42_GPIO, /* led hdd red */ | ||
MPP44_GPIO, /* ?? */ | ||
MPP46_GPIO, /* key power */ | ||
MPP48_GPIO, /* control power off */ | ||
0 | ||
}; | ||
|
||
static struct i2c_board_info __initdata nsa310_i2c_info[] = { | ||
{ I2C_BOARD_INFO("adt7476", 0x2e) }, | ||
}; | ||
|
||
static void nsa310_power_off(void) | ||
{ | ||
gpio_set_value(NSA310_GPIO_POWER_OFF, 1); | ||
} | ||
|
||
static int __init nsa310_gpio_request(unsigned int gpio, unsigned long flags, | ||
const char *label) | ||
{ | ||
int err; | ||
|
||
err = gpio_request_one(gpio, flags, label); | ||
if (err) | ||
pr_err("NSA-310: can't setup GPIO%u (%s), err=%d\n", | ||
gpio, label, err); | ||
|
||
return err; | ||
} | ||
|
||
static void __init nsa310_gpio_init(void) | ||
{ | ||
int err; | ||
|
||
err = nsa310_gpio_request(NSA310_GPIO_POWER_OFF, GPIOF_OUT_INIT_LOW, | ||
"Power Off"); | ||
if (!err) | ||
pm_power_off = nsa310_power_off; | ||
|
||
nsa310_gpio_request(NSA310_GPIO_USB_POWER_OFF, GPIOF_OUT_INIT_LOW, | ||
"USB Power Off"); | ||
} | ||
|
||
void __init nsa310_init(void) | ||
{ | ||
u32 dev, rev; | ||
|
||
kirkwood_mpp_conf(nsa310_mpp_config); | ||
|
||
nsa310_gpio_init(); | ||
|
||
/* this can be removed once the mainline kirkwood.dtsi gets | ||
* the ehci configuration by default */ | ||
kirkwood_ehci_init(); | ||
|
||
kirkwood_pcie_id(&dev, &rev); | ||
|
||
i2c_register_board_info(0, ARRAY_AND_SIZE(nsa310_i2c_info)); | ||
} | ||
|
||
static int __init nsa310_pci_init(void) | ||
{ | ||
if (of_machine_is_compatible("zyxel,nsa310")) | ||
kirkwood_pcie_init(KW_PCIE0); | ||
|
||
return 0; | ||
} | ||
|
||
subsys_initcall(nsa310_pci_init); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters