/*
 * Copyright 2018 Foundries.io Ltd
 * SPDX-License-Identifier: Apache-2.0
 */

/ {
	aliases {
		led0 = &green_led;
		led1 = &blue_led;
		led2 = &red_led;
		led3 = &sts_led;
		pwm-led0 = &blue_pwm_led;
		pwm-led1 = &green_pwm_led;
		pwm-led2 = &red_pwm_led;
		blue-pwm-led = &blue_pwm_led;
		green-pwm-led = &green_pwm_led;
		red-pwm-led = &red_pwm_led;
		sw0 = &user_button_2;
		sw1 = &user_button_3;
		sw2 = &user_button_4;
		sw3 = &user_button_5;
	};

	leds {
		compatible = "gpio-leds";
		blue_led: led_0 {
			gpios = <&gpioa 22 GPIO_ACTIVE_HIGH>;
			label = "User LD1";
		};
		green_led: led_1 {
			gpios = <&gpioa 23 GPIO_ACTIVE_HIGH>;
			label = "User LD2";
		};
		red_led: led_2 {
			gpios = <&gpioa 24 GPIO_ACTIVE_HIGH>;
			label = "User LD3";
		};
		sts_led: led_3 {
			gpios = <&gpioe 0 GPIO_ACTIVE_HIGH>;
			label = "User LD4";
		};
	};

	pwmleds {
		compatible = "pwm-leds";
		blue_pwm_led: pwm_led_0 {
			pwms = <&tpm2 2 0 0>;
			label = "User PWM LD1";
		};
		green_pwm_led: pwm_led_1 {
			pwms = <&tpm2 1 0 0>;
			label = "User PWM LD2";
		};
		red_pwm_led: pwm_led_2 {
			pwms = <&tpm2 0 0 0>;
			label = "User PWM LD3";
		};
	};

	gpio_keys {
		compatible = "gpio-keys";
		user_button_2: button_0 {
			label = "User SW2";
			gpios = <&gpioa 0 GPIO_ACTIVE_LOW>;
		};
		user_button_3: button_1 {
			label = "User SW3";
			gpios = <&gpioe 8 GPIO_ACTIVE_LOW>;
		};
		user_button_4: button_2 {
			label = "User SW4";
			gpios = <&gpioe 9 GPIO_ACTIVE_LOW>;
		};
		user_button_5: button_3 {
			label = "User SW5";
			gpios = <&gpioe 12 GPIO_ACTIVE_LOW>;
		};
	};

	arduino_header: connector {
		compatible = "arduino-header-r3";
		#gpio-cells = <2>;
		gpio-map-mask = <0xffffffff 0xffffffc0>;
		gpio-map-pass-thru = <0 0x3f>;
		gpio-map = <0 0 &gpioc 11 0>,	/* A0 */
			   <1 0 &gpioc 12 0>,	/* A1 */
			   <2 0 &gpiob 9 0>,	/* A2 */
			   <3 0 &gpioe 4 0>,	/* A3 */
			   <4 0 &gpioe 10 0>,	/* A4 */
			   <5 0 &gpioe 11 0>,	/* A5 */
			   <6 0 &gpioa 25 0>,	/* D0 */
			   <7 0 &gpioa 26 0>,	/* D1 */
			   <8 0 &gpioa 27 0>,	/* D2 */
			   <9 0 &gpiob 13 0>,	/* D3 */
			   <10 0 &gpiob 14 0>,	/* D4 */
			   <11 0 &gpioa 30 0>,	/* D5 */
			   <12 0 &gpioa 31 0>,	/* D6 */
			   <13 0 &gpiob 1 0>,	/* D7 */
			   <14 0 &gpiob 2 0>,	/* D8 */
			   <15 0 &gpiob 3 0>,	/* D9 */
			   <16 0 &gpiob 6 0>,	/* D10 */
			   <17 0 &gpiob 5 0>,	/* D11 */
			   <18 0 &gpiob 7 0>,	/* D12 */
			   <19 0 &gpiob 4 0>,	/* D13 */
			   <20 0 &gpioc 9 0>,	/* D14 */
			   <21 0 &gpioc 10 0>;	/* D15 */
	};
};

arduino_serial: &lpuart1 {};

&lpuart0 {
	current-speed = <115200>;
	status = "okay";
};

arduino_i2c: &lpi2c0 {
	status = "okay";
};

&lpi2c3 {
	status = "okay";

	fxos8700@1e {
		compatible = "nxp,fxos8700";
		reg = <0x1e>;
		label = "FXOS8700";
		reset-gpios = <&gpioe 27 GPIO_ACTIVE_HIGH>;
		int1-gpios = <&gpioe 1 GPIO_ACTIVE_LOW>;
		int2-gpios = <&gpioe 22 GPIO_ACTIVE_LOW>;
	};
};

arduino_spi: &lpspi0 {
	status = "okay";
};

&lpspi1 {
	status = "okay";
	cs-gpios = <&gpiob 22 GPIO_ACTIVE_LOW>;
	mx25r32: mx25r3235f@0 {
		compatible = "jedec,spi-nor";
		reg = <0>;
		spi-max-frequency = <80000000>;
		label = "MX25R32";
		jedec-id = [c2 28 16];
		size = <33554432>;
	};
};

&tpm2 {
	status = "okay";
};
