// SPDX-License-Identifier: GPL-2.0+
/*
 * Copyright (C) 2018 B&R Industrial Automation GmbH
 * http://www.br-automation.com
 *
 */
/dts-v1/;

#include "am33xx.dtsi"

/ {
	model = "BRPPT1 (NAND) Panel";
	compatible = "ti,am33xx";

	fset: factory-settings {
		bl-version	= "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456890";
		version		= <0x0100>;
		order-no	= "6PPT30 (NAND)";
		hw-revision	= "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456890";
		serial-no	= "0";
		device-id	= <0x0>;
		parent-id	= <0x0>;
		hw-variant	= <0x1>;
	};

	aliases {
		ds1bkl0 = &pwmbacklight;
		ds1bkl1 = &tps_bl;
		ds1timing = &timing0;
		ds1ctrl = &lcdc;
		gpmc = &gpmc;
		mmc = &mmc2;
		fset = &fset;
	};

	chosen {
		bootargs = "console=ttyO0,115200 earlyprintk";
		stdout-path = &uart0;
	};

	memory {
		device_type = "memory";
		reg = <0x80000000 0x10000000>; /* 256 MB */
	};

	panel {
		status = "disabled";

		compatible = "ti,tilcdc,panel";
		enable-gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;

		backlight = <&pwmbacklight>;
		bkl-pwm = <&pwmbacklight>;
		bkl-tps = <&tps_bl>;

		panel-info {
			ac-bias		= <255>;
			ac-bias-intrpt	= <0>;
			dma-burst-sz	= <16>;
			bpp		= <32>;
			fdd		= <0x80>;
			sync-edge	= <0>;
			sync-ctrl	= <1>;
			raster-order	= <0>;
			fifo-th		= <0>;
		};

		display-timings {
			native-mode = <&timing0>;
			timing0: lcd {
				clock-frequency	= <32000000>;
				hactive		= <800>;
				vactive		= <480>;
				hfront-porch	= <2>;
				hback-porch	= <192>;
				hsync-len	= <1>;
				vfront-porch	= <20>;
				vback-porch	= <2>;
				vsync-len	= <1>;
				hsync-active	= <1>;
				vsync-active	= <1>;
				pupdelay	= <10>;
				pondelay	= <10>;
			};
		};
	};

	vmmcsd_fixed: fixedregulator@0 {
		compatible = "regulator-fixed";
		regulator-name = "vmmcsd_fixed";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
	};

	pwm0: omap-pwm@timer5 {
		compatible = "ti,omap-dmtimer-pwm";
		ti,timers = <&timer5>;
		#pwm-cells = <3>;
	};

	pwm1: omap-pwm@timer6 {
		compatible = "ti,omap-dmtimer-pwm";
		ti,timers = <&timer6>;
		#pwm-cells = <3>;
	};

	beeper: pwm-beep {
		compatible = "pwm-beeper";
		pwms = <&pwm0 0 0 0>;
	};

	pwmbacklight: pwm-bkl {
		compatible = "pwm-backlight";
		pwms = <&pwm1 0 5000000 0>;

		default-brightness-level = <255>;
		brightness-levels = <0 16 32 64 128 170 202 234 255>;

		power-supply = <&vmmcsd_fixed>;
		enable-gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
	};
};

&uart0 {		/* console uart */
	u-boot,dm-spl;
	status = "okay";
};

&uart1 {
	status = "okay";
};

&i2c0 {
	u-boot,dm-spl;
	status = "okay";
	clock-frequency = <400000>;

	tps: tps@24 {		/* PMIC controller */
		u-boot,dm-spl;
		reg = <0x24>;
		compatible = "ti,tps65217";

		tps_bl: backlight {
			compatible = "ti,tps65217-bl";
			isel = <1>;	/* 1 - ISET1, 2 ISET2 */
			fdim = <1000>;	/* TPS65217_BL_FDIM_1kHZ */
			default-brightness = <50>;
		};
	};
};

&i2c2 {
	status = "okay";
	clock-frequency = <100000>;
};

&edma {
	status = "okay";
};

&cppi41dma  {
	status = "okay";
};

&usb {
	status = "okay";
};

&usb_ctrl_mod {
	status = "okay";
};

&usb0_phy {
	status = "okay";
};

&usb1_phy {
	status = "okay";
};

&usb0 {
	status = "okay";
	dr_mode = "host";
};

&usb1 {
	status = "okay";
	dr_mode = "host";
};

&davinci_mdio {
	status = "okay";

	phy0: ethernet-phy@0 {
		reg = <1>;
	};

	phy1: ethernet-phy@1 {
		reg = <2>;
	};
};

