162306a36Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (c) 2020 Microsemi Corporation
462306a36Sopenharmony_ci */
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci#include "serval.dtsi"
762306a36Sopenharmony_ci
862306a36Sopenharmony_ci/ {
962306a36Sopenharmony_ci	aliases {
1062306a36Sopenharmony_ci		serial0 = &uart0;
1162306a36Sopenharmony_ci		i2c104  = &i2c104;
1262306a36Sopenharmony_ci		i2c105  = &i2c105;
1362306a36Sopenharmony_ci		i2c106  = &i2c106;
1462306a36Sopenharmony_ci		i2c107  = &i2c107;
1562306a36Sopenharmony_ci		i2c108  = &i2c108;
1662306a36Sopenharmony_ci		i2c109  = &i2c109;
1762306a36Sopenharmony_ci	};
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci	chosen {
2062306a36Sopenharmony_ci		stdout-path = "serial0:115200n8";
2162306a36Sopenharmony_ci	};
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci	i2c0_imux: i2c0-imux {
2462306a36Sopenharmony_ci		compatible = "i2c-mux-pinctrl";
2562306a36Sopenharmony_ci		#address-cells = <1>;
2662306a36Sopenharmony_ci		#size-cells = <0>;
2762306a36Sopenharmony_ci		i2c-parent = <&i2c0>;
2862306a36Sopenharmony_ci		pinctrl-names =
2962306a36Sopenharmony_ci		"i2c104", "i2c105", "i2c106", "i2c107",
3062306a36Sopenharmony_ci		"i2c108", "i2c109", "idle";
3162306a36Sopenharmony_ci		pinctrl-0 = <&i2cmux_0>;
3262306a36Sopenharmony_ci		pinctrl-1 = <&i2cmux_1>;
3362306a36Sopenharmony_ci		pinctrl-2 = <&i2cmux_2>;
3462306a36Sopenharmony_ci		pinctrl-3 = <&i2cmux_3>;
3562306a36Sopenharmony_ci		pinctrl-4 = <&i2cmux_4>;
3662306a36Sopenharmony_ci		pinctrl-5 = <&i2cmux_5>;
3762306a36Sopenharmony_ci		pinctrl-6 = <&i2cmux_pins_i>;
3862306a36Sopenharmony_ci		i2c104: i2c_sfp0@0 {
3962306a36Sopenharmony_ci			reg = <0>;
4062306a36Sopenharmony_ci			#address-cells = <1>;
4162306a36Sopenharmony_ci			#size-cells = <0>;
4262306a36Sopenharmony_ci		};
4362306a36Sopenharmony_ci		i2c105: i2c_sfp1@1 {
4462306a36Sopenharmony_ci			reg = <1>;
4562306a36Sopenharmony_ci			#address-cells = <1>;
4662306a36Sopenharmony_ci			#size-cells = <0>;
4762306a36Sopenharmony_ci		};
4862306a36Sopenharmony_ci		i2c106: i2c_sfp2@2 {
4962306a36Sopenharmony_ci			reg = <2>;
5062306a36Sopenharmony_ci			#address-cells = <1>;
5162306a36Sopenharmony_ci			#size-cells = <0>;
5262306a36Sopenharmony_ci		};
5362306a36Sopenharmony_ci		i2c107: i2c_sfp3@3 {
5462306a36Sopenharmony_ci			reg = <3>;
5562306a36Sopenharmony_ci			#address-cells = <1>;
5662306a36Sopenharmony_ci			#size-cells = <0>;
5762306a36Sopenharmony_ci		};
5862306a36Sopenharmony_ci		i2c108: i2c_sfp4@4 {
5962306a36Sopenharmony_ci			reg = <4>;
6062306a36Sopenharmony_ci			#address-cells = <1>;
6162306a36Sopenharmony_ci			#size-cells = <0>;
6262306a36Sopenharmony_ci		};
6362306a36Sopenharmony_ci		i2c109: i2c_sfp5@5 {
6462306a36Sopenharmony_ci			reg = <5>;
6562306a36Sopenharmony_ci			#address-cells = <1>;
6662306a36Sopenharmony_ci			#size-cells = <0>;
6762306a36Sopenharmony_ci		};
6862306a36Sopenharmony_ci};
6962306a36Sopenharmony_ci
7062306a36Sopenharmony_ci};
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_ci&uart0 {
7362306a36Sopenharmony_ci	status = "okay";
7462306a36Sopenharmony_ci};
7562306a36Sopenharmony_ci
7662306a36Sopenharmony_ci&uart2 {
7762306a36Sopenharmony_ci	status = "okay";
7862306a36Sopenharmony_ci};
7962306a36Sopenharmony_ci
8062306a36Sopenharmony_ci&gpio {
8162306a36Sopenharmony_ci	i2c_pins: i2c-pins {
8262306a36Sopenharmony_ci		pins = "GPIO_7"; /* No "default" scl for i2c0 */
8362306a36Sopenharmony_ci		function = "twi";
8462306a36Sopenharmony_ci	};
8562306a36Sopenharmony_ci	i2cmux_pins_i: i2cmux-pins {
8662306a36Sopenharmony_ci		pins = "GPIO_11", "GPIO_12", "GPIO_18", "GPIO_19",
8762306a36Sopenharmony_ci			"GPIO_20", "GPIO_21";
8862306a36Sopenharmony_ci		function = "twi_scl_m";
8962306a36Sopenharmony_ci		output-low;
9062306a36Sopenharmony_ci	};
9162306a36Sopenharmony_ci	i2cmux_0: i2cmux-0-pins {
9262306a36Sopenharmony_ci		pins = "GPIO_11";
9362306a36Sopenharmony_ci		function = "twi_scl_m";
9462306a36Sopenharmony_ci		output-high;
9562306a36Sopenharmony_ci	};
9662306a36Sopenharmony_ci	i2cmux_1: i2cmux-1-pins {
9762306a36Sopenharmony_ci		pins = "GPIO_12";
9862306a36Sopenharmony_ci		function = "twi_scl_m";
9962306a36Sopenharmony_ci		output-high;
10062306a36Sopenharmony_ci	};
10162306a36Sopenharmony_ci	i2cmux_2: i2cmux-2-pins {
10262306a36Sopenharmony_ci		pins = "GPIO_18";
10362306a36Sopenharmony_ci		function = "twi_scl_m";
10462306a36Sopenharmony_ci		output-high;
10562306a36Sopenharmony_ci	};
10662306a36Sopenharmony_ci	i2cmux_3: i2cmux-3-pins {
10762306a36Sopenharmony_ci		pins = "GPIO_19";
10862306a36Sopenharmony_ci		function = "twi_scl_m";
10962306a36Sopenharmony_ci		output-high;
11062306a36Sopenharmony_ci	};
11162306a36Sopenharmony_ci	i2cmux_4: i2cmux-4-pins {
11262306a36Sopenharmony_ci		pins = "GPIO_20";
11362306a36Sopenharmony_ci		function = "twi_scl_m";
11462306a36Sopenharmony_ci		output-high;
11562306a36Sopenharmony_ci	};
11662306a36Sopenharmony_ci	i2cmux_5: i2cmux-5-pins {
11762306a36Sopenharmony_ci		pins = "GPIO_21";
11862306a36Sopenharmony_ci		function = "twi_scl_m";
11962306a36Sopenharmony_ci		output-high;
12062306a36Sopenharmony_ci	};
12162306a36Sopenharmony_ci};
12262306a36Sopenharmony_ci
12362306a36Sopenharmony_ci&i2c0 {
12462306a36Sopenharmony_ci	status = "okay";
12562306a36Sopenharmony_ci	i2c-sda-hold-time-ns = <300>;
12662306a36Sopenharmony_ci};
12762306a36Sopenharmony_ci
128