18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * Copyright 2020, Compass Electronics Group, LLC
48c2ecf20Sopenharmony_ci */
58c2ecf20Sopenharmony_ci
68c2ecf20Sopenharmony_ci#include <dt-bindings/gpio/gpio.h>
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_ci/ {
98c2ecf20Sopenharmony_ci	memory@48000000 {
108c2ecf20Sopenharmony_ci		device_type = "memory";
118c2ecf20Sopenharmony_ci		/* first 128MB is reserved for secure area. */
128c2ecf20Sopenharmony_ci		reg = <0x0 0x48000000 0x0 0x78000000>;
138c2ecf20Sopenharmony_ci	};
148c2ecf20Sopenharmony_ci
158c2ecf20Sopenharmony_ci	memory@600000000 {
168c2ecf20Sopenharmony_ci		device_type = "memory";
178c2ecf20Sopenharmony_ci		reg = <0x6 0x00000000 0x0 0x80000000>;
188c2ecf20Sopenharmony_ci	};
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_ci	osc_32k: osc_32k {
218c2ecf20Sopenharmony_ci		compatible = "fixed-clock";
228c2ecf20Sopenharmony_ci		#clock-cells = <0>;
238c2ecf20Sopenharmony_ci		clock-frequency = <32768>;
248c2ecf20Sopenharmony_ci		clock-output-names = "osc_32k";
258c2ecf20Sopenharmony_ci	};
268c2ecf20Sopenharmony_ci
278c2ecf20Sopenharmony_ci	reg_1p8v: regulator0 {
288c2ecf20Sopenharmony_ci		compatible = "regulator-fixed";
298c2ecf20Sopenharmony_ci		regulator-name = "fixed-1.8V";
308c2ecf20Sopenharmony_ci		regulator-min-microvolt = <1800000>;
318c2ecf20Sopenharmony_ci		regulator-max-microvolt = <1800000>;
328c2ecf20Sopenharmony_ci		regulator-boot-on;
338c2ecf20Sopenharmony_ci		regulator-always-on;
348c2ecf20Sopenharmony_ci	};
358c2ecf20Sopenharmony_ci
368c2ecf20Sopenharmony_ci	reg_3p3v: regulator1 {
378c2ecf20Sopenharmony_ci		compatible = "regulator-fixed";
388c2ecf20Sopenharmony_ci		regulator-name = "fixed-3.3V";
398c2ecf20Sopenharmony_ci		regulator-min-microvolt = <3300000>;
408c2ecf20Sopenharmony_ci		regulator-max-microvolt = <3300000>;
418c2ecf20Sopenharmony_ci		regulator-boot-on;
428c2ecf20Sopenharmony_ci		regulator-always-on;
438c2ecf20Sopenharmony_ci	};
448c2ecf20Sopenharmony_ci
458c2ecf20Sopenharmony_ci	wlan_pwrseq: wlan_pwrseq {
468c2ecf20Sopenharmony_ci		compatible = "mmc-pwrseq-simple";
478c2ecf20Sopenharmony_ci		reset-gpios = <&pca9654 1 GPIO_ACTIVE_LOW>;
488c2ecf20Sopenharmony_ci		clocks = <&osc_32k>;
498c2ecf20Sopenharmony_ci		clock-names = "ext_clock";
508c2ecf20Sopenharmony_ci		post-power-on-delay-ms = <80>;
518c2ecf20Sopenharmony_ci	};
528c2ecf20Sopenharmony_ci};
538c2ecf20Sopenharmony_ci
548c2ecf20Sopenharmony_ci&avb {
558c2ecf20Sopenharmony_ci	pinctrl-0 = <&avb_pins>;
568c2ecf20Sopenharmony_ci	pinctrl-names = "default";
578c2ecf20Sopenharmony_ci	phy-mode = "rgmii-rxid";
588c2ecf20Sopenharmony_ci	phy-handle = <&phy0>;
598c2ecf20Sopenharmony_ci	rx-internal-delay-ps = <1800>;
608c2ecf20Sopenharmony_ci	tx-internal-delay-ps = <2000>;
618c2ecf20Sopenharmony_ci	status = "okay";
628c2ecf20Sopenharmony_ci
638c2ecf20Sopenharmony_ci	phy0: ethernet-phy@0 {
648c2ecf20Sopenharmony_ci		reg = <0>;
658c2ecf20Sopenharmony_ci		interrupt-parent = <&gpio2>;
668c2ecf20Sopenharmony_ci		interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
678c2ecf20Sopenharmony_ci		reset-gpios = <&gpio2 10 GPIO_ACTIVE_LOW>;
688c2ecf20Sopenharmony_ci	};
698c2ecf20Sopenharmony_ci};
708c2ecf20Sopenharmony_ci
718c2ecf20Sopenharmony_ci&extal_clk {
728c2ecf20Sopenharmony_ci	clock-frequency = <16666666>;
738c2ecf20Sopenharmony_ci};
748c2ecf20Sopenharmony_ci
758c2ecf20Sopenharmony_ci&extalr_clk {
768c2ecf20Sopenharmony_ci	clock-frequency = <32768>;
778c2ecf20Sopenharmony_ci};
788c2ecf20Sopenharmony_ci
798c2ecf20Sopenharmony_ci&gpio6 {
808c2ecf20Sopenharmony_ci	usb_hub_reset {
818c2ecf20Sopenharmony_ci		gpio-hog;
828c2ecf20Sopenharmony_ci		gpios = <10 GPIO_ACTIVE_HIGH>;
838c2ecf20Sopenharmony_ci		output-high;
848c2ecf20Sopenharmony_ci		line-name = "usb-hub-reset";
858c2ecf20Sopenharmony_ci	};
868c2ecf20Sopenharmony_ci};
878c2ecf20Sopenharmony_ci
888c2ecf20Sopenharmony_ci&hscif0 {
898c2ecf20Sopenharmony_ci	pinctrl-0 = <&hscif0_pins>;
908c2ecf20Sopenharmony_ci	pinctrl-names = "default";
918c2ecf20Sopenharmony_ci	uart-has-rtscts;
928c2ecf20Sopenharmony_ci	status = "okay";
938c2ecf20Sopenharmony_ci
948c2ecf20Sopenharmony_ci	bluetooth {
958c2ecf20Sopenharmony_ci		compatible = "brcm,bcm43438-bt";
968c2ecf20Sopenharmony_ci		shutdown-gpios = <&pca9654 2 GPIO_ACTIVE_HIGH>;
978c2ecf20Sopenharmony_ci		host-wakeup-gpios = <&gpio1 28 GPIO_ACTIVE_HIGH>;
988c2ecf20Sopenharmony_ci		device-wakeup-gpios = <&pca9654 5 GPIO_ACTIVE_HIGH>;
998c2ecf20Sopenharmony_ci		clocks = <&osc_32k>;
1008c2ecf20Sopenharmony_ci		clock-names = "extclk";
1018c2ecf20Sopenharmony_ci		max-speed = <4000000>;
1028c2ecf20Sopenharmony_ci	};
1038c2ecf20Sopenharmony_ci};
1048c2ecf20Sopenharmony_ci
1058c2ecf20Sopenharmony_ci&hscif2 {
1068c2ecf20Sopenharmony_ci	status = "okay";
1078c2ecf20Sopenharmony_ci	pinctrl-0 = <&hscif2_pins>;
1088c2ecf20Sopenharmony_ci	pinctrl-names = "default";
1098c2ecf20Sopenharmony_ci};
1108c2ecf20Sopenharmony_ci
1118c2ecf20Sopenharmony_ci&i2c4 {
1128c2ecf20Sopenharmony_ci	status = "okay";
1138c2ecf20Sopenharmony_ci	clock-frequency = <400000>;
1148c2ecf20Sopenharmony_ci
1158c2ecf20Sopenharmony_ci	pca9654: gpio@20 {
1168c2ecf20Sopenharmony_ci		compatible = "onnn,pca9654";
1178c2ecf20Sopenharmony_ci		reg = <0x20>;
1188c2ecf20Sopenharmony_ci		gpio-controller;
1198c2ecf20Sopenharmony_ci		#gpio-cells = <2>;
1208c2ecf20Sopenharmony_ci		gpio-line-names =
1218c2ecf20Sopenharmony_ci			"i2c4_20_0",
1228c2ecf20Sopenharmony_ci			"wl_reg_on",
1238c2ecf20Sopenharmony_ci			"bt_reg_on",
1248c2ecf20Sopenharmony_ci			"i2c4_20_3",
1258c2ecf20Sopenharmony_ci			"i2c4_20_4",
1268c2ecf20Sopenharmony_ci			"bt_dev_wake",
1278c2ecf20Sopenharmony_ci			"i2c4_20_6",
1288c2ecf20Sopenharmony_ci			"i2c4_20_7";
1298c2ecf20Sopenharmony_ci	};
1308c2ecf20Sopenharmony_ci
1318c2ecf20Sopenharmony_ci	pca9654_lte: gpio@21 {
1328c2ecf20Sopenharmony_ci		compatible = "onnn,pca9654";
1338c2ecf20Sopenharmony_ci		reg = <0x21>;
1348c2ecf20Sopenharmony_ci		interrupt-parent = <&gpio5>;
1358c2ecf20Sopenharmony_ci		interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
1368c2ecf20Sopenharmony_ci		interrupt-controller;
1378c2ecf20Sopenharmony_ci		#interrupt-cells = <2>;
1388c2ecf20Sopenharmony_ci		gpio-controller;
1398c2ecf20Sopenharmony_ci		#gpio-cells = <2>;
1408c2ecf20Sopenharmony_ci		gpio-line-names =
1418c2ecf20Sopenharmony_ci			"i2c4_21_0",
1428c2ecf20Sopenharmony_ci			"zoe_pwr_on",
1438c2ecf20Sopenharmony_ci			"zoe_extint",
1448c2ecf20Sopenharmony_ci			"zoe_reset_n",
1458c2ecf20Sopenharmony_ci			"sara_reset",
1468c2ecf20Sopenharmony_ci			"i2c4_21_5",
1478c2ecf20Sopenharmony_ci			"sara_pwr_off",
1488c2ecf20Sopenharmony_ci			"sara_networking_status";
1498c2ecf20Sopenharmony_ci	};
1508c2ecf20Sopenharmony_ci
1518c2ecf20Sopenharmony_ci	eeprom@50 {
1528c2ecf20Sopenharmony_ci		compatible = "microchip,24c64", "atmel,24c64";
1538c2ecf20Sopenharmony_ci		pagesize = <32>;
1548c2ecf20Sopenharmony_ci		read-only;	/* Manufacturing EEPROM programmed at factory */
1558c2ecf20Sopenharmony_ci		reg = <0x50>;
1568c2ecf20Sopenharmony_ci	};
1578c2ecf20Sopenharmony_ci
1588c2ecf20Sopenharmony_ci	rtc@51 {
1598c2ecf20Sopenharmony_ci		compatible = "nxp,pcf85263";
1608c2ecf20Sopenharmony_ci		reg = <0x51>;
1618c2ecf20Sopenharmony_ci	};
1628c2ecf20Sopenharmony_ci
1638c2ecf20Sopenharmony_ci	versaclock5: versaclock_som@6a {
1648c2ecf20Sopenharmony_ci		compatible = "idt,5p49v6965";
1658c2ecf20Sopenharmony_ci		reg = <0x6a>;
1668c2ecf20Sopenharmony_ci		#clock-cells = <1>;
1678c2ecf20Sopenharmony_ci		clocks = <&x304_clk>;
1688c2ecf20Sopenharmony_ci		clock-names = "xin";
1698c2ecf20Sopenharmony_ci		/* du_dotclkin0, du_dotclkin2, usb_extal, avb_txcrefclk */
1708c2ecf20Sopenharmony_ci		assigned-clocks = <&versaclock5 1>,
1718c2ecf20Sopenharmony_ci				   <&versaclock5 2>,
1728c2ecf20Sopenharmony_ci				   <&versaclock5 3>,
1738c2ecf20Sopenharmony_ci				   <&versaclock5 4>;
1748c2ecf20Sopenharmony_ci		assigned-clock-rates = <33333333>, <33333333>, <50000000>, <125000000>;
1758c2ecf20Sopenharmony_ci	};
1768c2ecf20Sopenharmony_ci};
1778c2ecf20Sopenharmony_ci
1788c2ecf20Sopenharmony_ci&pfc {
1798c2ecf20Sopenharmony_ci	pinctrl-0 = <&scif_clk_pins>;
1808c2ecf20Sopenharmony_ci	pinctrl-names = "default";
1818c2ecf20Sopenharmony_ci
1828c2ecf20Sopenharmony_ci	avb_pins: avb {
1838c2ecf20Sopenharmony_ci		mux {
1848c2ecf20Sopenharmony_ci			groups = "avb_link", "avb_mdio", "avb_mii";
1858c2ecf20Sopenharmony_ci			function = "avb";
1868c2ecf20Sopenharmony_ci		};
1878c2ecf20Sopenharmony_ci
1888c2ecf20Sopenharmony_ci		pins_mdio {
1898c2ecf20Sopenharmony_ci			groups = "avb_mdio";
1908c2ecf20Sopenharmony_ci			drive-strength = <24>;
1918c2ecf20Sopenharmony_ci		};
1928c2ecf20Sopenharmony_ci
1938c2ecf20Sopenharmony_ci		pins_mii_tx {
1948c2ecf20Sopenharmony_ci			pins = "PIN_AVB_TX_CTL", "PIN_AVB_TXC", "PIN_AVB_TD0",
1958c2ecf20Sopenharmony_ci			       "PIN_AVB_TD1", "PIN_AVB_TD2", "PIN_AVB_TD3";
1968c2ecf20Sopenharmony_ci			drive-strength = <12>;
1978c2ecf20Sopenharmony_ci		};
1988c2ecf20Sopenharmony_ci	};
1998c2ecf20Sopenharmony_ci
2008c2ecf20Sopenharmony_ci	scif2_pins: scif2 {
2018c2ecf20Sopenharmony_ci		groups = "scif2_data_a";
2028c2ecf20Sopenharmony_ci		function = "scif2";
2038c2ecf20Sopenharmony_ci	};
2048c2ecf20Sopenharmony_ci
2058c2ecf20Sopenharmony_ci	hscif0_pins: hscif0 {
2068c2ecf20Sopenharmony_ci		groups = "hscif0_data", "hscif0_ctrl";
2078c2ecf20Sopenharmony_ci		function = "hscif0";
2088c2ecf20Sopenharmony_ci	};
2098c2ecf20Sopenharmony_ci
2108c2ecf20Sopenharmony_ci	hscif1_pins: hscif1 {
2118c2ecf20Sopenharmony_ci		groups = "hscif1_data_a", "hscif1_ctrl_a";
2128c2ecf20Sopenharmony_ci		function = "hscif1";
2138c2ecf20Sopenharmony_ci	};
2148c2ecf20Sopenharmony_ci
2158c2ecf20Sopenharmony_ci	hscif2_pins: hscif2 {
2168c2ecf20Sopenharmony_ci		groups = "hscif2_data_a";
2178c2ecf20Sopenharmony_ci		function = "hscif2";
2188c2ecf20Sopenharmony_ci	};
2198c2ecf20Sopenharmony_ci
2208c2ecf20Sopenharmony_ci	scif0_pins: scif0 {
2218c2ecf20Sopenharmony_ci		groups = "scif0_data";
2228c2ecf20Sopenharmony_ci		function = "scif0";
2238c2ecf20Sopenharmony_ci	};
2248c2ecf20Sopenharmony_ci
2258c2ecf20Sopenharmony_ci	scif5_pins: scif5 {
2268c2ecf20Sopenharmony_ci		groups = "scif5_data_a";
2278c2ecf20Sopenharmony_ci		function = "scif5";
2288c2ecf20Sopenharmony_ci	};
2298c2ecf20Sopenharmony_ci
2308c2ecf20Sopenharmony_ci	scif_clk_pins: scif_clk {
2318c2ecf20Sopenharmony_ci		groups = "scif_clk_a";
2328c2ecf20Sopenharmony_ci		function = "scif_clk";
2338c2ecf20Sopenharmony_ci	};
2348c2ecf20Sopenharmony_ci
2358c2ecf20Sopenharmony_ci	i2c0_pins: i2c0 {
2368c2ecf20Sopenharmony_ci		groups = "i2c0";
2378c2ecf20Sopenharmony_ci		function = "i2c0";
2388c2ecf20Sopenharmony_ci	};
2398c2ecf20Sopenharmony_ci
2408c2ecf20Sopenharmony_ci	sdhi2_pins: sd2 {
2418c2ecf20Sopenharmony_ci		groups = "sdhi2_data4", "sdhi2_ctrl";
2428c2ecf20Sopenharmony_ci		function = "sdhi2";
2438c2ecf20Sopenharmony_ci		power-source = <1800>;
2448c2ecf20Sopenharmony_ci	};
2458c2ecf20Sopenharmony_ci
2468c2ecf20Sopenharmony_ci	sdhi3_pins: sd3 {
2478c2ecf20Sopenharmony_ci		groups = "sdhi3_data8", "sdhi3_ctrl", "sdhi3_ds";
2488c2ecf20Sopenharmony_ci		function = "sdhi3";
2498c2ecf20Sopenharmony_ci		power-source = <1800>;
2508c2ecf20Sopenharmony_ci	};
2518c2ecf20Sopenharmony_ci};
2528c2ecf20Sopenharmony_ci
2538c2ecf20Sopenharmony_ci&scif_clk {
2548c2ecf20Sopenharmony_ci	clock-frequency = <14745600>;
2558c2ecf20Sopenharmony_ci};
2568c2ecf20Sopenharmony_ci
2578c2ecf20Sopenharmony_ci&scif2 {
2588c2ecf20Sopenharmony_ci	pinctrl-0 = <&scif2_pins>;
2598c2ecf20Sopenharmony_ci	pinctrl-names = "default";
2608c2ecf20Sopenharmony_ci	status = "okay";
2618c2ecf20Sopenharmony_ci};
2628c2ecf20Sopenharmony_ci
2638c2ecf20Sopenharmony_ci&sdhi2 {
2648c2ecf20Sopenharmony_ci	pinctrl-names = "default";
2658c2ecf20Sopenharmony_ci	pinctrl-0 = <&sdhi2_pins>;
2668c2ecf20Sopenharmony_ci	bus-width = <4>;
2678c2ecf20Sopenharmony_ci	vmmc-supply = <&reg_3p3v>;
2688c2ecf20Sopenharmony_ci	vqmmc-supply = <&reg_1p8v>;
2698c2ecf20Sopenharmony_ci	non-removable;
2708c2ecf20Sopenharmony_ci	cap-power-off-card;
2718c2ecf20Sopenharmony_ci	pm-ignore-notify;
2728c2ecf20Sopenharmony_ci	keep-power-in-suspend;
2738c2ecf20Sopenharmony_ci	mmc-pwrseq = <&wlan_pwrseq>;
2748c2ecf20Sopenharmony_ci	status = "okay";
2758c2ecf20Sopenharmony_ci	#address-cells = <1>;
2768c2ecf20Sopenharmony_ci	#size-cells = <0>;
2778c2ecf20Sopenharmony_ci
2788c2ecf20Sopenharmony_ci	brcmf: bcrmf@1 {
2798c2ecf20Sopenharmony_ci		reg = <1>;
2808c2ecf20Sopenharmony_ci		compatible = "brcm,bcm4329-fmac";
2818c2ecf20Sopenharmony_ci		interrupt-parent = <&gpio1>;
2828c2ecf20Sopenharmony_ci		interrupts = <27 IRQ_TYPE_LEVEL_LOW>;
2838c2ecf20Sopenharmony_ci		interrupt-names = "host-wake";
2848c2ecf20Sopenharmony_ci	};
2858c2ecf20Sopenharmony_ci};
2868c2ecf20Sopenharmony_ci
2878c2ecf20Sopenharmony_ci&sdhi3 {
2888c2ecf20Sopenharmony_ci	pinctrl-0 = <&sdhi3_pins>;
2898c2ecf20Sopenharmony_ci	pinctrl-1 = <&sdhi3_pins>;
2908c2ecf20Sopenharmony_ci	pinctrl-names = "default", "state_uhs";
2918c2ecf20Sopenharmony_ci	vmmc-supply = <&reg_3p3v>;
2928c2ecf20Sopenharmony_ci	vqmmc-supply = <&reg_1p8v>;
2938c2ecf20Sopenharmony_ci	bus-width = <8>;
2948c2ecf20Sopenharmony_ci	mmc-hs200-1_8v;
2958c2ecf20Sopenharmony_ci	non-removable;
2968c2ecf20Sopenharmony_ci	fixed-emmc-driver-type = <1>;
2978c2ecf20Sopenharmony_ci	status = "okay";
2988c2ecf20Sopenharmony_ci};
2998c2ecf20Sopenharmony_ci
3008c2ecf20Sopenharmony_ci&usb2_clksel {
3018c2ecf20Sopenharmony_ci	clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>,
3028c2ecf20Sopenharmony_ci		  <&versaclock5 3>, <&usb3s0_clk>;
3038c2ecf20Sopenharmony_ci	status = "okay";
3048c2ecf20Sopenharmony_ci};
3058c2ecf20Sopenharmony_ci
3068c2ecf20Sopenharmony_ci&usb3s0_clk {
3078c2ecf20Sopenharmony_ci	clock-frequency = <100000000>;
3088c2ecf20Sopenharmony_ci};
3098c2ecf20Sopenharmony_ci
3108c2ecf20Sopenharmony_ci&vspb {
3118c2ecf20Sopenharmony_ci	status = "okay";
3128c2ecf20Sopenharmony_ci};
3138c2ecf20Sopenharmony_ci
3148c2ecf20Sopenharmony_ci&vspi0 {
3158c2ecf20Sopenharmony_ci	status = "okay";
3168c2ecf20Sopenharmony_ci};
317