// SPDX-License-Identifier: GPL-2.0+ OR X11
/*
 * Copyright (c) 2014, 2015 FUKAUMI Naoki <naobsd@gmail.com>
 */

/dts-v1/;
#include "rk3288-firefly.dtsi"

/ {
	model = "Firefly-RK3288";
	compatible = "firefly,firefly-rk3288", "rockchip,rk3288";

	chosen {
		stdout-path = &uart2;
	};

	config {
		u-boot,dm-pre-reloc;
		u-boot,boot-led = "firefly:green:power";
	};
};

&dmc {
	rockchip,pctl-timing = <0x29a 0xc8 0x1f8 0x42 0x4e 0x4 0xea 0xa
		0x5 0x0 0xa 0x7 0x19 0x24 0xa 0x7
		0x5 0xa 0x5 0x200 0x5 0x10 0x40 0x0
		0x1 0x7 0x7 0x4 0xc 0x43 0x100 0x0
		0x5 0x0>;
	rockchip,phy-timing = <0x48f9aab4 0xea0910 0x1002c200
		0xa60 0x40 0x10 0x0>;
	/* Add a dummy value to cause of-platdata think this is bytes */
	rockchip,sdram-params = <0x30B25564 0x627 3 666000000 3 9 1>;
};

&ir {
	gpios = <&gpio7 0 GPIO_ACTIVE_LOW>;
};

&pinctrl {
	u-boot,dm-pre-reloc;
	act8846 {
		pmic_vsel: pmic-vsel {
			rockchip,pins = <7 14 RK_FUNC_GPIO &pcfg_output_low>;
		};
	};

	ir {
		ir_int: ir-int {
			rockchip,pins = <7 0 RK_FUNC_GPIO &pcfg_pull_up>;
		};
	};
	usb_host {
		host_vbus_drv: host-vbus-drv {
			rockchip,pins = <0 14 RK_FUNC_GPIO &pcfg_pull_none>;
		};
	};
};

&pwm1 {
	status = "okay";
};

&uart2 {
	u-boot,dm-pre-reloc;
	reg-shift = <2>;
};

&usb_host1 {
	vbus-supply = <&vcc_host_5v>;
	status = "okay";
};

&sdmmc {
	u-boot,dm-pre-reloc;
};

&gpio3 {
	u-boot,dm-pre-reloc;
};

&gpio8 {
	u-boot,dm-pre-reloc;
};
