/*
 * Copyright 2012 Freescale Semiconductor, Inc.
 * Copyright 2011 Linaro Ltd.
 *
 * The code contained herein is licensed under the GNU General Public
 * License. You may obtain a copy of the GNU General Public License
 * Version 2 or later at the following locations:
 *
 * http://www.opensource.org/licenses/gpl-license.html
 * http://www.gnu.org/copyleft/gpl.html
 */


#include "imx6q-sabresd.dts"

&cpu0 {
	arm-supply = <&reg_arm>;
	soc-supply = <&reg_soc>;
	pu-supply = <&reg_pu>; /* use pu_dummy if VDDSOC share with VDDPU */
};

&gpc {
	fsl,ldo-bypass = <0>; /* use ldo-bypass, u-boot will check it and configure */
	fsl,wdog-reset = <1>; /* watchdog select of reset source */
	pu-supply = <&reg_pu>; /* ldo-bypass:use pu_dummy if VDDSOC share with VDDPU */
};

&gpu {
	pu-supply = <&reg_pu>; /* ldo-bypass:use pu_dummy if VDDSOC share with VDDPU */
};

&vpu {
	pu-supply = <&reg_pu>; /* ldo-bypass:use pu_dummy if VDDSOC share with VDDPU */
};

&wdog1 {
	status = "okay";
};

&wdog2 {
	status = "disabled";
};
