#include "armada-388-clearfog-base.dts"

&w25q32 {
	status = "okay";
};

/ {
	clocks {
		spi_uart_clk: osc_max14830 {
			compatible = "fixed-clock";
			#clock-cells = <0>;
			clock-frequency = <3686400>;
		};
	};

	soc {
		internal-regs {
			sdhci@d8000 {
				/delete-property/ cd-gpios;
				broken-cd;
			};
		};
	};

	gpio_i2c {
		compatible = "i2c-gpio";
		sda-gpios = <&gpio0 25 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
		scl-gpios = <&gpio0 24 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
		i2c-gpio.delay-us = <1>;
		#address-cells = <1>;
		#size-cells = <0>;
	};
};

&uart1_pins {
	status = "disabled";
};

&uart1 {
	status = "disabled";
};

&gpio1 {
	spi_int {
		/* MPP54: this needs an external pull-up */
		gpio-hog;
		gpios = <22 GPIO_ACTIVE_HIGH>;
		input;
		line-name = "SPI-INT";
	};
};

&spi1 {
	cs-gpios = <0>, <&gpio0 22 GPIO_ACTIVE_HIGH>, <0>, <&gpio0 29 GPIO_ACTIVE_HIGH>;

	max14830: max14830@2 {
		compatible = "maxim,max14830";
		reg = <2>;
		clocks = <&spi_uart_clk>;
		clock-names = "xtal";
		interrupt-parent = <&gpio1>;
		interrupts = <22 IRQ_TYPE_LEVEL_LOW>;
		gpio-controller;
		#gpio-cells = <2>;
		spi-max-frequency = <26000000>;

		gpio-line-names =
			"WSS_HWRST",
			"WSS_SSD",
			"OCM_HS_IN",
			"OCM_RESET",
			"WSS_MRST",
			"I2C_XOR_ENABLE",
			"I2C_XORH",
			"I2C_BB_ENABLE",
			"GPIO_K6",
			"",
			"",
			"EDFA1_AMP_DISABLE",
			"EDFA2_AMP_DISABLE",
			"EDFA1_OUT_POWER_MUTE",
			"EDFA2_OUT_POWER_MUTE",
			"EXP_GPIO1"
			;

		i2c_bitbang_enable {
			gpio-hog;
			gpios = <7 GPIO_ACTIVE_HIGH>;
			output-high;
			line-name = "I2C bitbang bus";
		};

		i2c_xor_high {
			gpio-hog;
			gpios = <6 GPIO_ACTIVE_HIGH>;
			output-high; // XOR byte 0b1001111
			line-name = "I2C XOR high";
		};

		i2c_xor_enable {
			gpio-hog;
			gpios = <5 GPIO_ACTIVE_HIGH>;
			output-low;
			line-name = "I2C addr xlate";
		};
	};

	gpio_spi_chips: gpio@1 {
		compatible = "microchip,mcp23s17";
		reg = <1>;
		interrupt-parent = <&gpio1>;
		interrupts = <22 IRQ_TYPE_LEVEL_LOW>;
		interrupt-controller;
		#interrupt-cells = <2>;
		gpio-controller;
		#gpio-cells = <2>;
		microchip,spi-present-mask = <0x06>; /* extra addresses 1 and 2 */
		microchip,irq-mirror;
		drive-open-drain;
		spi-max-frequency = <10000000>;

		// FIXME: this naming is incompatible with that hack which makes these devices visible as 2*16pin standalone chips
		gpio-bank@1 {
			address = <1>;
			gpio-line-names =
				"EDFA1_RESET",
				"EDFA2_RESET",
				"PMB_ALERT",
				"EXP_GPIO2",
				"WSS_SC",
				"WSS_RST",
				"I2C_XOR_RDY",
				"OCM_HS_OUT",

				"EDFA1_OUT_REFLECT_A",
				"EDFA1_PUMP_CURRENT_A",
				"EDFA1_ST1_IN_LOS_A",
				"EDFA1_ST2_IN_LOS_A",
				"EDFA1_ST2_OUT_GAIN_A",
				"EDFA1_CASE_TEMP_A",
				"EDFA1_ST1_OUT_GAIN_A",
				"EDFA1_PUMP_TEMP_A";
		};

		gpio-bank@2 {
			address = <2>;
			gpio-line-names =
				/* these are all grounded */
				"GND",
				"GND",
				"GND",
				"GND",
				"GND",
				"GND",
				"GND",
				"GND",

				"EDFA2_OUT_REFLECT_A",
				"EDFA2_PUMP_CURRENT_A",
				"EDFA2_ST1_IN_LOS_A",
				"EDFA2_ST2_IN_LOS_A",
				"EDFA2_ST2_OUT_GAIN_A",
				"EDFA2_CASE_TEMP_A",
				"EDFA2_ST1_OUT_GAIN_A",
				"EDFA2_PUMP_TEMP_A";
		};

		// FIXME: this hogs both .1 and .2 chips' #6 pin...
		i2c_xor_ready {
			gpio-hog;
			gpios = <6 GPIO_ACTIVE_HIGH>;
			input;
			line-name = "I2C XOR ready";
		};
	};

	lumentum_ocm: lumentum-ocm@3 {
		compatible = "lumentum-ocm";
		reg = <3>;
		spi-max-frequency = <12000000>;
		// The SPI slave is CPOL=1, but the rest of the devices is CPOL=0 and our SPI master
		// appears to have troubles with CPOL=1 toggling -> let's use a physical inverter
	};
};

&i2c1 {
	eeprom@53 {
		compatible = "atmel,24c128";
		reg = <0x53>;
		pagesize = <64>;
		// There's no read-only parameter because we want to enable flashing the EEPROM by
		// installing a physical jumper. It doesn't matter that Linux still considers this
		// device as writable during normal operation because any write fill fail anyway
		// on the HW level. At least we can install that jumper and make the writes pass
		// magically without fiddling with the DT and rebooting.
	};

	tlc59116@60 {
		#address-cells = <1>;
		#size-cells = <0>;
		#gpio-cells = <2>;
		compatible = "ti,tlc59116";
		reg = <0x60>;

		sfp_red@0 {
			label = "sfp:red";
			reg = <0>;
		};

		sfp_green@1 {
			label = "sfp:green";
			reg = <1>;
		};

		sfp_blue@2 {
			label = "sfp:blue";
			reg = <2>;
		};

		// OUT3 remains unused

		line_red@4 {
			label = "line:red";
			reg = <4>;
		};

		line_green@5 {
			label = "line:green";
			reg = <5>;
		};

		line_blue@6 {
			label = "line:blue";
			reg = <6>;
		};

		led5_red@7 {
			label = "led5:red";
			reg = <7>;
		};

		status_red@8 {
			label = "status:red";
			reg = <8>;
		};

		status_green@9 {
			label = "status:green";
			reg = <9>;
			linux,default-trigger = "timer";
		};

		status_blue@10 {
			label = "status:blue";
			reg = <10>;
		};

		led5_green@11 {
			label = "led5:green";
			reg = <11>;
		};

		uid_red@12 {
			label = "uid:red";
			reg = <12>;
		};

		uid_green@13 {
			label = "uid:green";
			reg = <13>;
		};

		uid_blue@14 {
			label = "uid:blue";
			reg = <14>;
		};

		led5_blue@15 {
			label = "led5:blue";
			reg = <15>;
		};
	};

	/* ADT7463: it doesn't use the DT */
};
