Skip to contentSkip to conversation

ARM: dts: add buffalo linkstation ls-wxl/wsxl & ls-wvl/vl

PATCH Superseded Roger Shimizu 3 participants 21 messages Jun 19, 2015 – Jul 9, 2015

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

cover ARM: dts: add buffalo linkstation ls-wxl/wsxl & ls-wvl/vl

Here's the dts-patch support for 2 series of NAS products from Buffalo.

kirkwood-lswxl.dtsi to support:
- http://buffalo.jp/product/hdd/network/ls-wxl_r1/
- http://buffalo.jp/products/catalog/storage/ls-wsxl_r1/

kirkwood-lswvl.dtsi to support:
- http://buffalo.jp/product/hdd/network/ls-wvl_r1/
- http://buffalo.jp/product/hdd/network/ls-vl/

I have tested the patches againt latest next/dt branch (commit:
1647e3c73ce54fc32536bb3a834eccad39b23572) and found they're booting and working fine on the real Buffalo NAS boxes.

These two dts patches are encouraged and reviewed by Iwamatsu-san from Debian project. Here I'd like to appreciate his kindness help.

Since I'm merely a newbie contributor to kernel, if there's any mistake or something need to be adjusted, please just let know.

It'd be great if you could consider to merge the patches. Thank you!

Roger Shimizu (2):
ARM: dts: add buffalo linkstation ls-wxl/wsxl
ARM: dts: add buffalo linkstation ls-wvl/vl

 .../devicetree/bindings/arm/marvell,kirkwood.txt   |   2 +
 arch/arm/boot/dts/Makefile                         |   2 +
 arch/arm/boot/dts/kirkwood-lswvl.dts               | 307 ++++++++++++++++++++
 arch/arm/boot/dts/kirkwood-lswxl.dts               | 312 +++++++++++++++++++++
 4 files changed, 623 insertions(+)
 create mode 100644 arch/arm/boot/dts/kirkwood-lswvl.dts
 create mode 100644 arch/arm/boot/dts/kirkwood-lswxl.dts
Signature · 1 line
1.9.1
#1 lore raw

PATCH 1/2 ARM: dts: add buffalo linkstation ls-wxl/wsxl

Add dts file to support Buffalo Linkstation LS-WXL and LS-WSXL, which are 2-bay NAS with 3.5" and 2.5" HDD respectively.

---
 .../devicetree/bindings/arm/marvell,kirkwood.txt   |   1 +
 arch/arm/boot/dts/Makefile                         |   1 +
 arch/arm/boot/dts/kirkwood-lswxl.dts               | 312 +++++++++++++++++++++
 3 files changed, 314 insertions(+)
 create mode 100644 arch/arm/boot/dts/kirkwood-lswxl.dts
Documentation/devicetree/bindings/arm/marvell,kirkwood.txt +1 -0
index 4f40ff3..f541506 100644
@@ -22,6 +22,7 @@ board. Currently known boards are:
 "buffalo,lschlv2"
 "buffalo,lsxhl"
 "buffalo,lsxl"
+"buffalo,lswxl"
 "dlink,dns-320"
 "dlink,dns-320-a1"
 "dlink,dns-325"
arch/arm/boot/dts/Makefile +1 -0
index a8bf702..e0ebd59 100644
@@ -177,6 +177,7 @@ dtb-$(CONFIG_MACH_KIRKWOOD) += \
 	kirkwood-laplug.dtb \
 	kirkwood-lschlv2.dtb \
 	kirkwood-lsxhl.dtb \
+	kirkwood-lswxl.dtb \
 	kirkwood-mplcec4.dtb \
 	kirkwood-mv88f6281gtw-ge.dtb \
 	kirkwood-nas2big.dtb \
arch/arm/boot/dts/kirkwood-lswxl.dts new file +312 -0

312 lines not on this page · raw message

Signature · 1 line
1.9.1
#2 lore raw

PATCH 1/2 ARM: dts: add buffalo linkstation ls-wxl/wsxl

Hi Roger

These two look quite good. Just some minor comments. Many of them apply to both dts files.

arch/arm/boot/dts/kirkwood-lswxl.dts line 19

