162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-or-later
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (c) 2018 Protonic Holland
462306a36Sopenharmony_ci */
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci/dts-v1/;
762306a36Sopenharmony_ci#include "imx6q.dtsi"
862306a36Sopenharmony_ci#include "imx6qdl-prti6q.dtsi"
962306a36Sopenharmony_ci#include <dt-bindings/leds/common.h>
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci/ {
1262306a36Sopenharmony_ci	model = "Protonic WD2 board";
1362306a36Sopenharmony_ci	compatible = "prt,prtwd2", "fsl,imx6q";
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ci	memory@10000000 {
1662306a36Sopenharmony_ci		device_type = "memory";
1762306a36Sopenharmony_ci		reg = <0x10000000 0x20000000>;
1862306a36Sopenharmony_ci	};
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ci	memory@80000000 {
2162306a36Sopenharmony_ci		device_type = "memory";
2262306a36Sopenharmony_ci		reg = <0x80000000 0x20000000>;
2362306a36Sopenharmony_ci	};
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ci	clk50m_phy: phy-clock {
2662306a36Sopenharmony_ci		compatible = "fixed-clock";
2762306a36Sopenharmony_ci		#clock-cells = <0>;
2862306a36Sopenharmony_ci		clock-frequency = <50000000>;
2962306a36Sopenharmony_ci		clock-output-names = "enet_ref_pad";
3062306a36Sopenharmony_ci	};
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci	usdhc2_wifi_pwrseq: usdhc2_wifi_pwrseq {
3362306a36Sopenharmony_ci		compatible = "mmc-pwrseq-simple";
3462306a36Sopenharmony_ci		pinctrl-names = "default";
3562306a36Sopenharmony_ci		pinctrl-0 = <&pinctrl_wifi_npd>;
3662306a36Sopenharmony_ci		reset-gpios = <&gpio6 10 GPIO_ACTIVE_LOW>;
3762306a36Sopenharmony_ci	};
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ci	/* PRTWD2 rev 1 bitbang I2C for Ethernet Switch */
4062306a36Sopenharmony_ci	i2c {
4162306a36Sopenharmony_ci		compatible = "i2c-gpio";
4262306a36Sopenharmony_ci		pinctrl-names = "default";
4362306a36Sopenharmony_ci		pinctrl-0 = <&pinctrl_i2c4>;
4462306a36Sopenharmony_ci		sda-gpios = <&gpio1 22 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
4562306a36Sopenharmony_ci		scl-gpios = <&gpio1 31 GPIO_ACTIVE_HIGH>;
4662306a36Sopenharmony_ci		i2c-gpio,delay-us = <20>;	/* ~10 kHz */
4762306a36Sopenharmony_ci		i2c-gpio,scl-output-only;
4862306a36Sopenharmony_ci		#address-cells = <1>;
4962306a36Sopenharmony_ci		#size-cells = <0>;
5062306a36Sopenharmony_ci	};
5162306a36Sopenharmony_ci};
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ci&can1 {
5462306a36Sopenharmony_ci	pinctrl-names = "default";
5562306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_can1 &pinctrl_can1phy>;
5662306a36Sopenharmony_ci	status = "okay";
5762306a36Sopenharmony_ci};
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_ci&clks {
6062306a36Sopenharmony_ci	clocks = <&clk50m_phy>;
6162306a36Sopenharmony_ci	clock-names = "enet_ref_pad";
6262306a36Sopenharmony_ci	assigned-clocks = <&clks IMX6QDL_CLK_ENET_REF_SEL>;
6362306a36Sopenharmony_ci	assigned-clock-parents = <&clk50m_phy>;
6462306a36Sopenharmony_ci};
6562306a36Sopenharmony_ci
6662306a36Sopenharmony_ci&fec {
6762306a36Sopenharmony_ci	pinctrl-names = "default";
6862306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_enet>;
6962306a36Sopenharmony_ci	phy-mode = "rmii";
7062306a36Sopenharmony_ci	status = "okay";
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_ci	fixed-link {
7362306a36Sopenharmony_ci		speed = <100>;
7462306a36Sopenharmony_ci		pause;
7562306a36Sopenharmony_ci		full-duplex;
7662306a36Sopenharmony_ci	};
7762306a36Sopenharmony_ci};
7862306a36Sopenharmony_ci
7962306a36Sopenharmony_ci&i2c3 {
8062306a36Sopenharmony_ci	adc@49 {
8162306a36Sopenharmony_ci		compatible = "ti,ads1015";
8262306a36Sopenharmony_ci		reg = <0x49>;
8362306a36Sopenharmony_ci		#address-cells = <1>;
8462306a36Sopenharmony_ci		#size-cells = <0>;
8562306a36Sopenharmony_ci
8662306a36Sopenharmony_ci		/* V in */
8762306a36Sopenharmony_ci		channel@4 {
8862306a36Sopenharmony_ci			reg = <4>;
8962306a36Sopenharmony_ci			ti,gain = <1>;
9062306a36Sopenharmony_ci			ti,datarate = <3>;
9162306a36Sopenharmony_ci		};
9262306a36Sopenharmony_ci
9362306a36Sopenharmony_ci		/* I charge */
9462306a36Sopenharmony_ci		channel@5 {
9562306a36Sopenharmony_ci			reg = <5>;
9662306a36Sopenharmony_ci			ti,gain = <1>;
9762306a36Sopenharmony_ci			ti,datarate = <3>;
9862306a36Sopenharmony_ci		};
9962306a36Sopenharmony_ci
10062306a36Sopenharmony_ci		/* V bus  */
10162306a36Sopenharmony_ci		channel@6 {
10262306a36Sopenharmony_ci			reg = <6>;
10362306a36Sopenharmony_ci			ti,gain = <1>;
10462306a36Sopenharmony_ci			ti,datarate = <3>;
10562306a36Sopenharmony_ci		};
10662306a36Sopenharmony_ci
10762306a36Sopenharmony_ci		/* nc */
10862306a36Sopenharmony_ci		channel@7 {
10962306a36Sopenharmony_ci			reg = <7>;
11062306a36Sopenharmony_ci			ti,gain = <1>;
11162306a36Sopenharmony_ci			ti,datarate = <3>;
11262306a36Sopenharmony_ci		};
11362306a36Sopenharmony_ci	};
11462306a36Sopenharmony_ci};
11562306a36Sopenharmony_ci
11662306a36Sopenharmony_ci&usdhc2 {
11762306a36Sopenharmony_ci	pinctrl-names = "default";
11862306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_usdhc2>;
11962306a36Sopenharmony_ci	no-1-8-v;
12062306a36Sopenharmony_ci	non-removable;
12162306a36Sopenharmony_ci	mmc-pwrseq = <&usdhc2_wifi_pwrseq>;
12262306a36Sopenharmony_ci	#address-cells = <1>;
12362306a36Sopenharmony_ci	#size-cells = <0>;
12462306a36Sopenharmony_ci	status = "okay";
12562306a36Sopenharmony_ci
12662306a36Sopenharmony_ci	wifi@1 {
12762306a36Sopenharmony_ci		compatible = "brcm,bcm4329-fmac";
12862306a36Sopenharmony_ci		reg = <1>;
12962306a36Sopenharmony_ci	};
13062306a36Sopenharmony_ci};
13162306a36Sopenharmony_ci
13262306a36Sopenharmony_ci&iomuxc {
13362306a36Sopenharmony_ci	pinctrl-names = "default";
13462306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_usb_eth_chg>;
13562306a36Sopenharmony_ci
13662306a36Sopenharmony_ci	pinctrl_can1phy: can1phy {
13762306a36Sopenharmony_ci		fsl,pins = <
13862306a36Sopenharmony_ci			/* CAN1_SR */
13962306a36Sopenharmony_ci			MX6QDL_PAD_KEY_COL3__GPIO4_IO12	0x13070
14062306a36Sopenharmony_ci		>;
14162306a36Sopenharmony_ci	};
14262306a36Sopenharmony_ci
14362306a36Sopenharmony_ci	pinctrl_enet: enetgrp {
14462306a36Sopenharmony_ci		fsl,pins = <
14562306a36Sopenharmony_ci			/* MX6QDL_ENET_PINGRP4 */
14662306a36Sopenharmony_ci			MX6QDL_PAD_ENET_RXD0__ENET_RX_DATA0	0x1b0b0
14762306a36Sopenharmony_ci			MX6QDL_PAD_ENET_RXD1__ENET_RX_DATA1	0x1b0b0
14862306a36Sopenharmony_ci			MX6QDL_PAD_ENET_RX_ER__ENET_RX_ER	0x130b0
14962306a36Sopenharmony_ci			MX6QDL_PAD_ENET_TX_EN__ENET_TX_EN	0x1b0b0
15062306a36Sopenharmony_ci			MX6QDL_PAD_ENET_TXD0__ENET_TX_DATA0	0x1b0b0
15162306a36Sopenharmony_ci			MX6QDL_PAD_ENET_TXD1__ENET_TX_DATA1	0x1b0b0
15262306a36Sopenharmony_ci			MX6QDL_PAD_ENET_CRS_DV__ENET_RX_EN	0x1b0b0
15362306a36Sopenharmony_ci
15462306a36Sopenharmony_ci			MX6QDL_PAD_GPIO_16__ENET_REF_CLK	0x1b0b0
15562306a36Sopenharmony_ci			/* Phy reset */
15662306a36Sopenharmony_ci			MX6QDL_PAD_CSI0_DAT4__GPIO5_IO22	0x1b0b0
15762306a36Sopenharmony_ci			/* nINTRP */
15862306a36Sopenharmony_ci			MX6QDL_PAD_CSI0_DAT5__GPIO5_IO23	0x1b0b0
15962306a36Sopenharmony_ci		>;
16062306a36Sopenharmony_ci	};
16162306a36Sopenharmony_ci
16262306a36Sopenharmony_ci	pinctrl_i2c4: i2c4grp {
16362306a36Sopenharmony_ci		fsl,pins = <
16462306a36Sopenharmony_ci			MX6QDL_PAD_ENET_MDIO__GPIO1_IO22	0x1f8b0
16562306a36Sopenharmony_ci			MX6QDL_PAD_ENET_MDC__GPIO1_IO31		0x1f8b0
16662306a36Sopenharmony_ci		>;
16762306a36Sopenharmony_ci	};
16862306a36Sopenharmony_ci
16962306a36Sopenharmony_ci	pinctrl_usb_eth_chg: usbethchggrp {
17062306a36Sopenharmony_ci		fsl,pins = <
17162306a36Sopenharmony_ci			/* USB charging control */
17262306a36Sopenharmony_ci			MX6QDL_PAD_NANDF_CS0__GPIO6_IO11	0x130b0
17362306a36Sopenharmony_ci			MX6QDL_PAD_NANDF_CS1__GPIO6_IO14	0x130b0
17462306a36Sopenharmony_ci			MX6QDL_PAD_NANDF_CS2__GPIO6_IO15	0x130b0
17562306a36Sopenharmony_ci			MX6QDL_PAD_NANDF_CS3__GPIO6_IO16	0x130b0
17662306a36Sopenharmony_ci			>;
17762306a36Sopenharmony_ci	};
17862306a36Sopenharmony_ci
17962306a36Sopenharmony_ci	pinctrl_usdhc2: usdhc2grp {
18062306a36Sopenharmony_ci		fsl,pins = <
18162306a36Sopenharmony_ci			MX6QDL_PAD_SD2_CMD__SD2_CMD		0x170b9
18262306a36Sopenharmony_ci			MX6QDL_PAD_SD2_CLK__SD2_CLK		0x100b9
18362306a36Sopenharmony_ci			MX6QDL_PAD_SD2_DAT0__SD2_DATA0		0x170b9
18462306a36Sopenharmony_ci			MX6QDL_PAD_SD2_DAT1__SD2_DATA1		0x170b9
18562306a36Sopenharmony_ci			MX6QDL_PAD_SD2_DAT2__SD2_DATA2		0x170b9
18662306a36Sopenharmony_ci			MX6QDL_PAD_SD2_DAT3__SD2_DATA3		0x170b9
18762306a36Sopenharmony_ci		>;
18862306a36Sopenharmony_ci	};
18962306a36Sopenharmony_ci
19062306a36Sopenharmony_ci	pinctrl_wifi_npd: wifinpd {
19162306a36Sopenharmony_ci		fsl,pins = <
19262306a36Sopenharmony_ci			/* WL_REG_ON */
19362306a36Sopenharmony_ci			MX6QDL_PAD_NANDF_RB0__GPIO6_IO10	0x13069
19462306a36Sopenharmony_ci		>;
19562306a36Sopenharmony_ci	};
19662306a36Sopenharmony_ci};
197