kernel-fxtec-pro1x/arch/arm/boot/dts/kirkwood-topkick.dts
Jason Cooper 93fff4ce19 ARM: kirkwood: of_serial: fix clock gating by removing clock-frequency
When DT support for kirkwood was first introduced, there was no clock
infrastructure.  As a result, we had to manually pass the
clock-frequency to the driver from the device node.

Unfortunately, on kirkwood, with minimal config or all module configs,
clock-frequency breaks booting because of_serial doesn't consume the
gate_clk when clock-frequency is defined.

The end result on kirkwood is that runit gets gated, and then the boot
fails when the kernel tries to write to the serial port.

Fix the issue by removing the clock-frequency parameter from all
kirkwood dts files.

Booted on dreamplug without earlyprintk and successfully logged in via
ttyS0.

Reported-by: Simon Baatz <gmbnomis@gmail.com>
Tested-by: Simon Baatz <gmbnomis@gmail.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
2013-03-08 21:32:52 +00:00

203 lines
3.8 KiB
Text

/dts-v1/;
/include/ "kirkwood.dtsi"
/include/ "kirkwood-6282.dtsi"
/ {
model = "Univeral Scientific Industrial Co. Topkick-1281P2";
compatible = "usi,topkick-1281P2", "usi,topkick", "marvell,kirkwood-88f6282", "marvell,kirkwood";
memory {
device_type = "memory";
reg = <0x00000000 0x10000000>;
};
chosen {
bootargs = "console=ttyS0,115200n8 earlyprintk";
};
ocp@f1000000 {
pinctrl: pinctrl@10000 {
/*
* GPIO LED layout
*
* /-SYS_LED(2)
* |
* | /-DISK_LED
* | |
* | | /-WLAN_LED(2)
* | | |
* [SW] [*] [*] [*]
*/
/*
* Switch positions
*
* /-SW_LEFT(2)
* |
* | /-SW_IDLE
* | |
* | | /-SW_RIGHT
* | | |
* PS [L] [I] [R] LEDS
*/
pinctrl-0 = < &pmx_led_disk_yellow
&pmx_sata0_pwr_enable
&pmx_led_sys_red
&pmx_led_sys_blue
&pmx_led_wifi_green
&pmx_sw_left
&pmx_sw_right
&pmx_sw_idle
&pmx_sw_left2
&pmx_led_wifi_yellow
&pmx_uart0
&pmx_nand
&pmx_twsi0 >;
pinctrl-names = "default";
pmx_led_disk_yellow: pmx-led-disk-yellow {
marvell,pins = "mpp21";
marvell,function = "gpio";
};
pmx_sata0_pwr_enable: pmx-sata0-pwr-enable {
marvell,pins = "mpp36";
marvell,function = "gpio";
};
pmx_led_sys_red: pmx-led-sys-red {
marvell,pins = "mpp37";
marvell,function = "gpio";
};
pmx_led_sys_blue: pmx-led-sys-blue {
marvell,pins = "mpp38";
marvell,function = "gpio";
};
pmx_led_wifi_green: pmx-led-wifi-green {
marvell,pins = "mpp39";
marvell,function = "gpio";
};
pmx_sw_left: pmx-sw-left {
marvell,pins = "mpp43";
marvell,function = "gpio";
};
pmx_sw_right: pmx-sw-right {
marvell,pins = "mpp44";
marvell,function = "gpio";
};
pmx_sw_idle: pmx-sw-idle {
marvell,pins = "mpp45";
marvell,function = "gpio";
};
pmx_sw_left2: pmx-sw-left2 {
marvell,pins = "mpp46";
marvell,function = "gpio";
};
pmx_led_wifi_yellow: pmx-led-wifi-yellow {
marvell,pins = "mpp48";
marvell,function = "gpio";
};
};
serial@12000 {
status = "ok";
};
nand@3000000 {
status = "okay";
partition@0 {
label = "u-boot";
reg = <0x0000000 0x180000>;
};
partition@180000 {
label = "u-boot env";
reg = <0x0180000 0x20000>;
};
partition@200000 {
label = "uImage";
reg = <0x0200000 0x600000>;
};
partition@800000 {
label = "uInitrd";
reg = <0x0800000 0x1000000>;
};
partition@1800000 {
label = "rootfs";
reg = <0x1800000 0xe800000>;
};
};
sata@80000 {
status = "okay";
nr-ports = <1>;
};
i2c@11000 {
status = "ok";
};
mvsdio@90000 {
pinctrl-0 = <&pmx_sdio>;
pinctrl-names = "default";
status = "okay";
/* No CD or WP GPIOs */
};
};
gpio-leds {
compatible = "gpio-leds";
disk {
label = "topkick:yellow:disk";
gpios = <&gpio0 21 1>;
linux,default-trigger = "ide-disk";
};
system2 {
label = "topkick:red:system";
gpios = <&gpio1 5 1>;
};
system {
label = "topkick:blue:system";
gpios = <&gpio1 6 1>;
default-state = "on";
};
wifi {
label = "topkick:green:wifi";
gpios = <&gpio1 7 1>;
};
wifi2 {
label = "topkick:yellow:wifi";
gpios = <&gpio1 16 1>;
};
};
regulators {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <0>;
sata0_power: regulator@1 {
compatible = "regulator-fixed";
reg = <1>;
regulator-name = "SATA0 Power";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
enable-active-high;
regulator-always-on;
regulator-boot-on;
gpio = <&gpio1 4 0>;
};
};
};