// SPDX-License-Identifier: GPL-2.0
#include <dt-bindings/clock/ingenic,jz4725b-cgu.h>
#include <dt-bindings/clock/ingenic,tcu.h>

/ {
	#address-cells = <1>;
	#size-cells = <1>;
	compatible = "ingenic,jz4725b";

	cpus {
		#address-cells = <1>;
		#size-cells = <0>;

		cpu0: cpu@0 {
			device_type = "cpu";
			compatible = "ingenic,xburst-mxu1.0";
			reg = <0>;

			clocks = <&cgu JZ4725B_CLK_CCLK>;
			clock-names = "cpu";
		};
	};

	cpuintc: interrupt-controller {
		#address-cells = <0>;
		#interrupt-cells = <1>;
		interrupt-controller;
		compatible = "mti,cpu-interrupt-controller";
	};

	intc: interrupt-controller@10001000 {
		compatible = "ingenic,jz4725b-intc", "ingenic,jz4740-intc";
		reg = <0x10001000 0x14>;

		interrupt-controller;
		#interrupt-cells = <1>;

		interrupt-parent = <&cpuintc>;
		interrupts = <2>;
	};

	ext: ext {
		compatible = "fixed-clock";
		#clock-cells = <0>;
	};

	osc32k: osc32k {
		compatible = "fixed-clock";
		#clock-cells = <0>;
		clock-frequency = <32768>;
	};

	cgu: clock-controller@10000000 {
		compatible = "ingenic,jz4725b-cgu";
		reg = <0x10000000 0x100>;

		clocks = <&ext>, <&osc32k>;
		clock-names = "ext", "osc32k";

		#clock-cells = <1>;
	};

	tcu: timer@10002000 {
		compatible = "ingenic,jz4725b-tcu", "simple-mfd";
		reg = <0x10002000 0x1000>;
		#address-cells = <1>;
		#size-cells = <1>;
		ranges = <0x0 0x10002000 0x1000>;

		#clock-cells = <1>;

		clocks = <&cgu JZ4725B_CLK_RTC>,
			 <&cgu JZ4725B_CLK_EXT>,
			 <&cgu JZ4725B_CLK_PCLK>,
			 <&cgu JZ4725B_CLK_TCU>;
		clock-names = "rtc", "ext", "pclk", "tcu";

		interrupt-controller;
		#interrupt-cells = <1>;

		interrupt-parent = <&intc>;
		interrupts = <23>, <22>, <21>;

		watchdog: watchdog@0 {
			compatible = "ingenic,jz4725b-watchdog", "ingenic,jz4740-watchdog";
			reg = <0x0 0xc>;

			clocks = <&tcu TCU_CLK_WDT>;
			clock-names = "wdt";
		};

		pwm: pwm@60 {
			compatible = "ingenic,jz4725b-pwm";
			reg = <0x60 0x40>;

			#pwm-cells = <3>;

			clocks = <&tcu TCU_CLK_TIMER0>, <&tcu TCU_CLK_TIMER1>,
				 <&tcu TCU_CLK_TIMER2>, <&tcu TCU_CLK_TIMER3>,
				 <&tcu TCU_CLK_TIMER4>, <&tcu TCU_CLK_TIMER5>;
			clock-names = "timer0", "timer1", "timer2",
				      "timer3", "timer4", "timer5";
		};

		ost: timer@e0 {
			compatible = "ingenic,jz4725b-ost";
			reg = <0xe0 0x20>;

			clocks = <&tcu TCU_CLK_OST>;
			clock-names = "ost";

			interrupts = <15>;
		};
	};

	rtc_dev: rtc@10003000 {
		compatible = "ingenic,jz4725b-rtc", "ingenic,jz4740-rtc";
		reg = <0x10003000 0x40>;

		interrupt-parent = <&intc>;
		interrupts = <6>;

		clocks = <&cgu JZ4725B_CLK_RTC>;
		clock-names = "rtc";
	};

	pinctrl: pinctrl@10010000 {
		compatible = "ingenic,jz4725b-pinctrl";
		reg = <0x10010000 0x400>;

		#address-cells = <1>;
		#size-cells = <0>;

		gpa: gpio@0 {
			compatible = "ingenic,jz4725b-gpio";
			reg = <0>;

			gpio-controller;
			gpio-ranges = <&pinctrl 0 0 32>;
			#gpio-cells = <2>;

			interrupt-controller;
			#interrupt-cells = <2>;

			interrupt-parent = <&intc>;
			interrupts = <16>;
		};

		gpb: gpio@1 {
			compatible = "ingenic,jz4725b-gpio";
			reg = <1>;

			gpio-controller;
			gpio-ranges = <&pinctrl 0 32 32>;
			#gpio-cells = <2>;

			interrupt-controller;
			#interrupt-cells = <2>;

			interrupt-parent = <&intc>;
			interrupts = <15>;
		};

		gpc: gpio@2 {
			compatible = "ingenic,jz4725b-gpio";
			reg = <2>;

			gpio-controller;
			gpio-ranges = <&pinctrl 0 64 32>;
			#gpio-cells = <2>;

			interrupt-controller;
			#interrupt-cells = <2>;

			interrupt-parent = <&intc>;
			interrupts = <14>;
		};

		gpd: gpio@3 {
			compatible = "ingenic,jz4725b-gpio";
			reg = <3>;

			gpio-controller;
			gpio-ranges = <&pinctrl 0 96 32>;
			#gpio-cells = <2>;

			interrupt-controller;
			#interrupt-cells = <2>;

			interrupt-parent = <&intc>;
			interrupts = <13>;
		};
	};

	aic: audio-controller@10020000 {
		compatible = "ingenic,jz4725b-i2s", "ingenic,jz4740-i2s";
		reg = <0x10020000 0x38>;

		#sound-dai-cells = <0>;

		clocks = <&cgu JZ4725B_CLK_AIC>,
			 <&cgu JZ4725B_CLK_I2S>,
			 <&cgu JZ4725B_CLK_EXT>,
			 <&cgu JZ4725B_CLK_PLL_HALF>;
		clock-names = "aic", "i2s", "ext", "pll half";

		interrupt-parent = <&intc>;
		interrupts = <10>;

		dmas = <&dmac 25 0xffffffff>, <&dmac 24 0xffffffff>;
		dma-names = "rx", "tx";
	};

	codec: audio-codec@100200a4 {
		compatible = "ingenic,jz4725b-codec";
		reg = <0x100200a4 0x8>;

		#sound-dai-cells = <0>;

		clocks = <&cgu JZ4725B_CLK_AIC>;
		clock-names = "aic";
	};

	mmc0: mmc@10021000 {
		compatible = "ingenic,jz4725b-mmc";
		reg = <0x10021000 0x1000>;

		clocks = <&cgu JZ4725B_CLK_MMC0>;
		clock-names = "mmc";

		interrupt-parent = <&intc>;
		interrupts = <25>;

		dmas = <&dmac 27 0xffffffff>, <&dmac 26 0xffffffff>;
		dma-names = "rx", "tx";

		cap-sd-highspeed;
		cap-mmc-highspeed;
		cap-sdio-irq;
	};

	mmc1: mmc@10022000 {
		compatible = "ingenic,jz4725b-mmc";
		reg = <0x10022000 0x1000>;

		clocks = <&cgu JZ4725B_CLK_MMC1>;
		clock-names = "mmc";

		interrupt-parent = <&intc>;
		interrupts = <24>;

		dmas = <&dmac 31 0xffffffff>, <&dmac 30 0xffffffff>;
		dma-names = "rx", "tx";

		cap-sd-highspeed;
		cap-mmc-highspeed;
		cap-sdio-irq;
	};

	uart: serial@10030000 {
		compatible = "ingenic,jz4725b-uart", "ingenic,jz4740-uart";
		reg = <0x10030000 0x100>;

		interrupt-parent = <&intc>;
		interrupts = <9>;

		clocks = <&ext>, <&cgu JZ4725B_CLK_UART>;
		clock-names = "baud", "module";
	};

	adc: adc@10070000 {
		compatible = "ingenic,jz4725b-adc";
		#io-channel-cells = <1>;

		reg = <0x10070000 0x30>;
		#address-cells = <1>;
		#size-cells = <1>;
		ranges = <0x0 0x10070000 0x30>;

		clocks = <&cgu JZ4725B_CLK_ADC>;
		clock-names = "adc";

		interrupt-parent = <&intc>;
		interrupts = <18>;
	};

	nemc: memory-controller@13010000 {
		compatible = "ingenic,jz4725b-nemc", "ingenic,jz4740-nemc";
		reg = <0x13010000 0x10000>;
		#address-cells = <2>;
		#size-cells = <1>;
		ranges = <1 0 0x18000000 0x4000000>, <2 0 0x14000000 0x4000000>,
			 <3 0 0x0c000000 0x4000000>, <4 0 0x08000000 0x4000000>;

		clocks = <&cgu JZ4725B_CLK_MCLK>;
	};

	dmac: dma-controller@13020000 {
		compatible = "ingenic,jz4725b-dma";
		reg = <0x13020000 0xd8>, <0x13020300 0x14>;

		#dma-cells = <2>;

		interrupt-parent = <&intc>;
		interrupts = <29>;

		clocks = <&cgu JZ4725B_CLK_DMA>;
	};

	udc: usb@13040000 {
		compatible = "ingenic,jz4725b-musb", "ingenic,jz4740-musb";
		reg = <0x13040000 0x10000>;

		interrupt-parent = <&intc>;
		interrupts = <27>;
		interrupt-names = "mc";

		clocks = <&cgu JZ4725B_CLK_UDC>;
		clock-names = "udc";
	};

	lcd: lcd-controller@13050000 {
		compatible = "ingenic,jz4725b-lcd";
		reg = <0x13050000 0x1000>;

		interrupt-parent = <&intc>;
		interrupts = <31>;

		clocks = <&cgu JZ4725B_CLK_LCD>;
		clock-names = "lcd_pclk";

		lcd_ports: ports {
			#address-cells = <1>;
			#size-cells = <0>;

			port@8 {
				reg = <8>;

				ipu_output: endpoint {
					remote-endpoint = <&ipu_input>;
				};
			};
		};
	};

	ipu: ipu@13080000 {
		compatible = "ingenic,jz4725b-ipu";
		reg = <0x13080000 0x64>;

		interrupt-parent = <&intc>;
		interrupts = <30>;

		clocks = <&cgu JZ4725B_CLK_IPU>;
		clock-names = "ipu";

		port {
			ipu_input: endpoint {
				remote-endpoint = <&ipu_output>;
			};
		};
	};

	bch: ecc-controller@130d0000 {
		compatible = "ingenic,jz4725b-bch";
		reg = <0x130d0000 0x44>;

		clocks = <&cgu JZ4725B_CLK_BCH>;
	};

	rom: memory@1fc00000 {
		compatible = "mtd-rom";
		probe-type = "map_rom";
		reg = <0x1fc00000 0x2000>;

		bank-width = <4>;
		device-width = <1>;
	};
};
