// SPDX-License-Identifier: GPL-2.0+

/dts-v1/;

#include "ast2600-u-boot.dtsi"

/ {
	memory {
		device_type = "memory";
		reg = <0x80000000 0x40000000>;
	};

	chosen {
		stdout-path = &uart5;
	};

	aliases {
		mmc0 = &emmc;
		mmc1 = &sdhci0;
		mmc2 = &sdhci1;
		spi0 = &fmc;
		spi1 = &spi1;
		spi2 = &spi2;
		ethernet0 = &mac0;
		ethernet1 = &mac1;
		ethernet2 = &mac2;
		ethernet3 = &mac3;
	};

	cpus {
		cpu@0 {
			clock-frequency = <800000000>;
		};
		cpu@1 {
			clock-frequency = <800000000>;
		};
	};
};

&pwm {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_pwm0_default
			&pinctrl_pwm1_default
			&pinctrl_pwm2_default
			&pinctrl_pwm3_default
			&pinctrl_pwm4_default
			&pinctrl_pwm5_default
			&pinctrl_pwm6_default
			&pinctrl_pwm7_default
			&pinctrl_pwm8g1_default
			&pinctrl_pwm9g1_default
			&pinctrl_pwm10g1_default
			&pinctrl_pwm11g1_default
			&pinctrl_pwm12g1_default
			&pinctrl_pwm13g1_default
			&pinctrl_pwm14g1_default>;
};

&uart5 {
	bootph-all;
	status = "okay";
};

&sdrammc {
	clock-frequency = <400000000>;
};

&wdt1 {
	status = "okay";
};

&fmc {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_fmcquad_default>;

	flash@0 {
		status = "okay";
		spi-max-frequency = <50000000>;
		spi-tx-bus-width = <4>;
		spi-rx-bus-width = <4>;
	};

	flash@1 {
		status = "okay";
		spi-max-frequency = <50000000>;
		spi-tx-bus-width = <4>;
		spi-rx-bus-width = <4>;
	};

	flash@2 {
		status = "okay";
		spi-max-frequency = <50000000>;
		spi-tx-bus-width = <4>;
		spi-rx-bus-width = <4>;
	};
};

&spi1 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_spi1_default &pinctrl_spi1abr_default
			&pinctrl_spi1cs1_default &pinctrl_spi1wp_default
			&pinctrl_spi1wp_default &pinctrl_spi1quad_default>;

	flash@0 {
		status = "okay";
		spi-max-frequency = <50000000>;
		spi-tx-bus-width = <4>;
		spi-rx-bus-width = <4>;
	};
};

&spi2 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_spi2_default &pinctrl_spi2cs1_default
			&pinctrl_spi2cs2_default &pinctrl_spi2quad_default>;

	flash@0 {
		status = "okay";
		spi-max-frequency = <50000000>;
		spi-tx-bus-width = <4>;
		spi-rx-bus-width = <4>;
	};
};


&emmc_controller {
        status = "okay";
};

&emmc {
        non-removable;
        bus-width = <4>;
        max-frequency = <100000000>;
        clk-phase-mmc-hs200 = <9>, <225>;
};

&i2c4 {
	status = "okay";
};

&i2c5 {
	status = "okay";
};

&i2c6 {
	status = "okay";
};

&i2c7 {
	status = "okay";

	temp@2e {
		compatible = "adi,adt7490";
		reg = <0x2e>;
	};

	eeprom@50 {
		compatible = "atmel,24c08";
		reg = <0x50>;
		pagesize = <16>;
	};
};

&i2c8 {
	status = "okay";

	lm75@4d {
		compatible = "national,lm75";
		reg = <0x4d>;
	};
};

&mdio0 {
	status = "okay";
	#address-cells = <1>;
	#size-cells = <0>;
	ethphy0: ethernet-phy@0 {
		reg = <0>;
	};
};

&mdio1 {
	status = "okay";
	#address-cells = <1>;
	#size-cells = <0>;
	ethphy1: ethernet-phy@0 {
		reg = <0>;
	};
};

&mdio2 {
	status = "okay";
	#address-cells = <1>;
	#size-cells = <0>;
	ethphy2: ethernet-phy@0 {
		reg = <0>;
	};
};

&mdio3 {
	status = "okay";
	#address-cells = <1>;
	#size-cells = <0>;
	ethphy3: ethernet-phy@0 {
		reg = <0>;
	};
};

&mac0 {
	status = "okay";
	phy-mode = "rgmii-rxid";
	phy-handle = <&ethphy0>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_rgmii1_default>;
};

&mac1 {
	status = "okay";
	phy-mode = "rgmii-rxid";
	phy-handle = <&ethphy1>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_rgmii2_default>;
};

&mac2 {
	status = "okay";
	phy-mode = "rgmii";
	phy-handle = <&ethphy2>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_rgmii3_default>;
};

&mac3 {
	status = "okay";
	phy-mode = "rgmii";
	phy-handle = <&ethphy3>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_rgmii4_default>;
};

&scu {
	mac0-clk-delay = <0x1d 0x1c
			  0x10 0x17
			  0x10 0x17>;
	mac1-clk-delay = <0x1d 0x10
			  0x10 0x10
			  0x10 0x10>;
	mac2-clk-delay = <0x0a 0x04
			  0x08 0x04
			  0x08 0x04>;
	mac3-clk-delay = <0x0a 0x04
			  0x08 0x04
			  0x08 0x04>;
};

&hace {
	bootph-all;
	status = "okay";
};

&acry {
	bootph-all;
	status = "okay";
};

&sgpiom0 {
	status = "okay";
	ngpios = <128>;
};

&sgpiom1 {
	status = "okay";
	ngpios = <80>;
};
