// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * Copyright 2013 Sascha Hauer, Pengutronix
 * Copyright 2013-2017 Markus Niebel <Markus.Niebel@tq-group.com>
 */

#include <dt-bindings/gpio/gpio.h>

&fec {
	/delete-property/ interrupts;
	interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>,
			      <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>;
	fsl,err006687-workaround-present;
};

&i2c1 {
	pinctrl-names = "default", "gpio";
	pinctrl-0 = <&pinctrl_i2c1>;
	pinctrl-1 = <&pinctrl_i2c1_recovery>;
	scl-gpios = <&gpio5 27 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
	sda-gpios = <&gpio5 26 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
	clock-frequency = <100000>;
	status = "okay";

	pmic: pmic@8 {
		compatible = "fsl,pfuze100";
		reg = <0x08>;
	};

	sensor@48 {
		compatible = "national,lm75";
		reg = <0x48>;
	};

	eeprom@50 {
		compatible = "st,24c64", "atmel,24c64";
		reg = <0x50>;
		pagesize = <32>;
	};
};

&iomuxc {
	/*
	 * This pinmuxing is required for the ERR006687 workaround. Board
	 * DTS files that enable the FEC controller with
	 * fsl,err006687-workaround-present must include this group.
	 */
	pinctrl_enet_fix: enetfixgrp {
		fsl,pins = <
			/* ENET ping patch */
			MX6QDL_PAD_GPIO_6__ENET_IRQ 0x000b1
		>;
	};
};