Quoted 3 lines
arch/arm/boot/dts/kirkwood-lswxl.dts new file +3 -0
+/ {
+	model = "Buffalo Linkstation LS-WXL/WSXL";
+	compatible = "buffalo,linkstation,lswxl", "buffalo,lswxl", "marvell,kirkwood-88f6281", "marvell,kirkwood";

Compatibility strings don't normally have two , in them. I would drop the first one.

arch/arm/boot/dts/kirkwood-lswxl.dts line 74

Quoted 1 line
arch/arm/boot/dts/kirkwood-lswxl.dts new file +1 -0
+			pmx_led_function_red: pmx-led-function_red {

The second _red should be -red.

arch/arm/boot/dts/kirkwood-lswxl.dts line 125

Quoted 7 lines
arch/arm/boot/dts/kirkwood-lswxl.dts new file +7 -0
+		spi at 10600 {
+			status = "okay";
+
+			m25p40 at 0 {
+				#address-cells = <1>;
+				#size-cells = <1>;
+				compatible = "m25p40";

There should be a vendor in this compatibility string, probably "st".

arch/arm/boot/dts/kirkwood-lswxl.dts line 169

Quoted 6 lines
arch/arm/boot/dts/kirkwood-lswxl.dts new file +6 -0
+		button at 2 {
+			label = "Power-on Switch";
+			linux,code = <KEY_RESERVED>;
+			linux,input-type = <5>;
+			gpios = <&gpio1 42 GPIO_ACTIVE_LOW>;
+		};

Why did you pick these values? <KEY_POWER> is a more common code for a power button.

arch/arm/boot/dts/kirkwood-lswxl.dts line 175

Quoted 6 lines
arch/arm/boot/dts/kirkwood-lswxl.dts new file +6 -0
+
+		button at 3 {
+			label = "Power-auto Switch";
+			linux,code = <KEY_ESC>;
+			linux,input-type = <5>;
+			gpios = <&gpio1 43 GPIO_ACTIVE_LOW>;

Also a bit unusual. What is this button used for?

arch/arm/boot/dts/kirkwood-lswxl.dts line 214

Quoted 6 lines
arch/arm/boot/dts/kirkwood-lswxl.dts new file +6 -0
+		led at 5 {
+			label = "lswxl:red:func";
+			gpios = <&gpio1 5 GPIO_ACTIVE_LOW>;
+			default-state = "keep";
+			linux,default-trigger = "heartbeat";
+		};

I know of one maintainer who will not like the heartbeat here. Also, default-state and heartbeat at the same time?

arch/arm/boot/dts/kirkwood-lswxl.dts line 311

Quoted 8 lines

+&eth0 {

arch/arm/boot/dts/kirkwood-lswxl.dts new file +7 -0
+	status = "okay";
+	reg = <0x76000 0x4000>;
+	clocks = <&gate_clk 19>;
+	ethernet0-port at 0 {
+		phy-handle = <&ethphy1>;
+		interrupts = <15>;
+	};

Why reg, clocks and interrupts here? These values belong to eth1.

Thanks

Andrew

#3 lore raw

PATCH 1/2 ARM: dts: add buffalo linkstation ls-wxl/wsxl

Dear Andrew,

Thanks for your comments!

Let me clarify and confirm with you before sending the modified patches.

Quoted 4 lines
Quoted 1 line

+ compatible = "buffalo,linkstation,lswxl", "buffalo,lswxl", "marvell,kirkwood-88f6281", "marvell,kirkwood";

Compatibility strings don't normally have two , in them. I would drop the first one.

So the following would be OK for you?
+ compatible = "buffalo,lswxl", "marvell,kirkwood-88f6281",
"marvell,kirkwood";

Quoted 3 lines
Quoted 1 line

+ compatible = "m25p40";

There should be a vendor in this compatibility string, probably "st".

I wrote this based on kirkwood-lsxl.dtsi and other dts files. Maybe those are quite old, and I'll follow your suggestion.

Quoted 9 lines

arch/arm/boot/dts/kirkwood-lswxl.dts line 169

Quoted 6 lines
arch/arm/boot/dts/kirkwood-lswxl.dts new file +6 -0
+             button at 2 {
+                     label = "Power-on Switch";
+                     linux,code = <KEY_RESERVED>;
+                     linux,input-type = <5>;
+                     gpios = <&gpio1 42 GPIO_ACTIVE_LOW>;
+             };

Why did you pick these values? <KEY_POWER> is a more common code for a power button.

I copied this part exact from kirkwood-lsxl.dtsi, only changed the gpio pin number.
Please tell me how to proceed since I actually don't have much knowledge on it.

Quoted 7 lines

arch/arm/boot/dts/kirkwood-lswxl.dts line 175

Quoted 5 lines
arch/arm/boot/dts/kirkwood-lswxl.dts new file +5 -0
+             button at 3 {
+                     label = "Power-auto Switch";
+                     linux,code = <KEY_ESC>;
+                     linux,input-type = <5>;
+                     gpios = <&gpio1 43 GPIO_ACTIVE_LOW>;

Also a bit unusual. What is this button used for?

This button is for auto power-on when getting WOL (wake-on-lan) signal. Also copied from kirkwood-lsxl.dtsi.

Quoted 9 lines

arch/arm/boot/dts/kirkwood-lswxl.dts line 214

Quoted 6 lines
arch/arm/boot/dts/kirkwood-lswxl.dts new file +6 -0
+             led at 5 {
+                     label = "lswxl:red:func";
+                     gpios = <&gpio1 5 GPIO_ACTIVE_LOW>;
+                     default-state = "keep";
+                     linux,default-trigger = "heartbeat";
+             };

I know of one maintainer who will not like the heartbeat here. Also, default-state and heartbeat at the same time?

I'll remove these two lines.

Quoted 10 lines

arch/arm/boot/dts/kirkwood-lswxl.dts line 311

Quoted 8 lines

+&eth0 {

arch/arm/boot/dts/kirkwood-lswxl.dts new file +7 -0
+     status = "okay";
+     reg = <0x76000 0x4000>;
+     clocks = <&gate_clk 19>;
+     ethernet0-port at 0 {
+             phy-handle = <&ethphy1>;
+             interrupts = <15>;
+     };

Why reg, clocks and interrupts here? These values belong to eth1.

Originally, I tried the same as the dts for ls-wvl, but I see no eth0 but only eth1 in linux system,
even "ifconfig -a" command which list all interfaces including un-used ones. So I change this part of dts to make the only network interface as eth0. For both ls-wxl and ls-wsxl boards, I confirmed both working well with this setting.

Thanks and looking forward to your comment again.

Cheers,
Roger

Quoted 68 lines · Andrew Lunn

Hi Roger

These two look quite good. Just some minor comments. Many of them apply to both dts files.

arch/arm/boot/dts/kirkwood-lswxl.dts line 19

Quoted 3 lines
arch/arm/boot/dts/kirkwood-lswxl.dts new file +3 -0
+/ {
+     model = "Buffalo Linkstation LS-WXL/WSXL";
+     compatible = "buffalo,linkstation,lswxl", "buffalo,lswxl", "marvell,kirkwood-88f6281", "marvell,kirkwood";

Compatibility strings don't normally have two , in them. I would drop the first one.

Quoted 1 line

+ pmx_led_function_red: pmx-led-function_red {

The second _red should be -red.

arch/arm/boot/dts/kirkwood-lswxl.dts line 125

Quoted 7 lines
arch/arm/boot/dts/kirkwood-lswxl.dts new file +7 -0
+             spi at 10600 {
+                     status = "okay";
+
+                     m25p40 at 0 {
+                             #address-cells = <1>;
+                             #size-cells = <1>;
+                             compatible = "m25p40";

There should be a vendor in this compatibility string, probably "st".

arch/arm/boot/dts/kirkwood-lswxl.dts line 169

Quoted 6 lines
arch/arm/boot/dts/kirkwood-lswxl.dts new file +6 -0
+             button at 2 {
+                     label = "Power-on Switch";
+                     linux,code = <KEY_RESERVED>;
+                     linux,input-type = <5>;
+                     gpios = <&gpio1 42 GPIO_ACTIVE_LOW>;
+             };

Why did you pick these values? <KEY_POWER> is a more common code for a power button.

arch/arm/boot/dts/kirkwood-lswxl.dts line 175

Quoted 6 lines
arch/arm/boot/dts/kirkwood-lswxl.dts new file +6 -0
+
+             button at 3 {
+                     label = "Power-auto Switch";
+                     linux,code = <KEY_ESC>;
+                     linux,input-type = <5>;
+                     gpios = <&gpio1 43 GPIO_ACTIVE_LOW>;

Also a bit unusual. What is this button used for?

arch/arm/boot/dts/kirkwood-lswxl.dts line 214

Quoted 6 lines
arch/arm/boot/dts/kirkwood-lswxl.dts new file +6 -0
+             led at 5 {
+                     label = "lswxl:red:func";
+                     gpios = <&gpio1 5 GPIO_ACTIVE_LOW>;
+                     default-state = "keep";
+                     linux,default-trigger = "heartbeat";
+             };

I know of one maintainer who will not like the heartbeat here. Also, default-state and heartbeat at the same time?

arch/arm/boot/dts/kirkwood-lswxl.dts line 311

Quoted 8 lines

+&eth0 {

arch/arm/boot/dts/kirkwood-lswxl.dts new file +7 -0
+     status = "okay";
+     reg = <0x76000 0x4000>;
+     clocks = <&gate_clk 19>;
+     ethernet0-port at 0 {
+             phy-handle = <&ethphy1>;
+             interrupts = <15>;
+     };

Why reg, clocks and interrupts here? These values belong to eth1.

Thanks

Andrew

#4 lore raw

PATCH 1/2 ARM: dts: add buffalo linkstation ls-wxl/wsxl

Quoted 6 lines · Roger Shimizu

Dear Andrew,

Thanks for your comments!

Let me clarify and confirm with you before sending the modified patches.

Quoted 8 lines
Quoted 4 lines
Quoted 1 line

+ compatible = "buffalo,linkstation,lswxl", "buffalo,lswxl", "marvell,kirkwood-88f6281", "marvell,kirkwood";

Compatibility strings don't normally have two , in them. I would drop the first one.

So the following would be OK for you?
+ compatible = "buffalo,lswxl", "marvell,kirkwood-88f6281",
"marvell,kirkwood";

Yes, that is good.

Quoted 7 lines
Quoted 4 lines
Quoted 2 lines

+ compatible = "m25p40";

There should be a vendor in this compatibility string, probably "st".

I wrote this based on kirkwood-lsxl.dtsi and other dts files. Maybe those are quite old, and I'll follow your suggestion.

There are a few subsystems that don't require a vendor in order to work, like mtd, and i2c. But the DT specification says there should be one. So we have become more strict with time when accepting patches, but not yet gone back and added the missing vendors to existing files.

Quoted 7 lines
Quoted 7 lines
Quoted 6 lines
arch/arm/boot/dts/kirkwood-lswxl.dts new file +6 -0
+             button at 2 {
+                     label = "Power-on Switch";
+                     linux,code = <KEY_RESERVED>;
+                     linux,input-type = <5>;
+                     gpios = <&gpio1 42 GPIO_ACTIVE_LOW>;
+             };
Quoted 5 lines
Quoted 2 lines

Why did you pick these values? <KEY_POWER> is a more common code for a power button.

I copied this part exact from kirkwood-lsxl.dtsi, only changed the gpio pin number.

So maybe we will just copy what kirkwood-lsxl.dtsi does, but....

Describe to us the use case for the button. What do users expect to happen when this button is pressed. Is it actually a push button, or a slider? With more than 2 positions? Is there some user space software listening for these particular events?

Quoted 9 lines
Quoted 7 lines

arch/arm/boot/dts/kirkwood-lswxl.dts line 175

Quoted 5 lines
arch/arm/boot/dts/kirkwood-lswxl.dts new file +5 -0
+             button at 3 {
+                     label = "Power-auto Switch";
+                     linux,code = <KEY_ESC>;
+                     linux,input-type = <5>;
+                     gpios = <&gpio1 43 GPIO_ACTIVE_LOW>;

Also a bit unusual. What is this button used for?

This button is for auto power-on when getting WOL (wake-on-lan) signal.

So i would at least put WOL in the label. What sort of switch is it, push button, slider? Is there some code in user space setting up the Ethernet for WOL when this button is pressed?

Quoted 9 lines
Quoted 9 lines
Quoted 8 lines

+&eth0 {

arch/arm/boot/dts/kirkwood-lswxl.dts new file +7 -0
+     status = "okay";
+     reg = <0x76000 0x4000>;
+     clocks = <&gate_clk 19>;
+     ethernet0-port at 0 {
+             phy-handle = <&ethphy1>;
+             interrupts = <15>;
+     };
Quoted 4 lines
Quoted 1 line

Why reg, clocks and interrupts here? These values belong to eth1.

Originally, I tried the same as the dts for ls-wvl, but I see no eth0 but only eth1 in linux system,

In DT, eth1 is correct, not eth0. The kernel should be giving out names on a first come, first served bases, unless something is renaming them. What user space are you running? Debian? Do you have a /etc/udev/rules.d/70-persistent-net.rules? Does it have entries based on the MAC addresses?

Andrew

#5 lore raw

PATCH 1/2 ARM: dts: add buffalo linkstation ls-wxl/wsxl

Dear Andrew,

Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

+ compatible = "m25p40";

Thanks for tell me the history.
I checked around and am going to change to:

+ compatible = "st,m25p40", "jedec,spi-nor";

Quoted 8 lines

Describe to us the use case for the button. What do users expect to happen when this button is pressed. Is it actually a push button, or a slider? With more than 2 positions? Is there some user space software listening for these particular events?

So i would at least put WOL in the label. What sort of switch is it, push button, slider? Is there some code in user space setting up the Ethernet for WOL when this button is pressed?

Actually the button at 2 and button at 3 are bundled on a slider with 3 possible position: power off/on/auto.
Quite a few Buffalo NAS designs take this kind of power switch/slider.

For the "auto" position, the box will be powered on only when get some signal, which seems to be WOL,
but as matter of fact I didn't capture the network packet to confirm this. Original feature by Buffalo also includes auto power down if not get that signal for a few minutes.
After I installed Debian on the NAS, the "auto" button became useless, since no daemon is monitoring the power slider anymore.

Please inform me whether it's OK to keep what kirkwood-lsxl.dtsi is now for the power slider.

Quoted 5 lines

In DT, eth1 is correct, not eth0. The kernel should be giving out names on a first come, first served bases, unless something is renaming them. What user space are you running? Debian? Do you have a /etc/udev/rules.d/70-persistent-net.rules? Does it have entries based on the MAC addresses?

I understand and agree that from DT spec point of view, the only network device on board should be called "eth1" still. But as a normal Linux user, I feel not comfortable when there's no "eth0" at all, but only one "eth1".
I think the defected hardware can be fixed by software, which is by dts for this case.

Yes, I have Debian running on the NAS boxes and there's /etc/udev/rules.d/70-persistent-net.rules.
It has the entry to create "eth0" based on MAC address, which I believe was generated automatically:

Quoted 2 lines

# Unknown net device (/devices/platform/mv643xx_eth_port.0/net/eth0) (mv643xx_eth_port)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="xx:xx:xx:xx:xx:xx", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

If I modify dts to let the only network device be called as "eth1", there would be still one entry generated, because there's no "eth0" at all.

I'm not sure whether this kind of hardware defect by Buffalo is intentional or not.
If it's, I guess the reason is make it harder for user to replace original firmware with self bootstrapped Linux system.
Have you met situation similar before? Please let me know your thought.

Thank you!

Cheers,
Roger

Quoted 86 lines · Andrew Lunn
Quoted 6 lines · Roger Shimizu

Dear Andrew,

Thanks for your comments!

Let me clarify and confirm with you before sending the modified patches.

Quoted 8 lines
Quoted 4 lines
Quoted 1 line

+ compatible = "buffalo,linkstation,lswxl", "buffalo,lswxl", "marvell,kirkwood-88f6281", "marvell,kirkwood";

Compatibility strings don't normally have two , in them. I would drop the first one.

So the following would be OK for you?
+ compatible = "buffalo,lswxl", "marvell,kirkwood-88f6281",
"marvell,kirkwood";

Yes, that is good.

Quoted 7 lines
Quoted 4 lines
Quoted 2 lines

+ compatible = "m25p40";

There should be a vendor in this compatibility string, probably "st".

I wrote this based on kirkwood-lsxl.dtsi and other dts files. Maybe those are quite old, and I'll follow your suggestion.

There are a few subsystems that don't require a vendor in order to work, like mtd, and i2c. But the DT specification says there should be one. So we have become more strict with time when accepting patches, but not yet gone back and added the missing vendors to existing files.

Quoted 7 lines
Quoted 7 lines
Quoted 6 lines
arch/arm/boot/dts/kirkwood-lswxl.dts new file +6 -0
+             button at 2 {
+                     label = "Power-on Switch";
+                     linux,code = <KEY_RESERVED>;
+                     linux,input-type = <5>;
+                     gpios = <&gpio1 42 GPIO_ACTIVE_LOW>;
+             };
Quoted 5 lines
Quoted 2 lines

Why did you pick these values? <KEY_POWER> is a more common code for a power button.

I copied this part exact from kirkwood-lsxl.dtsi, only changed the gpio pin number.

So maybe we will just copy what kirkwood-lsxl.dtsi does, but....

Describe to us the use case for the button. What do users expect to happen when this button is pressed. Is it actually a push button, or a slider? With more than 2 positions? Is there some user space software listening for these particular events?

Quoted 9 lines
Quoted 7 lines

arch/arm/boot/dts/kirkwood-lswxl.dts line 175

Quoted 5 lines
arch/arm/boot/dts/kirkwood-lswxl.dts new file +5 -0
+             button at 3 {
+                     label = "Power-auto Switch";
+                     linux,code = <KEY_ESC>;
+                     linux,input-type = <5>;
+                     gpios = <&gpio1 43 GPIO_ACTIVE_LOW>;

Also a bit unusual. What is this button used for?

This button is for auto power-on when getting WOL (wake-on-lan) signal.

So i would at least put WOL in the label. What sort of switch is it, push button, slider? Is there some code in user space setting up the Ethernet for WOL when this button is pressed?

Quoted 9 lines
Quoted 9 lines
Quoted 8 lines

+&eth0 {

arch/arm/boot/dts/kirkwood-lswxl.dts new file +7 -0
+     status = "okay";
+     reg = <0x76000 0x4000>;
+     clocks = <&gate_clk 19>;
+     ethernet0-port at 0 {
+             phy-handle = <&ethphy1>;
+             interrupts = <15>;
+     };
Quoted 4 lines
Quoted 1 line

Why reg, clocks and interrupts here? These values belong to eth1.

Originally, I tried the same as the dts for ls-wvl, but I see no eth0 but only eth1 in linux system,

In DT, eth1 is correct, not eth0. The kernel should be giving out names on a first come, first served bases, unless something is renaming them. What user space are you running? Debian? Do you have a /etc/udev/rules.d/70-persistent-net.rules? Does it have entries based on the MAC addresses?

Andrew

#6 lore raw

PATCH 1/2 ARM: dts: add buffalo linkstation ls-wxl/wsxl

Quoted 11 lines

Please inform me whether it's OK to keep what kirkwood-lsxl.dtsi is now for the power slider.

Quoted 5 lines

In DT, eth1 is correct, not eth0. The kernel should be giving out names on a first come, first served bases, unless something is renaming them. What user space are you running? Debian? Do you have a /etc/udev/rules.d/70-persistent-net.rules? Does it have entries based on the MAC addresses?

I understand and agree that from DT spec point of view, the only network device on board should be called "eth1" still.

No. The name in DT should not give the name of the interface. It should be possible to give this eth0 as expected, even if in DT it is eth1. The names here are separate things. The kernel will assign a name to the interface when it is registered to the network stack. Since this is the first registered interface, if should get the name eth0. What i think is happening is that something is later renaming the interface to eth1. We have to find out what is doing this rename.

Quoted 7 lines

Yes, I have Debian running on the NAS boxes and there's /etc/udev/rules.d/70-persistent-net.rules.
It has the entry to create "eth0" based on MAC address, which I believe was generated automatically:

Quoted 2 lines

# Unknown net device (/devices/platform/mv643xx_eth_port.0/net/eth0) (mv643xx_eth_port)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="xx:xx:xx:xx:xx:xx", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

So delete this entry and reboot. See if that helps.

Andrew

#7 lore raw

PATCH 1/2 ARM: dts: add buffalo linkstation ls-wxl/wsxl

Dear Andrew,

Quoted 8 lines

No. The name in DT should not give the name of the interface. It should be possible to give this eth0 as expected, even if in DT it is eth1. The names here are separate things. The kernel will assign a name to the interface when it is registered to the network stack. Since this is the first registered interface, if should get the name eth0. What i think is happening is that something is later renaming the interface to eth1. We have to find out what is doing this rename.

Yes, I confirmed what you said is absolutely right. Your detailed info is really appreciated. Thank you!

Now I changed the ethernet part of dts like the following:

+&mdio {
+ status = "okay";
+
+ ethphy1: ethernet-phy at 8 {
+ device_type = "ethernet-phy";
+ reg = <8>;
+ };
+};
+
+&eth1 {
+ status = "okay";
+
+ ethernet1-port at 0 {
+ phy-handle = <&ethphy1>;
+ };
+};

and dmesg is like:

[    0.237167] [Firmware Info]:
/ocp at f1000000/ethernet-controller at 76000/ethernet1-port at 0:
local-mac-address is not set
[    1.820596] mv643xx_eth: MV-643xx 10/100/1000 ethernet driver version 1.4
[    1.907565] mv643xx_eth_port mv643xx_eth_port.0 eth0: port 0 with
MAC address xx:xx:xx:xx:xx:xx
[    5.524704] mv643xx_eth_port mv643xx_eth_port.0 eth0: link up, 100

Mb/s, full duplex, flow control disabled

For other part of dts, I assume you agreed with my changes explained in previous email.
If you feel alright, I'll make the similar changes to "kirkwood-lswvl.dts", and submit the "PATCH v2" to you. Thank you!

Cheers,
Roger

#8 lore raw

PATCH 1/2 ARM: dts: add buffalo linkstation ls-wxl/wsxl

Quoted 22 lines · Roger Shimizu

Dear Andrew,

Quoted 8 lines

No. The name in DT should not give the name of the interface. It should be possible to give this eth0 as expected, even if in DT it is eth1. The names here are separate things. The kernel will assign a name to the interface when it is registered to the network stack. Since this is the first registered interface, if should get the name eth0. What i think is happening is that something is later renaming the interface to eth1. We have to find out what is doing this rename.

Yes, I confirmed what you said is absolutely right. Your detailed info is really appreciated. Thank you!

Now I changed the ethernet part of dts like the following:

+&mdio {

(quoted diff) +5 -0
+       status = "okay";
+
+       ethphy1: ethernet-phy at 8 {
+               device_type = "ethernet-phy";
+               reg = <8>;

Review

Quoted 10 lines
(quoted diff) +10 -0
+       };
+};
+
+&eth1 {
+       status = "okay";
+
+       ethernet1-port at 0 {
+               phy-handle = <&ethphy1>;
+       };
+};

Great, much better.

Quoted 2 lines

If you feel alright, I'll make the similar changes to "kirkwood-lswvl.dts", and submit the "PATCH v2" to you.

Great.

Andrew

#9 lore raw

PATCH v2 1/2 ARM: dts: add buffalo linkstation ls-wxl/wsxl

In reply to Roger Shimizu

Add dts file to support Buffalo Linkstation LS-WXL and LS-WSXL, which are 2-bay NAS with 3.5" and 2.5" HDD respectively.

---
 .../devicetree/bindings/arm/marvell,kirkwood.txt   |   1 +
 arch/arm/boot/dts/Makefile                         |   1 +
 arch/arm/boot/dts/kirkwood-lswxl.dts               | 301 +++++++++++++++++++++
 3 files changed, 303 insertions(+)
 create mode 100644 arch/arm/boot/dts/kirkwood-lswxl.dts
Documentation/devicetree/bindings/arm/marvell,kirkwood.txt +1 -0
index 4f40ff3..b79212f 100644
@@ -20,6 +20,7 @@ And in addition, the compatible shall be extended with the specific
 board. Currently known boards are:
 
 "buffalo,lschlv2"
+"buffalo,lswxl"
 "buffalo,lsxhl"
 "buffalo,lsxl"
 "dlink,dns-320"
arch/arm/boot/dts/Makefile +1 -0
index a8bf702..b45c974 100644
@@ -176,6 +176,7 @@ dtb-$(CONFIG_MACH_KIRKWOOD) += \
 	kirkwood-km_kirkwood.dtb \
 	kirkwood-laplug.dtb \
 	kirkwood-lschlv2.dtb \
+	kirkwood-lswxl.dtb \
 	kirkwood-lsxhl.dtb \
 	kirkwood-mplcec4.dtb \
 	kirkwood-mv88f6281gtw-ge.dtb \
arch/arm/boot/dts/kirkwood-lswxl.dts new file +301 -0

301 lines not on this page · raw message

Signature · 1 line
1.9.1
#10 lore raw

PATCH v2 1/2 ARM: dts: add buffalo linkstation ls-wxl/wsxl

Hi Roger,

Quoted 5 lines · Roger Shimizu

Add dts file to support Buffalo Linkstation LS-WXL and LS-WSXL, which are 2-bay NAS with 3.5" and 2.5" HDD respectively.

it seems that you addressed Andrew's remarks too, so

However I will wait for Andrew's formal acked-by before applying it.

Thanks,

Gregory

Quoted 339 lines
---
 .../devicetree/bindings/arm/marvell,kirkwood.txt   |   1 +
 arch/arm/boot/dts/Makefile                         |   1 +
 arch/arm/boot/dts/kirkwood-lswxl.dts               | 301 +++++++++++++++++++++
 3 files changed, 303 insertions(+)
 create mode 100644 arch/arm/boot/dts/kirkwood-lswxl.dts
Documentation/devicetree/bindings/arm/marvell,kirkwood.txt +1 -0
index 4f40ff3..b79212f 100644
@@ -20,6 +20,7 @@ And in addition, the compatible shall be extended with the specific
 board. Currently known boards are:
 
 "buffalo,lschlv2"
+"buffalo,lswxl"
 "buffalo,lsxhl"
 "buffalo,lsxl"
 "dlink,dns-320"
arch/arm/boot/dts/Makefile +1 -0
index a8bf702..b45c974 100644
@@ -176,6 +176,7 @@ dtb-$(CONFIG_MACH_KIRKWOOD) += \
 	kirkwood-km_kirkwood.dtb \
 	kirkwood-laplug.dtb \
 	kirkwood-lschlv2.dtb \
+	kirkwood-lswxl.dtb \
 	kirkwood-lsxhl.dtb \
 	kirkwood-mplcec4.dtb \
 	kirkwood-mv88f6281gtw-ge.dtb \
arch/arm/boot/dts/kirkwood-lswxl.dts new file +301 -0
new file mode 100644
index 0000000..f5db16a
@@ -0,0 +1,301 @@
+/*
+ * Device Tree file for Buffalo Linkstation LS-WXL/WSXL
+ *
+ * Copyright (C) 2015, rogershimizu at gmail.com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version
+ * 2 of the License, or (at your option) any later version.
+ */
+
+/dts-v1/;
+
+#include "kirkwood.dtsi"
+#include "kirkwood-6281.dtsi"
+
+/ {
+	model = "Buffalo Linkstation LS-WXL/WSXL";
+	compatible = "buffalo,lswxl", "marvell,kirkwood-88f6281", "marvell,kirkwood";
+
+	memory { /* 128 MB */
+		device_type = "memory";
+		reg = <0x00000000 0x8000000>;
+	};
+
+	chosen {
+		bootargs = "console=ttyS0,115200n8 earlyprintk";
+		stdout-path = &uart0;
+	};
+
+	mbus {
+		pcie-controller {
+			status = "okay";
+			pcie at 1,0 {
+				status = "okay";
+			};
+		};
+	};
+
+	ocp at f1000000 {
+		pinctrl: pin-controller at 10000 {
+			pmx_power_hdd0: pmx-power-hdd0 {
+				marvell,pins = "mpp28";
+				marvell,function = "gpio";
+			};
+			pmx_power_hdd1: pmx-power-hdd1 {
+				marvell,pins = "mpp29";
+				marvell,function = "gpio";
+			};
+			pmx_usb_vbus: pmx-usb-vbus {
+				marvell,pins = "mpp37";
+				marvell,function = "gpio";
+			};
+			pmx_fan_high: pmx-fan-high {
+				marvell,pins = "mpp47";
+				marvell,function = "gpio";
+			};
+			pmx_fan_low: pmx-fan-low {
+				marvell,pins = "mpp48";
+				marvell,function = "gpio";
+			};
+			pmx_led_hdderr0: pmx-led-hdderr0 {
+				marvell,pins = "mpp8";
+				marvell,function = "gpio";
+			};
+			pmx_led_hdderr1: pmx-led-hdderr1 {
+				marvell,pins = "mpp46";
+				marvell,function = "gpio";
+			};
+			pmx_led_alarm: pmx-led-alarm {
+				marvell,pins = "mpp49";
+				marvell,function = "gpio";
+			};
+			pmx_led_function_red: pmx-led-function-red {
+				marvell,pins = "mpp34";
+				marvell,function = "gpio";
+			};
+			pmx_led_function_blue: pmx-led-function-blue {
+				marvell,pins = "mpp36";
+				marvell,function = "gpio";
+			};
+			pmx_led_info: pmx-led-info {
+				marvell,pins = "mpp38";
+				marvell,function = "gpio";
+			};
+			pmx_led_power: pmx-led-power {
+				marvell,pins = "mpp39";
+				marvell,function = "gpio";
+			};
+			pmx_fan_lock: pmx-fan-lock {
+				marvell,pins = "mpp40";
+				marvell,function = "gpio";
+			};
+			pmx_button_function: pmx-button-function {
+				marvell,pins = "mpp41";
+				marvell,function = "gpio";
+			};
+			pmx_power_switch: pmx-power-switch {
+				marvell,pins = "mpp42";
+				marvell,function = "gpio";
+			};
+			pmx_power_auto_switch: pmx-power-auto-switch {
+				marvell,pins = "mpp43";
+				marvell,function = "gpio";
+			};
+		};
+
+		serial at 12000 {
+			status = "okay";
+		};
+
+		sata at 80000 {
+			status = "okay";
+			nr-ports = <2>;
+		};
+
+		spi at 10600 {
+			status = "okay";
+
+			m25p40 at 0 {
+				#address-cells = <1>;
+				#size-cells = <1>;
+				compatible = "st,m25p40", "jedec,spi-nor";
+				reg = <0>;
+				spi-max-frequency = <25000000>;
+				mode = <0>;
+
+				partition at 0 {
+					reg = <0x0 0x60000>;
+					label = "uboot";
+					read-only;
+				};
+
+				partition at 60000 {
+					reg = <0x60000 0x10000>;
+					label = "dtb";
+					read-only;
+				};
+
+				partition at 70000 {
+					reg = <0x70000 0x10000>;
+					label = "uboot_env";
+				};
+			};
+		};
+	};
+
+	gpio_keys {
+		compatible = "gpio-keys";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		pinctrl-0 = <&pmx_button_function &pmx_power_switch
+			     &pmx_power_auto_switch>;
+		pinctrl-names = "default";
+
+		button at 1 {
+			label = "Function Button";
+			linux,code = <KEY_OPTION>;
+			gpios = <&gpio1 41 GPIO_ACTIVE_LOW>;
+		};
+
+		button at 2 {
+			label = "Power-on Switch";
+			linux,code = <KEY_RESERVED>;
+			linux,input-type = <5>;
+			gpios = <&gpio1 42 GPIO_ACTIVE_LOW>;
+		};
+
+		button at 3 {
+			label = "Power-auto Switch";
+			linux,code = <KEY_ESC>;
+			linux,input-type = <5>;
+			gpios = <&gpio1 43 GPIO_ACTIVE_LOW>;
+		};
+	};
+
+	gpio_leds {
+		compatible = "gpio-leds";
+		pinctrl-0 = <&pmx_led_function_red &pmx_led_alarm
+			     &pmx_led_info &pmx_led_power
+			     &pmx_led_function_blue
+			     &pmx_led_hdderr0
+			     &pmx_led_hdderr1>;
+		pinctrl-names = "default";
+
+		led at 1 {
+			label = "lswxl:blue:func";
+			gpios = <&gpio1 36 GPIO_ACTIVE_LOW>;
+		};
+
+		led at 2 {
+			label = "lswxl:red:alarm";
+			gpios = <&gpio1 49 GPIO_ACTIVE_LOW>;
+		};
+
+		led at 3 {
+			label = "lswxl:amber:info";
+			gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
+		};
+
+		led at 4 {
+			label = "lswxl:blue:power";
+			gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
+		};
+
+		led at 5 {
+			label = "lswxl:red:func";
+			gpios = <&gpio1 5 GPIO_ACTIVE_LOW>;
+			default-state = "keep";
+		};
+
+		led at 6 {
+			label = "lswxl:red:hdderr0";
+			gpios = <&gpio1 2 GPIO_ACTIVE_LOW>;
+		};
+
+		led at 7 {
+			label = "lswxl:red:hdderr1";
+			gpios = <&gpio1 3 GPIO_ACTIVE_LOW>;
+		};
+	};
+
+	gpio_fan {
+		compatible = "gpio-fan";
+		pinctrl-0 = <&pmx_fan_low &pmx_fan_high &pmx_fan_lock>;
+		pinctrl-names = "default";
+
+		gpios = <&gpio0 47 GPIO_ACTIVE_LOW
+			 &gpio0 48 GPIO_ACTIVE_LOW>;
+
+		gpio-fan,speed-map = <0 3
+				1500 2
+				3250 1
+				5000 0>;
+
+		alarm-gpios = <&gpio1 49 GPIO_ACTIVE_HIGH>;
+	};
+
+	restart_poweroff {
+		compatible = "restart-poweroff";
+	};
+
+	regulators {
+		compatible = "simple-bus";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		pinctrl-0 = <&pmx_power_hdd0 &pmx_power_hdd1 &pmx_usb_vbus>;
+		pinctrl-names = "default";
+
+		usb_power: regulator at 1 {
+			compatible = "regulator-fixed";
+			reg = <1>;
+			regulator-name = "USB Power";
+			regulator-min-microvolt = <5000000>;
+			regulator-max-microvolt = <5000000>;
+			enable-active-high;
+			regulator-always-on;
+			regulator-boot-on;
+			gpio = <&gpio0 37 GPIO_ACTIVE_HIGH>;
+		};
+		hdd_power0: regulator at 2 {
+			compatible = "regulator-fixed";
+			reg = <2>;
+			regulator-name = "HDD0 Power";
+			regulator-min-microvolt = <5000000>;
+			regulator-max-microvolt = <5000000>;
+			enable-active-high;
+			regulator-always-on;
+			regulator-boot-on;
+			gpio = <&gpio0 28 GPIO_ACTIVE_HIGH>;
+		};
+		hdd_power1: regulator at 3 {
+			compatible = "regulator-fixed";
+			reg = <3>;
+			regulator-name = "HDD1 Power";
+			regulator-min-microvolt = <5000000>;
+			regulator-max-microvolt = <5000000>;
+			enable-active-high;
+			regulator-always-on;
+			regulator-boot-on;
+			gpio = <&gpio0 29 GPIO_ACTIVE_HIGH>;
+		};
+	};
+};
+
+&mdio {
+	status = "okay";
+
+	ethphy1: ethernet-phy at 8 {
+		device_type = "ethernet-phy";
+		reg = <8>;
+	};
+};
+
+&eth1 {
+	status = "okay";
+
+	ethernet1-port at 0 {
+		phy-handle = <&ethphy1>;
+	};
+};
Signature · 4 lines
Gregory Clement, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
#11 lore raw

PATCH v2 1/2 ARM: dts: add buffalo linkstation ls-wxl/wsxl

Quoted 6 lines · Gregory CLEMENT

Hi Roger,

Quoted 3 lines · Roger Shimizu

Add dts file to support Buffalo Linkstation LS-WXL and LS-WSXL, which are 2-bay NAS with 3.5" and 2.5" HDD respectively.

Quoted 8 lines
Quoted 2 lines

it seems that you addressed Andrew's remarks too, so

However I will wait for Andrew's formal acked-by before applying it.

Thanks for the reminder:

Andrew

Quoted 350 lines

Thanks,

Gregory

Quoted 339 lines
---
 .../devicetree/bindings/arm/marvell,kirkwood.txt   |   1 +
 arch/arm/boot/dts/Makefile                         |   1 +
 arch/arm/boot/dts/kirkwood-lswxl.dts               | 301 +++++++++++++++++++++
 3 files changed, 303 insertions(+)
 create mode 100644 arch/arm/boot/dts/kirkwood-lswxl.dts
Documentation/devicetree/bindings/arm/marvell,kirkwood.txt +1 -0
index 4f40ff3..b79212f 100644
@@ -20,6 +20,7 @@ And in addition, the compatible shall be extended with the specific
 board. Currently known boards are:
 
 "buffalo,lschlv2"
+"buffalo,lswxl"
 "buffalo,lsxhl"
 "buffalo,lsxl"
 "dlink,dns-320"
arch/arm/boot/dts/Makefile +1 -0
index a8bf702..b45c974 100644
@@ -176,6 +176,7 @@ dtb-$(CONFIG_MACH_KIRKWOOD) += \
 	kirkwood-km_kirkwood.dtb \
 	kirkwood-laplug.dtb \
 	kirkwood-lschlv2.dtb \
+	kirkwood-lswxl.dtb \
 	kirkwood-lsxhl.dtb \
 	kirkwood-mplcec4.dtb \
 	kirkwood-mv88f6281gtw-ge.dtb \
arch/arm/boot/dts/kirkwood-lswxl.dts new file +301 -0
new file mode 100644
index 0000000..f5db16a
@@ -0,0 +1,301 @@
+/*
+ * Device Tree file for Buffalo Linkstation LS-WXL/WSXL
+ *
+ * Copyright (C) 2015, rogershimizu at gmail.com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version
+ * 2 of the License, or (at your option) any later version.
+ */
+
+/dts-v1/;
+
+#include "kirkwood.dtsi"
+#include "kirkwood-6281.dtsi"
+
+/ {
+	model = "Buffalo Linkstation LS-WXL/WSXL";
+	compatible = "buffalo,lswxl", "marvell,kirkwood-88f6281", "marvell,kirkwood";
+
+	memory { /* 128 MB */
+		device_type = "memory";
+		reg = <0x00000000 0x8000000>;
+	};
+
+	chosen {
+		bootargs = "console=ttyS0,115200n8 earlyprintk";
+		stdout-path = &uart0;
+	};
+
+	mbus {
+		pcie-controller {
+			status = "okay";
+			pcie at 1,0 {
+				status = "okay";
+			};
+		};
+	};
+
+	ocp at f1000000 {
+		pinctrl: pin-controller at 10000 {
+			pmx_power_hdd0: pmx-power-hdd0 {
+				marvell,pins = "mpp28";
+				marvell,function = "gpio";
+			};
+			pmx_power_hdd1: pmx-power-hdd1 {
+				marvell,pins = "mpp29";
+				marvell,function = "gpio";
+			};
+			pmx_usb_vbus: pmx-usb-vbus {
+				marvell,pins = "mpp37";
+				marvell,function = "gpio";
+			};
+			pmx_fan_high: pmx-fan-high {
+				marvell,pins = "mpp47";
+				marvell,function = "gpio";
+			};
+			pmx_fan_low: pmx-fan-low {
+				marvell,pins = "mpp48";
+				marvell,function = "gpio";
+			};
+			pmx_led_hdderr0: pmx-led-hdderr0 {
+				marvell,pins = "mpp8";
+				marvell,function = "gpio";
+			};
+			pmx_led_hdderr1: pmx-led-hdderr1 {
+				marvell,pins = "mpp46";
+				marvell,function = "gpio";
+			};
+			pmx_led_alarm: pmx-led-alarm {
+				marvell,pins = "mpp49";
+				marvell,function = "gpio";
+			};
+			pmx_led_function_red: pmx-led-function-red {
+				marvell,pins = "mpp34";
+				marvell,function = "gpio";
+			};
+			pmx_led_function_blue: pmx-led-function-blue {
+				marvell,pins = "mpp36";
+				marvell,function = "gpio";
+			};
+			pmx_led_info: pmx-led-info {
+				marvell,pins = "mpp38";
+				marvell,function = "gpio";
+			};
+			pmx_led_power: pmx-led-power {
+				marvell,pins = "mpp39";
+				marvell,function = "gpio";
+			};
+			pmx_fan_lock: pmx-fan-lock {
+				marvell,pins = "mpp40";
+				marvell,function = "gpio";
+			};
+			pmx_button_function: pmx-button-function {
+				marvell,pins = "mpp41";
+				marvell,function = "gpio";
+			};
+			pmx_power_switch: pmx-power-switch {
+				marvell,pins = "mpp42";
+				marvell,function = "gpio";
+			};
+			pmx_power_auto_switch: pmx-power-auto-switch {
+				marvell,pins = "mpp43";
+				marvell,function = "gpio";
+			};
+		};
+
+		serial at 12000 {
+			status = "okay";
+		};
+
+		sata at 80000 {
+			status = "okay";
+			nr-ports = <2>;
+		};
+
+		spi at 10600 {
+			status = "okay";
+
+			m25p40 at 0 {
+				#address-cells = <1>;
+				#size-cells = <1>;
+				compatible = "st,m25p40", "jedec,spi-nor";
+				reg = <0>;
+				spi-max-frequency = <25000000>;
+				mode = <0>;
+
+				partition at 0 {
+					reg = <0x0 0x60000>;
+					label = "uboot";
+					read-only;
+				};
+
+				partition at 60000 {
+					reg = <0x60000 0x10000>;
+					label = "dtb";
+					read-only;
+				};
+
+				partition at 70000 {
+					reg = <0x70000 0x10000>;
+					label = "uboot_env";
+				};
+			};
+		};
+	};
+
+	gpio_keys {
+		compatible = "gpio-keys";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		pinctrl-0 = <&pmx_button_function &pmx_power_switch
+			     &pmx_power_auto_switch>;
+		pinctrl-names = "default";
+
+		button at 1 {
+			label = "Function Button";
+			linux,code = <KEY_OPTION>;
+			gpios = <&gpio1 41 GPIO_ACTIVE_LOW>;
+		};
+
+		button at 2 {
+			label = "Power-on Switch";
+			linux,code = <KEY_RESERVED>;
+			linux,input-type = <5>;
+			gpios = <&gpio1 42 GPIO_ACTIVE_LOW>;
+		};
+
+		button at 3 {
+			label = "Power-auto Switch";
+			linux,code = <KEY_ESC>;
+			linux,input-type = <5>;
+			gpios = <&gpio1 43 GPIO_ACTIVE_LOW>;
+		};
+	};
+
+	gpio_leds {
+		compatible = "gpio-leds";
+		pinctrl-0 = <&pmx_led_function_red &pmx_led_alarm
+			     &pmx_led_info &pmx_led_power
+			     &pmx_led_function_blue
+			     &pmx_led_hdderr0
+			     &pmx_led_hdderr1>;
+		pinctrl-names = "default";
+
+		led at 1 {
+			label = "lswxl:blue:func";
+			gpios = <&gpio1 36 GPIO_ACTIVE_LOW>;
+		};
+
+		led at 2 {
+			label = "lswxl:red:alarm";
+			gpios = <&gpio1 49 GPIO_ACTIVE_LOW>;
+		};
+
+		led at 3 {
+			label = "lswxl:amber:info";
+			gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
+		};
+
+		led at 4 {
+			label = "lswxl:blue:power";
+			gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
+		};
+
+		led at 5 {
+			label = "lswxl:red:func";
+			gpios = <&gpio1 5 GPIO_ACTIVE_LOW>;
+			default-state = "keep";
+		};
+
+		led at 6 {
+			label = "lswxl:red:hdderr0";
+			gpios = <&gpio1 2 GPIO_ACTIVE_LOW>;
+		};
+
+		led at 7 {
+			label = "lswxl:red:hdderr1";
+			gpios = <&gpio1 3 GPIO_ACTIVE_LOW>;
+		};
+	};
+
+	gpio_fan {
+		compatible = "gpio-fan";
+		pinctrl-0 = <&pmx_fan_low &pmx_fan_high &pmx_fan_lock>;
+		pinctrl-names = "default";
+
+		gpios = <&gpio0 47 GPIO_ACTIVE_LOW
+			 &gpio0 48 GPIO_ACTIVE_LOW>;
+
+		gpio-fan,speed-map = <0 3
+				1500 2
+				3250 1
+				5000 0>;
+
+		alarm-gpios = <&gpio1 49 GPIO_ACTIVE_HIGH>;
+	};
+
+	restart_poweroff {
+		compatible = "restart-poweroff";
+	};
+
+	regulators {
+		compatible = "simple-bus";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		pinctrl-0 = <&pmx_power_hdd0 &pmx_power_hdd1 &pmx_usb_vbus>;
+		pinctrl-names = "default";
+
+		usb_power: regulator at 1 {
+			compatible = "regulator-fixed";
+			reg = <1>;
+			regulator-name = "USB Power";
+			regulator-min-microvolt = <5000000>;
+			regulator-max-microvolt = <5000000>;
+			enable-active-high;
+			regulator-always-on;
+			regulator-boot-on;
+			gpio = <&gpio0 37 GPIO_ACTIVE_HIGH>;
+		};
+		hdd_power0: regulator at 2 {
+			compatible = "regulator-fixed";
+			reg = <2>;
+			regulator-name = "HDD0 Power";
+			regulator-min-microvolt = <5000000>;
+			regulator-max-microvolt = <5000000>;
+			enable-active-high;
+			regulator-always-on;
+			regulator-boot-on;
+			gpio = <&gpio0 28 GPIO_ACTIVE_HIGH>;
+		};
+		hdd_power1: regulator at 3 {
+			compatible = "regulator-fixed";
+			reg = <3>;
+			regulator-name = "HDD1 Power";
+			regulator-min-microvolt = <5000000>;
+			regulator-max-microvolt = <5000000>;
+			enable-active-high;
+			regulator-always-on;
+			regulator-boot-on;
+			gpio = <&gpio0 29 GPIO_ACTIVE_HIGH>;
+		};
+	};
+};
+
+&mdio {
+	status = "okay";
+
+	ethphy1: ethernet-phy at 8 {
+		device_type = "ethernet-phy";
+		reg = <8>;
+	};
+};
+
+&eth1 {
+	status = "okay";
+
+	ethernet1-port at 0 {
+		phy-handle = <&ethphy1>;
+	};
+};
Signature · 4 lines
Gregory Clement, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
#12 lore raw

PATCH v2 1/2 ARM: dts: add buffalo linkstation ls-wxl/wsxl

Hi Andrew, Roger,

Quoted 14 lines · Andrew Lunn
Quoted 13 lines · Gregory CLEMENT

Hi Roger,

Quoted 5 lines · Roger Shimizu

Add dts file to support Buffalo Linkstation LS-WXL and LS-WSXL, which are 2-bay NAS with 3.5" and 2.5" HDD respectively.

it seems that you addressed Andrew's remarks too, so

Quoted 7 lines
Quoted 1 line

However I will wait for Andrew's formal acked-by before applying it.

Thanks for the reminder:

Andrew

now applied on mvebu/dt

Thanks,

Gregory

Quoted 352 lines
Quoted 352 lines

Thanks,

Gregory

Quoted 339 lines
---
 .../devicetree/bindings/arm/marvell,kirkwood.txt   |   1 +
 arch/arm/boot/dts/Makefile                         |   1 +
 arch/arm/boot/dts/kirkwood-lswxl.dts               | 301 +++++++++++++++++++++
 3 files changed, 303 insertions(+)
 create mode 100644 arch/arm/boot/dts/kirkwood-lswxl.dts
Documentation/devicetree/bindings/arm/marvell,kirkwood.txt +1 -0
index 4f40ff3..b79212f 100644
@@ -20,6 +20,7 @@ And in addition, the compatible shall be extended with the specific
 board. Currently known boards are:
 
 "buffalo,lschlv2"
+"buffalo,lswxl"
 "buffalo,lsxhl"
 "buffalo,lsxl"
 "dlink,dns-320"
arch/arm/boot/dts/Makefile +1 -0
index a8bf702..b45c974 100644
@@ -176,6 +176,7 @@ dtb-$(CONFIG_MACH_KIRKWOOD) += \
 	kirkwood-km_kirkwood.dtb \
 	kirkwood-laplug.dtb \
 	kirkwood-lschlv2.dtb \
+	kirkwood-lswxl.dtb \
 	kirkwood-lsxhl.dtb \
 	kirkwood-mplcec4.dtb \
 	kirkwood-mv88f6281gtw-ge.dtb \
arch/arm/boot/dts/kirkwood-lswxl.dts new file +301 -0
new file mode 100644
index 0000000..f5db16a
@@ -0,0 +1,301 @@
+/*
+ * Device Tree file for Buffalo Linkstation LS-WXL/WSXL
+ *
+ * Copyright (C) 2015, rogershimizu at gmail.com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version
+ * 2 of the License, or (at your option) any later version.
+ */
+
+/dts-v1/;
+
+#include "kirkwood.dtsi"
+#include "kirkwood-6281.dtsi"
+
+/ {
+	model = "Buffalo Linkstation LS-WXL/WSXL";
+	compatible = "buffalo,lswxl", "marvell,kirkwood-88f6281", "marvell,kirkwood";
+
+	memory { /* 128 MB */
+		device_type = "memory";
+		reg = <0x00000000 0x8000000>;
+	};
+
+	chosen {
+		bootargs = "console=ttyS0,115200n8 earlyprintk";
+		stdout-path = &uart0;
+	};
+
+	mbus {
+		pcie-controller {
+			status = "okay";
+			pcie at 1,0 {
+				status = "okay";
+			};
+		};
+	};
+
+	ocp at f1000000 {
+		pinctrl: pin-controller at 10000 {
+			pmx_power_hdd0: pmx-power-hdd0 {
+				marvell,pins = "mpp28";
+				marvell,function = "gpio";
+			};
+			pmx_power_hdd1: pmx-power-hdd1 {
+				marvell,pins = "mpp29";
+				marvell,function = "gpio";
+			};
+			pmx_usb_vbus: pmx-usb-vbus {
+				marvell,pins = "mpp37";
+				marvell,function = "gpio";
+			};
+			pmx_fan_high: pmx-fan-high {
+				marvell,pins = "mpp47";
+				marvell,function = "gpio";
+			};
+			pmx_fan_low: pmx-fan-low {
+				marvell,pins = "mpp48";
+				marvell,function = "gpio";
+			};
+			pmx_led_hdderr0: pmx-led-hdderr0 {
+				marvell,pins = "mpp8";
+				marvell,function = "gpio";
+			};
+			pmx_led_hdderr1: pmx-led-hdderr1 {
+				marvell,pins = "mpp46";
+				marvell,function = "gpio";
+			};
+			pmx_led_alarm: pmx-led-alarm {
+				marvell,pins = "mpp49";
+				marvell,function = "gpio";
+			};
+			pmx_led_function_red: pmx-led-function-red {
+				marvell,pins = "mpp34";
+				marvell,function = "gpio";
+			};
+			pmx_led_function_blue: pmx-led-function-blue {
+				marvell,pins = "mpp36";
+				marvell,function = "gpio";
+			};
+			pmx_led_info: pmx-led-info {
+				marvell,pins = "mpp38";
+				marvell,function = "gpio";
+			};
+			pmx_led_power: pmx-led-power {
+				marvell,pins = "mpp39";
+				marvell,function = "gpio";
+			};
+			pmx_fan_lock: pmx-fan-lock {
+				marvell,pins = "mpp40";
+				marvell,function = "gpio";
+			};
+			pmx_button_function: pmx-button-function {
+				marvell,pins = "mpp41";
+				marvell,function = "gpio";
+			};
+			pmx_power_switch: pmx-power-switch {
+				marvell,pins = "mpp42";
+				marvell,function = "gpio";
+			};
+			pmx_power_auto_switch: pmx-power-auto-switch {
+				marvell,pins = "mpp43";
+				marvell,function = "gpio";
+			};
+		};
+
+		serial at 12000 {
+			status = "okay";
+		};
+
+		sata at 80000 {
+			status = "okay";
+			nr-ports = <2>;
+		};
+
+		spi at 10600 {
+			status = "okay";
+
+			m25p40 at 0 {
+				#address-cells = <1>;
+				#size-cells = <1>;
+				compatible = "st,m25p40", "jedec,spi-nor";
+				reg = <0>;
+				spi-max-frequency = <25000000>;
+				mode = <0>;
+
+				partition at 0 {
+					reg = <0x0 0x60000>;
+					label = "uboot";
+					read-only;
+				};
+
+				partition at 60000 {
+					reg = <0x60000 0x10000>;
+					label = "dtb";
+					read-only;
+				};
+
+				partition at 70000 {
+					reg = <0x70000 0x10000>;
+					label = "uboot_env";
+				};
+			};
+		};
+	};
+
+	gpio_keys {
+		compatible = "gpio-keys";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		pinctrl-0 = <&pmx_button_function &pmx_power_switch
+			     &pmx_power_auto_switch>;
+		pinctrl-names = "default";
+
+		button at 1 {
+			label = "Function Button";
+			linux,code = <KEY_OPTION>;
+			gpios = <&gpio1 41 GPIO_ACTIVE_LOW>;
+		};
+
+		button at 2 {
+			label = "Power-on Switch";
+			linux,code = <KEY_RESERVED>;
+			linux,input-type = <5>;
+			gpios = <&gpio1 42 GPIO_ACTIVE_LOW>;
+		};
+
+		button at 3 {
+			label = "Power-auto Switch";
+			linux,code = <KEY_ESC>;
+			linux,input-type = <5>;
+			gpios = <&gpio1 43 GPIO_ACTIVE_LOW>;
+		};
+	};
+
+	gpio_leds {
+		compatible = "gpio-leds";
+		pinctrl-0 = <&pmx_led_function_red &pmx_led_alarm
+			     &pmx_led_info &pmx_led_power
+			     &pmx_led_function_blue
+			     &pmx_led_hdderr0
+			     &pmx_led_hdderr1>;
+		pinctrl-names = "default";
+
+		led at 1 {
+			label = "lswxl:blue:func";
+			gpios = <&gpio1 36 GPIO_ACTIVE_LOW>;
+		};
+
+		led at 2 {
+			label = "lswxl:red:alarm";
+			gpios = <&gpio1 49 GPIO_ACTIVE_LOW>;
+		};
+
+		led at 3 {
+			label = "lswxl:amber:info";
+			gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
+		};
+
+		led at 4 {
+			label = "lswxl:blue:power";
+			gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
+		};
+
+		led at 5 {
+			label = "lswxl:red:func";
+			gpios = <&gpio1 5 GPIO_ACTIVE_LOW>;
+			default-state = "keep";
+		};
+
+		led at 6 {
+			label = "lswxl:red:hdderr0";
+			gpios = <&gpio1 2 GPIO_ACTIVE_LOW>;
+		};
+
+		led at 7 {
+			label = "lswxl:red:hdderr1";
+			gpios = <&gpio1 3 GPIO_ACTIVE_LOW>;
+		};
+	};
+
+	gpio_fan {
+		compatible = "gpio-fan";
+		pinctrl-0 = <&pmx_fan_low &pmx_fan_high &pmx_fan_lock>;
+		pinctrl-names = "default";
+
+		gpios = <&gpio0 47 GPIO_ACTIVE_LOW
+			 &gpio0 48 GPIO_ACTIVE_LOW>;
+
+		gpio-fan,speed-map = <0 3
+				1500 2
+				3250 1
+				5000 0>;
+
+		alarm-gpios = <&gpio1 49 GPIO_ACTIVE_HIGH>;
+	};
+
+	restart_poweroff {
+		compatible = "restart-poweroff";
+	};
+
+	regulators {
+		compatible = "simple-bus";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		pinctrl-0 = <&pmx_power_hdd0 &pmx_power_hdd1 &pmx_usb_vbus>;
+		pinctrl-names = "default";
+
+		usb_power: regulator at 1 {
+			compatible = "regulator-fixed";
+			reg = <1>;
+			regulator-name = "USB Power";
+			regulator-min-microvolt = <5000000>;
+			regulator-max-microvolt = <5000000>;
+			enable-active-high;
+			regulator-always-on;
+			regulator-boot-on;
+			gpio = <&gpio0 37 GPIO_ACTIVE_HIGH>;
+		};
+		hdd_power0: regulator at 2 {
+			compatible = "regulator-fixed";
+			reg = <2>;
+			regulator-name = "HDD0 Power";
+			regulator-min-microvolt = <5000000>;
+			regulator-max-microvolt = <5000000>;
+			enable-active-high;
+			regulator-always-on;
+			regulator-boot-on;
+			gpio = <&gpio0 28 GPIO_ACTIVE_HIGH>;
+		};
+		hdd_power1: regulator at 3 {
+			compatible = "regulator-fixed";
+			reg = <3>;
+			regulator-name = "HDD1 Power";
+			regulator-min-microvolt = <5000000>;
+			regulator-max-microvolt = <5000000>;
+			enable-active-high;
+			regulator-always-on;
+			regulator-boot-on;
+			gpio = <&gpio0 29 GPIO_ACTIVE_HIGH>;
+		};
+	};
+};
+
+&mdio {
+	status = "okay";
+
+	ethphy1: ethernet-phy at 8 {
+		device_type = "ethernet-phy";
+		reg = <8>;
+	};
+};
+
+&eth1 {
+	status = "okay";
+
+	ethernet1-port at 0 {
+		phy-handle = <&ethphy1>;
+	};
+};
Signature · 4 lines
Gregory Clement, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
Signature · 4 lines
Gregory Clement, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
#13 lore raw

PATCH v2 1/2 ARM: dts: add buffalo linkstation ls-wxl/wsxl

Dear Gregory, Andrew,

I'm pleased to know it's been committed.
Thanks for your review and help!

Cheers,
Roger

#14 lore raw

PATCH 2/2 ARM: dts: add buffalo linkstation ls-wvl/vl

In reply to Roger Shimizu

Add dts file to support Buffalo Linkstation LS-WVL and LS-VL, which are 3.5" HDD NAS in 2-bay and 1-bay respectively.

---
 .../devicetree/bindings/arm/marvell,kirkwood.txt   |   1 +
 arch/arm/boot/dts/Makefile                         |   1 +
 arch/arm/boot/dts/kirkwood-lswvl.dts               | 307 +++++++++++++++++++++
 3 files changed, 309 insertions(+)
 create mode 100644 arch/arm/boot/dts/kirkwood-lswvl.dts
Documentation/devicetree/bindings/arm/marvell,kirkwood.txt +1 -0
index f541506..c7c9243 100644
@@ -23,6 +23,7 @@ board. Currently known boards are:
 "buffalo,lsxhl"
 "buffalo,lsxl"
 "buffalo,lswxl"
+"buffalo,lswvl"
 "dlink,dns-320"
 "dlink,dns-320-a1"
 "dlink,dns-325"
arch/arm/boot/dts/Makefile +1 -0
index e0ebd59..a16cfca 100644
@@ -178,6 +178,7 @@ dtb-$(CONFIG_MACH_KIRKWOOD) += \
 	kirkwood-lschlv2.dtb \
 	kirkwood-lsxhl.dtb \
 	kirkwood-lswxl.dtb \
+	kirkwood-lswvl.dtb \
 	kirkwood-mplcec4.dtb \
 	kirkwood-mv88f6281gtw-ge.dtb \
 	kirkwood-nas2big.dtb \
arch/arm/boot/dts/kirkwood-lswvl.dts new file +307 -0

307 lines not on this page · raw message

Signature · 1 line
1.9.1
#15 lore raw

PATCH 2/2 ARM: dts: add buffalo linkstation ls-wvl/vl

Quoted 14 lines

+++ b/Documentation/devicetree/bindings/arm/marvell,kirkwood.txt

Documentation/devicetree/bindings/arm/marvell,kirkwood.txt +1 -0
@@ -23,6 +23,7 @@ board. Currently known boards are:
 "buffalo,lsxhl"
 "buffalo,lsxl"
 "buffalo,lswxl"
+"buffalo,lswvl"
 "dlink,dns-320"
 "dlink,dns-320-a1"
 "dlink,dns-325"
arch/arm/boot/dts/Makefile +0 -0
index e0ebd59..a16cfca 100644

arch/arm/boot/dts/Makefile dtb-$(CONFIG_MACH_KIRKWOOD) += \ · line 184

Quoted 7 lines
arch/arm/boot/dts/Makefile +1 -0
@@ -178,6 +178,7 @@ dtb-$(CONFIG_MACH_KIRKWOOD) += \
 	kirkwood-lschlv2.dtb \
 	kirkwood-lsxhl.dtb \
 	kirkwood-lswxl.dtb \
+	kirkwood-lswvl.dtb \
 	kirkwood-mplcec4.dtb \
 	kirkwood-mv88f6281gtw-ge.dtb \
 	kirkwood-nas2big.dtb \

We try to keep these in alphabetical order. So lswvl.dtb should be before lswxl.dtb in both these lists.

arch/arm/boot/dts/Makefile

Quoted 3 lines
arch/arm/boot/dts/Makefile +3 -0
+		i2c at 11000 {
+			status = "okay";
+		};

Is there something on the i2c bus?

arch/arm/boot/dts/Makefile

Quoted 4 lines
arch/arm/boot/dts/Makefile +4 -0
+
+		serial at 12000 {
+			pinctrl-0 = <&pmx_uart0>;
+			pinctrl-names = "default";

You don't need the pinctrl properties.

arch/arm/boot/dts/Makefile

Quoted 3 lines
arch/arm/boot/dts/Makefile +3 -0
+			status = "okay";
+		};
+

Thanks
Andrew

#16 lore raw

PATCH v2 2/2 ARM: dts: add buffalo linkstation ls-wvl/vl

In reply to Roger Shimizu

Add dts file to support Buffalo Linkstation LS-WVL and LS-VL, which are 3.5" HDD NAS in 2-bay and 1-bay respectively.

---
 .../devicetree/bindings/arm/marvell,kirkwood.txt   |   1 +
 arch/arm/boot/dts/Makefile                         |   1 +
 arch/arm/boot/dts/kirkwood-lswvl.dts               | 301 +++++++++++++++++++++
 3 files changed, 303 insertions(+)
 create mode 100644 arch/arm/boot/dts/kirkwood-lswvl.dts
Documentation/devicetree/bindings/arm/marvell,kirkwood.txt +1 -0
index b79212f..5171ad8 100644
@@ -20,6 +20,7 @@ And in addition, the compatible shall be extended with the specific
 board. Currently known boards are:
 
 "buffalo,lschlv2"
+"buffalo,lswvl"
 "buffalo,lswxl"
 "buffalo,lsxhl"
 "buffalo,lsxl"
arch/arm/boot/dts/Makefile +1 -0
index b45c974..5b36795 100644
@@ -176,6 +176,7 @@ dtb-$(CONFIG_MACH_KIRKWOOD) += \
 	kirkwood-km_kirkwood.dtb \
 	kirkwood-laplug.dtb \
 	kirkwood-lschlv2.dtb \
+	kirkwood-lswvl.dtb \
 	kirkwood-lswxl.dtb \
 	kirkwood-lsxhl.dtb \
 	kirkwood-mplcec4.dtb \
arch/arm/boot/dts/kirkwood-lswvl.dts new file +301 -0

301 lines not on this page · raw message

Signature · 1 line
1.9.1
#17 lore raw

PATCH v2 2/2 ARM: dts: add buffalo linkstation ls-wvl/vl

Hi Roger,

Quoted 5 lines · Roger Shimizu

Add dts file to support Buffalo Linkstation LS-WVL and LS-VL, which are 3.5" HDD NAS in 2-bay and 1-bay respectively.

it seems that you addressed Andrew's remarks too, so

However I will wait for Andrew's formal acked-by before applying it.

Thanks,

Gregory

Quoted 339 lines
---
 .../devicetree/bindings/arm/marvell,kirkwood.txt   |   1 +
 arch/arm/boot/dts/Makefile                         |   1 +
 arch/arm/boot/dts/kirkwood-lswvl.dts               | 301 +++++++++++++++++++++
 3 files changed, 303 insertions(+)
 create mode 100644 arch/arm/boot/dts/kirkwood-lswvl.dts
Documentation/devicetree/bindings/arm/marvell,kirkwood.txt +1 -0
index b79212f..5171ad8 100644
@@ -20,6 +20,7 @@ And in addition, the compatible shall be extended with the specific
 board. Currently known boards are:
 
 "buffalo,lschlv2"
+"buffalo,lswvl"
 "buffalo,lswxl"
 "buffalo,lsxhl"
 "buffalo,lsxl"
arch/arm/boot/dts/Makefile +1 -0
index b45c974..5b36795 100644
@@ -176,6 +176,7 @@ dtb-$(CONFIG_MACH_KIRKWOOD) += \
 	kirkwood-km_kirkwood.dtb \
 	kirkwood-laplug.dtb \
 	kirkwood-lschlv2.dtb \
+	kirkwood-lswvl.dtb \
 	kirkwood-lswxl.dtb \
 	kirkwood-lsxhl.dtb \
 	kirkwood-mplcec4.dtb \
arch/arm/boot/dts/kirkwood-lswvl.dts new file +301 -0
new file mode 100644
index 0000000..ad35329
@@ -0,0 +1,301 @@
+/*
+ * Device Tree file for Buffalo Linkstation LS-WVL/VL
+ *
+ * Copyright (C) 2015, rogershimizu at gmail.com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version
+ * 2 of the License, or (at your option) any later version.
+ */
+
+/dts-v1/;
+
+#include "kirkwood.dtsi"
+#include "kirkwood-6282.dtsi"
+
+/ {
+	model = "Buffalo Linkstation LS-WVL/VL";
+	compatible = "buffalo,lswvl", "buffalo,lsvl", "marvell,kirkwood-88f6282", "marvell,kirkwood";
+
+	memory { /* 256 MB */
+		device_type = "memory";
+		reg = <0x00000000 0x10000000>;
+	};
+
+	chosen {
+		bootargs = "console=ttyS0,115200n8 earlyprintk";
+		stdout-path = &uart0;
+	};
+
+	mbus {
+		pcie-controller {
+			status = "okay";
+			pcie at 1,0 {
+				status = "okay";
+			};
+		};
+	};
+
+	ocp at f1000000 {
+		pinctrl: pin-controller at 10000 {
+			pmx_power_hdd0: pmx-power-hdd0 {
+				marvell,pins = "mpp8";
+				marvell,function = "gpio";
+			};
+			pmx_power_hdd1: pmx-power-hdd1 {
+				marvell,pins = "mpp9";
+				marvell,function = "gpio";
+			};
+			pmx_usb_vbus: pmx-usb-vbus {
+				marvell,pins = "mpp12";
+				marvell,function = "gpio";
+			};
+			pmx_fan_high: pmx-fan-high {
+				marvell,pins = "mpp16";
+				marvell,function = "gpio";
+			};
+			pmx_fan_low: pmx-fan-low {
+				marvell,pins = "mpp17";
+				marvell,function = "gpio";
+			};
+			pmx_led_hdderr0: pmx-led-hdderr0 {
+				marvell,pins = "mpp34";
+				marvell,function = "gpio";
+			};
+			pmx_led_hdderr1: pmx-led-hdderr1 {
+				marvell,pins = "mpp35";
+				marvell,function = "gpio";
+			};
+			pmx_led_alarm: pmx-led-alarm {
+				marvell,pins = "mpp36";
+				marvell,function = "gpio";
+			};
+			pmx_led_function_red: pmx-led-function_red {
+				marvell,pins = "mpp37";
+				marvell,function = "gpio";
+			};
+			pmx_led_info: pmx-led-info {
+				marvell,pins = "mpp38";
+				marvell,function = "gpio";
+			};
+			pmx_led_function_blue: pmx-led-function-blue {
+				marvell,pins = "mpp39";
+				marvell,function = "gpio";
+			};
+			pmx_led_power: pmx-led-power {
+				marvell,pins = "mpp40";
+				marvell,function = "gpio";
+			};
+			pmx_fan_lock: pmx-fan-lock {
+				marvell,pins = "mpp43";
+				marvell,function = "gpio";
+			};
+			pmx_button_function: pmx-button-function {
+				marvell,pins = "mpp45";
+				marvell,function = "gpio";
+			};
+			pmx_power_switch: pmx-power-switch {
+				marvell,pins = "mpp46";
+				marvell,function = "gpio";
+			};
+			pmx_power_auto_switch: pmx-power-auto-switch {
+				marvell,pins = "mpp47";
+				marvell,function = "gpio";
+			};
+		};
+
+		serial at 12000 {
+			status = "okay";
+		};
+
+		sata at 80000 {
+			status = "okay";
+			nr-ports = <2>;
+		};
+
+		spi at 10600 {
+			status = "okay";
+
+			m25p40 at 0 {
+				#address-cells = <1>;
+				#size-cells = <1>;
+				compatible = "st,m25p40", "jedec,spi-nor";
+				reg = <0>;
+				spi-max-frequency = <25000000>;
+				mode = <0>;
+
+				partition at 0 {
+					reg = <0x0 0x60000>;
+					label = "uboot";
+					read-only;
+				};
+
+				partition at 60000 {
+					reg = <0x60000 0x10000>;
+					label = "dtb";
+					read-only;
+				};
+
+				partition at 70000 {
+					reg = <0x70000 0x10000>;
+					label = "uboot_env";
+				};
+			};
+		};
+	};
+
+	gpio_keys {
+		compatible = "gpio-keys";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		pinctrl-0 = <&pmx_button_function &pmx_power_switch
+			     &pmx_power_auto_switch>;
+		pinctrl-names = "default";
+
+		button at 1 {
+			label = "Function Button";
+			linux,code = <KEY_OPTION>;
+			gpios = <&gpio0 45 GPIO_ACTIVE_LOW>;
+		};
+
+		button at 2 {
+			label = "Power-on Switch";
+			linux,code = <KEY_RESERVED>;
+			linux,input-type = <5>;
+			gpios = <&gpio0 46 GPIO_ACTIVE_LOW>;
+		};
+
+		button at 3 {
+			label = "Power-auto Switch";
+			linux,code = <KEY_ESC>;
+			linux,input-type = <5>;
+			gpios = <&gpio0 47 GPIO_ACTIVE_LOW>;
+		};
+	};
+
+	gpio_leds {
+		compatible = "gpio-leds";
+		pinctrl-0 = <&pmx_led_function_red &pmx_led_alarm
+			     &pmx_led_info &pmx_led_power
+			     &pmx_led_function_blue
+			     &pmx_led_hdderr0
+			     &pmx_led_hdderr1>;
+		pinctrl-names = "default";
+
+		led at 1 {
+			label = "lswvl:red:alarm";
+			gpios = <&gpio0 36 GPIO_ACTIVE_LOW>;
+		};
+
+		led at 2 {
+			label = "lswvl:red:func";
+			gpios = <&gpio0 37 GPIO_ACTIVE_LOW>;
+		};
+
+		led at 3 {
+			label = "lswvl:amber:info";
+			gpios = <&gpio0 38 GPIO_ACTIVE_LOW>;
+		};
+
+		led at 4 {
+			label = "lswvl:blue:func";
+			gpios = <&gpio0 39 GPIO_ACTIVE_LOW>;
+		};
+
+		led at 5 {
+			label = "lswvl:blue:power";
+			gpios = <&gpio0 40 GPIO_ACTIVE_LOW>;
+			default-state = "keep";
+		};
+
+		led at 6 {
+			label = "lswvl:red:hdderr0";
+			gpios = <&gpio0 34 GPIO_ACTIVE_LOW>;
+		};
+
+		led at 7 {
+			label = "lswvl:red:hdderr1";
+			gpios = <&gpio0 35 GPIO_ACTIVE_LOW>;
+		};
+	};
+
+	gpio_fan {
+		compatible = "gpio-fan";
+		pinctrl-0 = <&pmx_fan_low &pmx_fan_high &pmx_fan_lock>;
+		pinctrl-names = "default";
+
+		gpios = <&gpio0 17 GPIO_ACTIVE_LOW
+			 &gpio0 16 GPIO_ACTIVE_LOW>;
+
+		gpio-fan,speed-map = <0 3
+				1500 2
+				3250 1
+				5000 0>;
+
+		alarm-gpios = <&gpio0 43 GPIO_ACTIVE_HIGH>;
+	};
+
+	restart_poweroff {
+		compatible = "restart-poweroff";
+	};
+
+	regulators {
+		compatible = "simple-bus";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		pinctrl-0 = <&pmx_power_hdd0 &pmx_power_hdd1 &pmx_usb_vbus>;
+		pinctrl-names = "default";
+
+		usb_power: regulator at 1 {
+			compatible = "regulator-fixed";
+			reg = <1>;
+			regulator-name = "USB Power";
+			regulator-min-microvolt = <5000000>;
+			regulator-max-microvolt = <5000000>;
+			enable-active-high;
+			regulator-always-on;
+			regulator-boot-on;
+			gpio = <&gpio0 12 GPIO_ACTIVE_HIGH>;
+		};
+		hdd_power0: regulator at 2 {
+			compatible = "regulator-fixed";
+			reg = <2>;
+			regulator-name = "HDD0 Power";
+			regulator-min-microvolt = <5000000>;
+			regulator-max-microvolt = <5000000>;
+			enable-active-high;
+			regulator-always-on;
+			regulator-boot-on;
+			gpio = <&gpio0 8 GPIO_ACTIVE_HIGH>;
+		};
+		hdd_power1: regulator at 3 {
+			compatible = "regulator-fixed";
+			reg = <3>;
+			regulator-name = "HDD1 Power";
+			regulator-min-microvolt = <5000000>;
+			regulator-max-microvolt = <5000000>;
+			enable-active-high;
+			regulator-always-on;
+			regulator-boot-on;
+			gpio = <&gpio0 9 GPIO_ACTIVE_HIGH>;
+		};
+	};
+};
+
+&mdio {
+	status = "okay";
+
+	ethphy0: ethernet-phy at 0 {
+		device_type = "ethernet-phy";
+		reg = <0>;
+	};
+};
+
+&eth0 {
+	status = "okay";
+
+	ethernet0-port at 0 {
+		phy-handle = <&ethphy0>;
+	};
+};
Signature · 4 lines
Gregory Clement, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
#18 lore raw

PATCH v2 2/2 ARM: dts: add buffalo linkstation ls-wvl/vl

Quoted 9 lines · Gregory CLEMENT

Hi Roger,

Quoted 5 lines · Roger Shimizu

Add dts file to support Buffalo Linkstation LS-WVL and LS-VL, which are 3.5" HDD NAS in 2-bay and 1-bay respectively.

Quoted 6 lines

it seems that you addressed Andrew's remarks too, so

However I will wait for Andrew's formal acked-by before applying it.

Hi Gregory

One minor nit pick. Maybe you can fix it while committing?

Quoted 5 lines

arch/arm/boot/dts/kirkwood-lswvl.dts line 74

Quoted 5 lines
arch/arm/boot/dts/kirkwood-lswvl.dts new file +5 -0
+			pmx_led_alarm: pmx-led-alarm {
+				marvell,pins = "mpp36";
+				marvell,function = "gpio";
+			};
+			pmx_led_function_red: pmx-led-function_red {

Second _red should be -red.

Quoted 3 lines

arch/arm/boot/dts/kirkwood-lswvl.dts line 77

Quoted 3 lines
arch/arm/boot/dts/kirkwood-lswvl.dts new file +3 -0
+				marvell,pins = "mpp37";
+				marvell,function = "gpio";
+			};

Other than that,

Thanks
Andrew

#19 lore raw

PATCH v2 2/2 ARM: dts: add buffalo linkstation ls-wvl/vl

Hi Andrew, Roger,

Quoted 21 lines · Andrew Lunn
Quoted 9 lines · Gregory CLEMENT

Hi Roger,

Quoted 5 lines · Roger Shimizu

Add dts file to support Buffalo Linkstation LS-WVL and LS-VL, which are 3.5" HDD NAS in 2-bay and 1-bay respectively.

Quoted 6 lines

it seems that you addressed Andrew's remarks too, so

However I will wait for Andrew's formal acked-by before applying it.

Hi Gregory

One minor nit pick. Maybe you can fix it while committing?

Quoted 7 lines
Quoted 5 lines

arch/arm/boot/dts/kirkwood-lswvl.dts line 74

Quoted 5 lines
arch/arm/boot/dts/kirkwood-lswvl.dts new file +5 -0
+			pmx_led_alarm: pmx-led-alarm {
+				marvell,pins = "mpp36";
+				marvell,function = "gpio";
+			};
+			pmx_led_function_red: pmx-led-function_red {

Second _red should be -red.

OK I will take care of it.

Roger, you wont have to send a new version for fixing it.

Thanks,

Gregory

Quoted 12 lines
Quoted 4 lines

arch/arm/boot/dts/kirkwood-lswvl.dts line 77

Quoted 4 lines
arch/arm/boot/dts/kirkwood-lswvl.dts new file +3 -0
+				marvell,pins = "mpp37";
+				marvell,function = "gpio";
+			};

Other than that,

Thanks
Andrew

Signature · 4 lines
Gregory Clement, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
#20 lore raw

PATCH v2 2/2 ARM: dts: add buffalo linkstation ls-wvl/vl

In reply to Andrew Lunn

Hi Andrew, Roger,

Quoted 29 lines · Andrew Lunn
Quoted 9 lines · Gregory CLEMENT

Hi Roger,

Quoted 5 lines · Roger Shimizu

Add dts file to support Buffalo Linkstation LS-WVL and LS-VL, which are 3.5" HDD NAS in 2-bay and 1-bay respectively.

Quoted 6 lines

it seems that you addressed Andrew's remarks too, so

However I will wait for Andrew's formal acked-by before applying it.

Hi Gregory

One minor nit pick. Maybe you can fix it while committing?

Quoted 5 lines

arch/arm/boot/dts/kirkwood-lswvl.dts line 74

Quoted 5 lines
arch/arm/boot/dts/kirkwood-lswvl.dts new file +5 -0
+			pmx_led_alarm: pmx-led-alarm {
+				marvell,pins = "mpp36";
+				marvell,function = "gpio";
+			};
+			pmx_led_function_red: pmx-led-function_red {

Second _red should be -red.

Quoted 7 lines
Quoted 3 lines

arch/arm/boot/dts/kirkwood-lswvl.dts line 77

Quoted 3 lines
arch/arm/boot/dts/kirkwood-lswvl.dts new file +3 -0
+				marvell,pins = "mpp37";
+				marvell,function = "gpio";
+			};

Other than that,

Now applied on mvebu/dt with the typo fixed

Thanks,

Gregory

Quoted 4 lines

Thanks
Andrew

Signature · 4 lines
Gregory Clement, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com