&mac {
	dual_emac;
	status = "okay";
};

&cpsw_emac0 {
	phy-handle = <&phy0>;
	dual_emac_res_vlan = <1>;
	phy-mode = "mii";
};

&cpsw_emac1 {
	phy-handle = <&phy1>;
	dual_emac_res_vlan = <2>;
	phy-mode = "mii";
};

&mmc2 {
	vmmc-supply = <&vmmcsd_fixed>;
	bus-width = <0x4>;
	ti,non-removable;
	ti,needs-special-hs-handling;
	ti,vcc-aux-disable-is-sleep;
	status = "disabled";
};

&lcdc {
	status = "disabled";
};

&elm {
	status = "okay";
};

&sham {
	status = "okay";
};

&aes {
	status = "okay";
};

&gpio0 {
	u-boot,dm-spl;
	ti,no-reset-on-init;
};

&gpio1 {
	u-boot,dm-spl;
	ti,no-reset-on-init;
};

&gpio2 {
	u-boot,dm-spl;
	ti,no-reset-on-init;
};

&gpio3 {
	u-boot,dm-spl;
	ti,no-reset-on-init;
};

&wdt2 {
	ti,no-reset-on-init;
	ti,no-idle-on-init;
};

&tscadc {
	status = "okay";
	tsc {
		ti,wires = <4>;
		ti,x-plate-resistance = <200>;
		ti,zx-cutoff-ratio = <40>;
		ti,min_deviation = <60>;
		ti,max_deviation = <600>;
		ti,coordinate-readouts = <5>;
		ti,wire-config = <0x00 0x11 0x22 0x33>;

		bnr-buttons {
			Home-Button {};
		};
	};

	adc {
		ti,adc-channels = <5 6 7>;
	};
};

&gpmc {
	u-boot,dm-spl;
	status = "okay";
	pinctrl-names = "default";
	ranges = <0 0 0x08000000 0x10000000>;	/* CS0: NAND */
	nand@0,0 {
		compatible = "ti,omap2-nand";
		reg = <0 0 4>; /* CS0, offset 0, IO size 4 */
		interrupt-parent = <&gpmc>;
		rb-gpios = <&gpmc 1 GPIO_ACTIVE_HIGH>; /* gpmc_wait1 */
		ti,nand-ecc-opt = "bch8";
		ti,elm-id = <&elm>;
		nand-bus-width = <8>;
		gpmc,device-width = <1>;
		gpmc,sync-clk-ps = <0>;
		gpmc,cs-on-ns = <0>;
		gpmc,cs-rd-off-ns = <44>;
		gpmc,cs-wr-off-ns = <44>;
		gpmc,adv-on-ns = <6>;
		gpmc,adv-rd-off-ns = <34>;
		gpmc,adv-wr-off-ns = <44>;
		gpmc,we-on-ns = <0>;
		gpmc,we-off-ns = <40>;
		gpmc,oe-on-ns = <0>;
		gpmc,oe-off-ns = <54>;
		gpmc,access-ns = <64>;
		gpmc,rd-cycle-ns = <82>;
		gpmc,wr-cycle-ns = <82>;
		gpmc,wait-on-read = "true";
		gpmc,wait-on-write = "true";
		gpmc,bus-turnaround-ns = <0>;
		gpmc,cycle2cycle-delay-ns = <0>;
		gpmc,clk-activation-ns = <0>;
		gpmc,wait-monitoring-ns = <0>;
		gpmc,wr-access-ns = <40>;
		gpmc,wr-data-mux-bus-ns = <0>;
		gpmc,wait-pin = <1>;
		#address-cells = <1>;
		#size-cells = <1>;
		partition@0 {
			label = "NAND.MLO";
			reg = <0x00000000 0x000020000>;
		};
		partition@1 {
			label = "NAND.cfgscr";
			reg = <0x00020000 0x00020000>;
		};
		partition@2 {
			label = "NAND.dtb";
			reg = <0x00040000 0x00020000>;
		};
		partition@3 {
			label = "NAND.u-boot-env";
			reg = <0x00060000 0x00020000>;
		};
		partition@4 {
			label = "NAND.u-boot";
			reg = <0x00080000 0x00080000>;
		};
		partition@5 {
			label = "NAND.kernel";
			reg = <0x00100000 0x00400000>;
		};
		partition@6 {
			label = "NAND.rootfs";
			reg = <0x00500000 0x08000000>;
		};
		partition@7 {
			label = "NAND.user";
			reg = <0x08500000 0x17b00000>;
		};
	};
};
