// SPDX-License-Identifier: GPL-2.0 OR MIT
/*
 * Copyright (C) 2021 StarFive Technology Co., Ltd.
 * Copyright (C) 2021 Emil Renner Berthing <kernel@esmil.dk>
 */

/dts-v1/;
#include "jh7100.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/leds/common.h>
#include <dt-bindings/pinctrl/pinctrl-starfive-jh7100.h>

/ {
	aliases {
		serial0 = &uart3;
	};

	chosen {
		stdout-path = "serial0:115200n8";
	};

	cpus {
		timebase-frequency = <6250000>;
	};

	memory@80000000 {
		device_type = "memory";
		reg = <0x0 0x80000000 0x2 0x0>;
	};

	leds {
		compatible = "gpio-leds";

		led-ack {
			gpios = <&gpio 43 GPIO_ACTIVE_HIGH>;
			color = <LED_COLOR_ID_GREEN>;
			function = LED_FUNCTION_HEARTBEAT;
			linux,default-trigger = "heartbeat";
			label = "ack";
		};
	};
};

&gpio {
	i2c0_pins: i2c0-0 {
		i2c-pins {
			pinmux = <GPIOMUX(62, GPO_LOW,
				  GPO_I2C0_PAD_SCK_OEN,
				  GPI_I2C0_PAD_SCK_IN)>,
				 <GPIOMUX(61, GPO_LOW,
				  GPO_I2C0_PAD_SDA_OEN,
				  GPI_I2C0_PAD_SDA_IN)>;
			bias-disable; /* external pull-up */
			input-enable;
			input-schmitt-enable;
		};
	};

	i2c1_pins: i2c1-0 {
		i2c-pins {
			pinmux = <GPIOMUX(47, GPO_LOW,
				  GPO_I2C1_PAD_SCK_OEN,
				  GPI_I2C1_PAD_SCK_IN)>,
				 <GPIOMUX(48, GPO_LOW,
				  GPO_I2C1_PAD_SDA_OEN,
				  GPI_I2C1_PAD_SDA_IN)>;
			bias-pull-up;
			input-enable;
			input-schmitt-enable;
		};
	};

	i2c2_pins: i2c2-0 {
		i2c-pins {
			pinmux = <GPIOMUX(60, GPO_LOW,
				  GPO_I2C2_PAD_SCK_OEN,
				  GPI_I2C2_PAD_SCK_IN)>,
				 <GPIOMUX(59, GPO_LOW,
				  GPO_I2C2_PAD_SDA_OEN,
				  GPI_I2C2_PAD_SDA_IN)>;
			bias-disable; /* external pull-up */
			input-enable;
			input-schmitt-enable;
		};
	};

	uart3_pins: uart3-0 {
		rx-pins {
			pinmux = <GPIOMUX(13, GPO_LOW, GPO_DISABLE,
				  GPI_UART3_PAD_SIN)>;
			bias-pull-up;
			drive-strength = <14>;
			input-enable;
			input-schmitt-enable;
			slew-rate = <0>;
		};
		tx-pins {
			pinmux = <GPIOMUX(14, GPO_UART3_PAD_SOUT,
				  GPO_ENABLE, GPI_NONE)>;
			bias-disable;
			drive-strength = <35>;
			input-disable;
			input-schmitt-disable;
			slew-rate = <0>;
		};
	};
};

&i2c0 {
	clock-frequency = <100000>;
	i2c-sda-hold-time-ns = <300>;
	i2c-sda-falling-time-ns = <500>;
	i2c-scl-falling-time-ns = <500>;
	pinctrl-names = "default";
	pinctrl-0 = <&i2c0_pins>;
	status = "okay";

	pmic@5e {
		compatible = "ti,tps65086";
		reg = <0x5e>;
		gpio-controller;
		#gpio-cells = <2>;

		regulators {
		};
	};
};

&i2c1 {
	clock-frequency = <400000>;
	i2c-sda-hold-time-ns = <300>;
	i2c-sda-falling-time-ns = <100>;
	i2c-scl-falling-time-ns = <100>;
	pinctrl-names = "default";
	pinctrl-0 = <&i2c1_pins>;
	status = "okay";
};

&i2c2 {
	clock-frequency = <100000>;
	i2c-sda-hold-time-ns = <300>;
	i2c-sda-falling-time-ns = <500>;
	i2c-scl-falling-time-ns = <500>;
	pinctrl-names = "default";
	pinctrl-0 = <&i2c2_pins>;
	status = "okay";
};

&osc_sys {
	clock-frequency = <25000000>;
};

&osc_aud {
	clock-frequency = <27000000>;
};

&uart3 {
	pinctrl-names = "default";
	pinctrl-0 = <&uart3_pins>;
	status = "okay";
};
