// SPDX-License-Identifier: GPL-2.0+ OR MIT
//
// Device Tree Source for Akebi96 Development Board
//
// Derived from uniphier-ld20-global.dts.
//
// Copyright (C) 2015-2017 Socionext Inc.
// Copyright (C) 2019-2020 Linaro Ltd.

/dts-v1/;
#include <dt-bindings/gpio/uniphier-gpio.h>
#include "uniphier-ld20.dtsi"

/ {
	model = "Akebi96";
	compatible = "socionext,uniphier-ld20-akebi96",
		     "socionext,uniphier-ld20";

	chosen {
		stdout-path = "serial0:115200n8";
	};

	aliases {
		serial0 = &serial0;
		serial1 = &serial1;
		serial2 = &serial2;
		serial3 = &serial3;
		i2c0 = &i2c0;
		i2c1 = &i2c1;
		i2c2 = &i2c2;
		i2c3 = &i2c3;
		i2c4 = &i2c4;
		i2c5 = &i2c5;
		spi0 = &spi0;
		spi1 = &spi1;
		spi2 = &spi2;
		spi3 = &spi3;
		ethernet0 = &eth;
	};

	memory@80000000 {
		device_type = "memory";
		reg = <0 0x80000000 0 0xc0000000>;
	};

	framebuffer@c0000000 {
		compatible = "simple-framebuffer";
		reg = <0 0xc0000000 0 0x02000000>;
		width = <1920>;
		height = <1080>;
		stride = <7680>;
		format = "a8r8g8b8";
	};

	reserved-memory {
		#address-cells = <2>;
		#size-cells = <2>;
		ranges;

		memory@c0000000 {
			reg = <0 0xc0000000 0 0x02000000>;
			no-map;
		};
	};

	sound {
		compatible = "audio-graph-card";
		label = "UniPhier LD20";
		dais = <&spdif_port0
			&comp_spdif_port0>;
	};

	spdif-out {
		compatible = "linux,spdif-dit";
		#sound-dai-cells = <0>;

		port@0 {
			spdif_tx: endpoint {
				remote-endpoint = <&spdif_hiecout1>;
			};
		};
	};

	comp-spdif-out {
		compatible = "linux,spdif-dit";
		#sound-dai-cells = <0>;

		port@0 {
			comp_spdif_tx: endpoint {
				remote-endpoint = <&comp_spdif_hiecout1>;
			};
		};
	};

	firmware {
		optee {
			compatible = "linaro,optee-tz";
			method = "smc";
		};
	};
};

&spi3 {
	status = "okay";
	#address-cells = <1>;
	#size-cells = <0>;
	usb-over-spi@0 {
		compatible = "maxim,max3421-udc";
		reg = <0>;
		spi-max-frequency = <12500000>;
		interrupt-parent = <&gpio>;
		interrupt-names = "udc";
		interrupts = <0 2>;
	};
};

&serial0 {
	/* Onboard USB-UART */
	status = "okay";
};

&serial2 {
	/* LS connector UART1 */
	status = "okay";
};

&serial3 {
	/* LS connector UART0 */
	status = "okay";
};

&spdif_hiecout1 {
	remote-endpoint = <&spdif_tx>;
};

&comp_spdif_hiecout1 {
	remote-endpoint = <&comp_spdif_tx>;
};

&i2c0 {
	/* LS connector I2C0 */
	status = "okay";
};

&i2c1 {
	/* LS connector I2C1 */
	status = "okay";
};

&eth {
	status = "okay";
	phy-handle = <&ethphy>;
};

&mdio {
	ethphy: ethernet-phy@0 {
		reg = <0>;
	};
};

&usb {
	status = "okay";
};

&pcie {
	status = "okay";
};

&gpio {
	/* IRQs for Max3421 */
	xirq0 {
		gpio-hog;
		gpios = <UNIPHIER_GPIO_IRQ(0) 1>;
		input;
	};
	xirq10 {
		gpio-hog;
		gpios = <UNIPHIER_GPIO_IRQ(10) 1>;
		input;
	};
};

&pinctrl_aout1 {
	groups = "aout1b";
};

&pinctrl_uart3 {
	groups = "uart3", "uart3_ctsrts";
};
