162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0 OR MIT
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (C) 2021 StarFive Technology Co., Ltd.
462306a36Sopenharmony_ci * Copyright (C) 2021 Emil Renner Berthing <kernel@esmil.dk>
562306a36Sopenharmony_ci */
662306a36Sopenharmony_ci
762306a36Sopenharmony_ci/dts-v1/;
862306a36Sopenharmony_ci#include "jh7100.dtsi"
962306a36Sopenharmony_ci#include <dt-bindings/gpio/gpio.h>
1062306a36Sopenharmony_ci#include <dt-bindings/leds/common.h>
1162306a36Sopenharmony_ci#include <dt-bindings/pinctrl/pinctrl-starfive-jh7100.h>
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ci/ {
1462306a36Sopenharmony_ci	aliases {
1562306a36Sopenharmony_ci		serial0 = &uart3;
1662306a36Sopenharmony_ci	};
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ci	chosen {
1962306a36Sopenharmony_ci		stdout-path = "serial0:115200n8";
2062306a36Sopenharmony_ci	};
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ci	cpus {
2362306a36Sopenharmony_ci		timebase-frequency = <6250000>;
2462306a36Sopenharmony_ci	};
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ci	memory@80000000 {
2762306a36Sopenharmony_ci		device_type = "memory";
2862306a36Sopenharmony_ci		reg = <0x0 0x80000000 0x2 0x0>;
2962306a36Sopenharmony_ci	};
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ci	leds {
3262306a36Sopenharmony_ci		compatible = "gpio-leds";
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ci		led-ack {
3562306a36Sopenharmony_ci			gpios = <&gpio 43 GPIO_ACTIVE_HIGH>;
3662306a36Sopenharmony_ci			color = <LED_COLOR_ID_GREEN>;
3762306a36Sopenharmony_ci			function = LED_FUNCTION_HEARTBEAT;
3862306a36Sopenharmony_ci			linux,default-trigger = "heartbeat";
3962306a36Sopenharmony_ci			label = "ack";
4062306a36Sopenharmony_ci		};
4162306a36Sopenharmony_ci	};
4262306a36Sopenharmony_ci};
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_ci&gpio {
4562306a36Sopenharmony_ci	i2c0_pins: i2c0-0 {
4662306a36Sopenharmony_ci		i2c-pins {
4762306a36Sopenharmony_ci			pinmux = <GPIOMUX(62, GPO_LOW,
4862306a36Sopenharmony_ci				  GPO_I2C0_PAD_SCK_OEN,
4962306a36Sopenharmony_ci				  GPI_I2C0_PAD_SCK_IN)>,
5062306a36Sopenharmony_ci				 <GPIOMUX(61, GPO_LOW,
5162306a36Sopenharmony_ci				  GPO_I2C0_PAD_SDA_OEN,
5262306a36Sopenharmony_ci				  GPI_I2C0_PAD_SDA_IN)>;
5362306a36Sopenharmony_ci			bias-disable; /* external pull-up */
5462306a36Sopenharmony_ci			input-enable;
5562306a36Sopenharmony_ci			input-schmitt-enable;
5662306a36Sopenharmony_ci		};
5762306a36Sopenharmony_ci	};
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_ci	i2c1_pins: i2c1-0 {
6062306a36Sopenharmony_ci		i2c-pins {
6162306a36Sopenharmony_ci			pinmux = <GPIOMUX(47, GPO_LOW,
6262306a36Sopenharmony_ci				  GPO_I2C1_PAD_SCK_OEN,
6362306a36Sopenharmony_ci				  GPI_I2C1_PAD_SCK_IN)>,
6462306a36Sopenharmony_ci				 <GPIOMUX(48, GPO_LOW,
6562306a36Sopenharmony_ci				  GPO_I2C1_PAD_SDA_OEN,
6662306a36Sopenharmony_ci				  GPI_I2C1_PAD_SDA_IN)>;
6762306a36Sopenharmony_ci			bias-pull-up;
6862306a36Sopenharmony_ci			input-enable;
6962306a36Sopenharmony_ci			input-schmitt-enable;
7062306a36Sopenharmony_ci		};
7162306a36Sopenharmony_ci	};
7262306a36Sopenharmony_ci
7362306a36Sopenharmony_ci	i2c2_pins: i2c2-0 {
7462306a36Sopenharmony_ci		i2c-pins {
7562306a36Sopenharmony_ci			pinmux = <GPIOMUX(60, GPO_LOW,
7662306a36Sopenharmony_ci				  GPO_I2C2_PAD_SCK_OEN,
7762306a36Sopenharmony_ci				  GPI_I2C2_PAD_SCK_IN)>,
7862306a36Sopenharmony_ci				 <GPIOMUX(59, GPO_LOW,
7962306a36Sopenharmony_ci				  GPO_I2C2_PAD_SDA_OEN,
8062306a36Sopenharmony_ci				  GPI_I2C2_PAD_SDA_IN)>;
8162306a36Sopenharmony_ci			bias-disable; /* external pull-up */
8262306a36Sopenharmony_ci			input-enable;
8362306a36Sopenharmony_ci			input-schmitt-enable;
8462306a36Sopenharmony_ci		};
8562306a36Sopenharmony_ci	};
8662306a36Sopenharmony_ci
8762306a36Sopenharmony_ci	uart3_pins: uart3-0 {
8862306a36Sopenharmony_ci		rx-pins {
8962306a36Sopenharmony_ci			pinmux = <GPIOMUX(13, GPO_LOW, GPO_DISABLE,
9062306a36Sopenharmony_ci				  GPI_UART3_PAD_SIN)>;
9162306a36Sopenharmony_ci			bias-pull-up;
9262306a36Sopenharmony_ci			drive-strength = <14>;
9362306a36Sopenharmony_ci			input-enable;
9462306a36Sopenharmony_ci			input-schmitt-enable;
9562306a36Sopenharmony_ci			slew-rate = <0>;
9662306a36Sopenharmony_ci		};
9762306a36Sopenharmony_ci		tx-pins {
9862306a36Sopenharmony_ci			pinmux = <GPIOMUX(14, GPO_UART3_PAD_SOUT,
9962306a36Sopenharmony_ci				  GPO_ENABLE, GPI_NONE)>;
10062306a36Sopenharmony_ci			bias-disable;
10162306a36Sopenharmony_ci			drive-strength = <35>;
10262306a36Sopenharmony_ci			input-disable;
10362306a36Sopenharmony_ci			input-schmitt-disable;
10462306a36Sopenharmony_ci			slew-rate = <0>;
10562306a36Sopenharmony_ci		};
10662306a36Sopenharmony_ci	};
10762306a36Sopenharmony_ci};
10862306a36Sopenharmony_ci
10962306a36Sopenharmony_ci&i2c0 {
11062306a36Sopenharmony_ci	clock-frequency = <100000>;
11162306a36Sopenharmony_ci	i2c-sda-hold-time-ns = <300>;
11262306a36Sopenharmony_ci	i2c-sda-falling-time-ns = <500>;
11362306a36Sopenharmony_ci	i2c-scl-falling-time-ns = <500>;
11462306a36Sopenharmony_ci	pinctrl-names = "default";
11562306a36Sopenharmony_ci	pinctrl-0 = <&i2c0_pins>;
11662306a36Sopenharmony_ci	status = "okay";
11762306a36Sopenharmony_ci
11862306a36Sopenharmony_ci	pmic@5e {
11962306a36Sopenharmony_ci		compatible = "ti,tps65086";
12062306a36Sopenharmony_ci		reg = <0x5e>;
12162306a36Sopenharmony_ci		gpio-controller;
12262306a36Sopenharmony_ci		#gpio-cells = <2>;
12362306a36Sopenharmony_ci
12462306a36Sopenharmony_ci		regulators {
12562306a36Sopenharmony_ci		};
12662306a36Sopenharmony_ci	};
12762306a36Sopenharmony_ci};
12862306a36Sopenharmony_ci
12962306a36Sopenharmony_ci&i2c1 {
13062306a36Sopenharmony_ci	clock-frequency = <400000>;
13162306a36Sopenharmony_ci	i2c-sda-hold-time-ns = <300>;
13262306a36Sopenharmony_ci	i2c-sda-falling-time-ns = <100>;
13362306a36Sopenharmony_ci	i2c-scl-falling-time-ns = <100>;
13462306a36Sopenharmony_ci	pinctrl-names = "default";
13562306a36Sopenharmony_ci	pinctrl-0 = <&i2c1_pins>;
13662306a36Sopenharmony_ci	status = "okay";
13762306a36Sopenharmony_ci};
13862306a36Sopenharmony_ci
13962306a36Sopenharmony_ci&i2c2 {
14062306a36Sopenharmony_ci	clock-frequency = <100000>;
14162306a36Sopenharmony_ci	i2c-sda-hold-time-ns = <300>;
14262306a36Sopenharmony_ci	i2c-sda-falling-time-ns = <500>;
14362306a36Sopenharmony_ci	i2c-scl-falling-time-ns = <500>;
14462306a36Sopenharmony_ci	pinctrl-names = "default";
14562306a36Sopenharmony_ci	pinctrl-0 = <&i2c2_pins>;
14662306a36Sopenharmony_ci	status = "okay";
14762306a36Sopenharmony_ci};
14862306a36Sopenharmony_ci
14962306a36Sopenharmony_ci&osc_sys {
15062306a36Sopenharmony_ci	clock-frequency = <25000000>;
15162306a36Sopenharmony_ci};
15262306a36Sopenharmony_ci
15362306a36Sopenharmony_ci&osc_aud {
15462306a36Sopenharmony_ci	clock-frequency = <27000000>;
15562306a36Sopenharmony_ci};
15662306a36Sopenharmony_ci
15762306a36Sopenharmony_ci&uart3 {
15862306a36Sopenharmony_ci	pinctrl-names = "default";
15962306a36Sopenharmony_ci	pinctrl-0 = <&uart3_pins>;
16062306a36Sopenharmony_ci	status = "okay";
16162306a36Sopenharmony_ci};
162