linux/arch/arm/boot/dts/kirkwood-openblocks_a6.dts
Jason Cooper 7e84a8d13f ARM: dts: kirkwood: Fix Openblock A6 external GPIO pins
By assigning the pin hog to the pinctrl node, we correctly configure the
MPPs.  However, they are not available to userspace.

Fix this by assigning the hogs to the gpio node.

After this, the following works as expected:

  # echo 28 >/sys/class/gpio/export
  # echo low >/sys/class/gpio/gpio28/direction

[gregory.clement@free-electrons.com: fix title]
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
2016-08-26 11:08:32 +02:00

184 lines
3.0 KiB
Plaintext

/dts-v1/;
#include "kirkwood.dtsi"
#include "kirkwood-6282.dtsi"
/ {
model = "Plat'Home OpenBlocksA6";
compatible = "plathome,openblocks-a6", "marvell,kirkwood-88f6283", "marvell,kirkwood";
memory {
device_type = "memory";
reg = <0x00000000 0x20000000>;
};
chosen {
bootargs = "console=ttyS0,115200n8 earlyprintk";
stdout-path = &uart0;
};
ocp@f1000000 {
serial@12000 {
status = "okay";
};
serial@12100 {
status = "okay";
};
sata@80000 {
nr-ports = <1>;
status = "okay";
};
i2c@11100 {
status = "okay";
s35390a: s35390a@30 {
compatible = "sii,s35390a";
reg = <0x30>;
};
};
pinctrl: pin-controller@10000 {
pinctrl-0 = <&pmx_dip_switches>;
pinctrl-names = "default";
pmx_uart0: pmx-uart0 {
marvell,pins = "mpp10", "mpp11", "mpp15",
"mpp16";
marvell,function = "uart0";
};
pmx_uart1: pmx-uart1 {
marvell,pins = "mpp13", "mpp14", "mpp8",
"mpp9";
marvell,function = "uart1";
};
pmx_sysrst: pmx-sysrst {
marvell,pins = "mpp6";
marvell,function = "sysrst";
};
pmx_dip_switches: pmx-dip-switches {
marvell,pins = "mpp20", "mpp21", "mpp22", "mpp23";
marvell,function = "gpio";
};
pmx_gpio_header: pmx-gpio-header {
marvell,pins = "mpp24", "mpp25", "mpp26", "mpp27",
"mpp28", "mpp29", "mpp30", "mpp31";
marvell,function = "gpio";
};
pmx_gpio_init: pmx-init {
marvell,pins = "mpp38";
marvell,function = "gpio";
};
pmx_usb_oc: pmx-usb-oc {
marvell,pins = "mpp39";
marvell,function = "gpio";
};
pmx_leds: pmx-leds {
marvell,pins = "mpp41", "mpp42", "mpp43";
marvell,function = "gpio";
};
};
};
gpio-leds {
compatible = "gpio-leds";
pinctrl-0 = <&pmx_leds>;
pinctrl-names = "default";
led-red {
label = "obsa6:red:stat";
gpios = <&gpio1 9 GPIO_ACTIVE_LOW>;
};
led-green {
label = "obsa6:green:stat";
gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
};
led-yellow {
label = "obsa6:yellow:stat";
gpios = <&gpio1 11 GPIO_ACTIVE_LOW>;
};
};
gpio_keys {
compatible = "gpio-keys";
pinctrl-0 = <&pmx_gpio_init>;
pinctrl-names = "default";
#address-cells = <1>;
#size-cells = <0>;
power {
label = "Init Button";
linux,code = <KEY_POWER>;
gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
};
};
};
&nand {
chip-delay = <25>;
status = "okay";
partition@0 {
label = "uboot";
reg = <0x0 0x90000>;
};
partition@90000 {
label = "env";
reg = <0x90000 0x44000>;
};
partition@d4000 {
label = "test";
reg = <0xd4000 0x24000>;
};
partition@f4000 {
label = "conf";
reg = <0xf4000 0x400000>;
};
partition@4f4000 {
label = "linux";
reg = <0x4f4000 0x1d20000>;
};
partition@2214000 {
label = "user";
reg = <0x2214000 0x1dec000>;
};
};
&mdio {
status = "okay";
ethphy0: ethernet-phy@0 {
reg = <0>;
};
};
&eth0 {
status = "okay";
ethernet0-port@0 {
phy-handle = <&ethphy0>;
};
};
&gpio0 {
status = "okay";
pinctrl-0 = <&pmx_gpio_header>;
pinctrl-names = "default";
};