// SPDX-License-Identifier: GPL-2.0-only
/*
 * Oriole Device Tree
 *
 * Copyright 2021-2023 Google LLC
 * Copyright 2023 Linaro Ltd - <peter.griffin@linaro.org>
 */

/dts-v1/;

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include "gs101-pinctrl.h"
#include "gs101.dtsi"

/ {
	model = "Oriole";
	compatible = "google,gs101-oriole", "google,gs101";

	aliases {
		serial0 = &serial_0;
	};

	chosen {
		/* Bootloader expects bootargs specified otherwise it crashes */
		bootargs = "";
		stdout-path = &serial_0;
	};

	gpio-keys {
		compatible = "gpio-keys";
		pinctrl-names = "default";
		pinctrl-0 = <&key_voldown>, <&key_volup>, <&key_power>;

		button-vol-down {
			label = "KEY_VOLUMEDOWN";
			linux,code = <KEY_VOLUMEDOWN>;
			gpios = <&gpa7 3 GPIO_ACTIVE_LOW>;
			wakeup-source;
		};

		button-vol-up {
			label = "KEY_VOLUMEUP";
			linux,code = <KEY_VOLUMEUP>;
			gpios = <&gpa8 1 GPIO_ACTIVE_LOW>;
			wakeup-source;
		};

		button-power {
			label = "KEY_POWER";
			linux,code = <KEY_POWER>;
			gpios = <&gpa10 1 GPIO_ACTIVE_LOW>;
			wakeup-source;
		};
	};
};

&ext_24_5m {
	clock-frequency = <24576000>;
};

&ext_200m {
	clock-frequency = <200000000>;
};

&hsi2c_8 {
	status = "okay";

	eeprom: eeprom@50 {
		compatible = "atmel,24c08";
		reg = <0x50>;
	};
};

&hsi2c_12 {
	status = "okay";
	/* TODO: add the devices once drivers exist */
};

&pinctrl_far_alive {
	key_voldown: key-voldown-pins {
		samsung,pins = "gpa7-3";
		samsung,pin-function = <GS101_PIN_FUNC_EINT>;
		samsung,pin-pud = <GS101_PIN_PULL_NONE>;
		samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
	};

	key_volup: key-volup-pins {
		samsung,pins = "gpa8-1";
		samsung,pin-function = <GS101_PIN_FUNC_EINT>;
		samsung,pin-pud = <GS101_PIN_PULL_NONE>;
		samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
	};
};

&pinctrl_gpio_alive {
	key_power: key-power-pins {
		samsung,pins = "gpa10-1";
		samsung,pin-function = <GS101_PIN_FUNC_EINT>;
		samsung,pin-pud = <GS101_PIN_PULL_NONE>;
		samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
	};
};

&serial_0 {
	pinctrl-names = "default";
	pinctrl-0 = <&uart0_bus>;
	status = "okay";
};

&usi_uart {
	samsung,clkreq-on; /* needed for UART mode */
	status = "okay";
};

&usi8 {
	samsung,mode = <USI_V2_I2C>;
	status = "okay";
};

&usi12 {
	samsung,mode = <USI_V2_I2C>;
	status = "okay";
};

&watchdog_cl0 {
	timeout-sec = <30>;
	status = "okay";
};
