/*
 * Copyright (c) 2021 Tokita, Hiroshi <tokita.hiroshi@gmail.com>
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/ {
	chosen {
		zephyr,console = &usart0;
		zephyr,shell-uart = &usart0;
		zephyr,sram = &sram0;
		zephyr,flash = &flash0;
		zephyr,display = &lcd0;
		sdhc0 = &sdhc0;
	};

	leds {
		compatible = "gpio-leds";
		led_red: led_red {
			gpios = <&gpioc 13 GPIO_ACTIVE_LOW>;
			label = "LED_R";
		};
		led_green: led_green {
			gpios = <&gpioa 1 GPIO_ACTIVE_LOW>;
			label = "LED_G";
		};
		led_blue: led_blue {
			gpios = <&gpioa 2 GPIO_ACTIVE_LOW>;
			label = "LED_B";
		};
	};

	gpio_keys {
		compatible = "gpio-keys";
		button_boot0: button_boot0 {
			label = "BUTTON_BOOT0";
			gpios = <&gpioa 8 GPIO_ACTIVE_HIGH>;
		};
	};

	pwmleds {
		compatible = "pwm-leds";

		/* NOTE: bridge TIMER1_CH1 and LED_GREEN (PA1) */
		pwm_led_green: pwm_led_green {
			pwms = <&pwm1 1 PWM_MSEC(20) PWM_POLARITY_NORMAL>;
			label = "PWM_LED_G";
		};
		/* NOTE: bridge TIMER1_CH2 and LED_BLUE (PA2) */
		pwm_led_blue: pwm_led_blue {
			pwms = <&pwm1 2 PWM_MSEC(20) PWM_POLARITY_NORMAL>;
			label = "PWM_LED_B";
		};
	};

	aliases {
		led0 = &led_red;
		led1 = &led_green;
		led2 = &led_blue;
		pwm-led0 = &pwm_led_green;
		pwm-led1 = &pwm_led_blue;
		sw0 = &button_boot0;
		watchdog0 = &fwdgt;
	};
};

&gpioa {
	status = "okay";
};

&gpiob {
	status = "okay";
};

&gpioc {
	status = "okay";
};

&usart0 {
	status = "okay";
	current-speed = <115200>;
	pinctrl-0 = <&usart0_default>;
	pinctrl-names = "default";
};

&timer1 {
	status = "okay";
	prescaler = <4096>;

	pwm1: pwm {
		status = "okay";
		pinctrl-0 = <&pwm1_default>;
		pinctrl-names = "default";
	};
};

&dac {
	status = "okay";
	pinctrl-0 = <&dac_default>;
	pinctrl-names = "default";
};

&spi0 {
	status = "okay";
	pinctrl-0 = <&spi0_default>;
	pinctrl-names = "default";

	cs-gpios = <&gpiob 2 GPIO_ACTIVE_LOW>;

	/* longan nano has LCD with st7735s controller.
	 * It can use with st7735r driver.
	 */
	lcd0: lcd@0 {
		compatible = "sitronix,st7735r";
		reg = <0>;
		status = "okay";
		reset-gpios = <&gpiob 1 GPIO_ACTIVE_LOW>;
		cmd-data-gpios = <&gpiob 0 GPIO_ACTIVE_LOW>;
		width = <160>;
		height = <80>;
		inversion-on;
		rgb-is-inverted;
		x-offset = <1>;
		y-offset = <26>;
		pwctr1 = [62 02 04];
		pwctr2 = [C0];
		pwctr3 = [0D 00];
		pwctr4 = [8D 6A];
		pwctr5 = [8D EE];
		invctr = <3>;
		frmctr1 = [05 3A 3A];
		frmctr2 = [05 3A 3A];
		frmctr3 = [05 3A 3A 05 3A 3A];
		vmctr1 = <14>;
		gamctrp1 = [10 0E 02 03 0E 07 02 07 0A 12 27 37 00 0D 0E 10];
		gamctrn1 = [10 0E 03 03 0F 06 02 08 0A 13 26 36 00 0D 0E 10];
		colmod = <5>;
		madctl = <120>;
		caset = [00 01 00 a0];
		raset = [00 1a 00 69];

		spi-max-frequency = <4000000>;
	};
};

&spi1 {
	status = "okay";
	pinctrl-0 = <&spi1_default>;
	pinctrl-names = "default";

	cs-gpios = <&gpiob 12 GPIO_ACTIVE_LOW>;

	sdhc0: sdhc@0 {
		compatible = "zephyr,sdhc-spi-slot";
		reg = <0>;
		status = "okay";
		spi-max-frequency = <24000000>;
		mmc {
			compatible = "zephyr,sdmmc-disk";
			status = "okay";
		};
	};
};

&fwdgt {
	status = "okay";
};
