162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (C) 2015 CompuLab, Ltd. - http://www.compulab.co.il/
462306a36Sopenharmony_ci */
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci#include "am437x-cm-t43.dts"
762306a36Sopenharmony_ci#include "compulab-sb-som.dtsi"
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci/ {
1062306a36Sopenharmony_ci	model = "CompuLab CM-T43 on SB-SOM-T43";
1162306a36Sopenharmony_ci	compatible = "compulab,am437x-sbc-t43", "compulab,am437x-cm-t43", "ti,am4372", "ti,am43";
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ci	aliases {
1462306a36Sopenharmony_ci		display0 = &lcd0;
1562306a36Sopenharmony_ci	};
1662306a36Sopenharmony_ci};
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ci&am43xx_pinmux {
1962306a36Sopenharmony_ci	mmc1_pins: mmc1-pins {
2062306a36Sopenharmony_ci		pinctrl-single,pins = <
2162306a36Sopenharmony_ci			AM4372_IOPAD(0x900, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_clk.mmc0_clk */
2262306a36Sopenharmony_ci			AM4372_IOPAD(0x904, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_cmd.mmc0_cmd */
2362306a36Sopenharmony_ci			AM4372_IOPAD(0x8f0, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat0.mmc0_dat0 */
2462306a36Sopenharmony_ci			AM4372_IOPAD(0x8f4, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat1.mmc0_dat1 */
2562306a36Sopenharmony_ci			AM4372_IOPAD(0x8f8, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat2.mmc0_dat2 */
2662306a36Sopenharmony_ci			AM4372_IOPAD(0x8fc, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat3.mmc0_dat3 */
2762306a36Sopenharmony_ci			AM4372_IOPAD(0x960, PIN_INPUT | MUX_MODE7) /* spi0_cs1.gpio0_6 */
2862306a36Sopenharmony_ci			AM4372_IOPAD(0x964, PIN_INPUT | MUX_MODE7) /* ecap0_in_pwm0_out.gpio0_7 */
2962306a36Sopenharmony_ci		>;
3062306a36Sopenharmony_ci	};
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci	dss_pinctrl_default: dss-pinctrl-default-pins {
3362306a36Sopenharmony_ci		pinctrl-single,pins = <
3462306a36Sopenharmony_ci			AM4372_IOPAD(0x9b0, PIN_OUTPUT_PULLUP | MUX_MODE2) /* cam0 hd -> DSS DATA 23 */
3562306a36Sopenharmony_ci			AM4372_IOPAD(0x9b4, PIN_OUTPUT_PULLUP | MUX_MODE2)
3662306a36Sopenharmony_ci			AM4372_IOPAD(0x9b8, PIN_OUTPUT_PULLUP | MUX_MODE2)
3762306a36Sopenharmony_ci			AM4372_IOPAD(0x9bc, PIN_OUTPUT_PULLUP | MUX_MODE2)
3862306a36Sopenharmony_ci			AM4372_IOPAD(0x9c0, PIN_OUTPUT_PULLUP | MUX_MODE2)
3962306a36Sopenharmony_ci			AM4372_IOPAD(0x9c4, PIN_OUTPUT_PULLUP | MUX_MODE2)
4062306a36Sopenharmony_ci			AM4372_IOPAD(0x9c8, PIN_OUTPUT_PULLUP | MUX_MODE2)
4162306a36Sopenharmony_ci			AM4372_IOPAD(0x9cc, PIN_OUTPUT_PULLUP | MUX_MODE2) /* cam1 data 9 -> DSS DATA 16 */
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ci			AM4372_IOPAD(0x8a0, PIN_OUTPUT_PULLUP | MUX_MODE0) /* DSS DATA 0 */
4462306a36Sopenharmony_ci			AM4372_IOPAD(0x8a4, PIN_OUTPUT_PULLUP | MUX_MODE0)
4562306a36Sopenharmony_ci			AM4372_IOPAD(0x8a8, PIN_OUTPUT_PULLUP | MUX_MODE0)
4662306a36Sopenharmony_ci			AM4372_IOPAD(0x8ac, PIN_OUTPUT_PULLUP | MUX_MODE0)
4762306a36Sopenharmony_ci			AM4372_IOPAD(0x8b0, PIN_OUTPUT_PULLUP | MUX_MODE0)
4862306a36Sopenharmony_ci			AM4372_IOPAD(0x8b4, PIN_OUTPUT_PULLUP | MUX_MODE0)
4962306a36Sopenharmony_ci			AM4372_IOPAD(0x8b8, PIN_OUTPUT_PULLUP | MUX_MODE0)
5062306a36Sopenharmony_ci			AM4372_IOPAD(0x8bc, PIN_OUTPUT_PULLUP | MUX_MODE0)
5162306a36Sopenharmony_ci			AM4372_IOPAD(0x8c0, PIN_OUTPUT_PULLUP | MUX_MODE0)
5262306a36Sopenharmony_ci			AM4372_IOPAD(0x8c4, PIN_OUTPUT_PULLUP | MUX_MODE0)
5362306a36Sopenharmony_ci			AM4372_IOPAD(0x8c8, PIN_OUTPUT_PULLUP | MUX_MODE0)
5462306a36Sopenharmony_ci			AM4372_IOPAD(0x8cc, PIN_OUTPUT_PULLUP | MUX_MODE0)
5562306a36Sopenharmony_ci			AM4372_IOPAD(0x8d0, PIN_OUTPUT_PULLUP | MUX_MODE0)
5662306a36Sopenharmony_ci			AM4372_IOPAD(0x8d4, PIN_OUTPUT_PULLUP | MUX_MODE0)
5762306a36Sopenharmony_ci			AM4372_IOPAD(0x8d8, PIN_OUTPUT_PULLUP | MUX_MODE0)
5862306a36Sopenharmony_ci			AM4372_IOPAD(0x8dc, PIN_OUTPUT_PULLUP | MUX_MODE0) /* DSS DATA 15 */
5962306a36Sopenharmony_ci			AM4372_IOPAD(0x8e0, PIN_OUTPUT_PULLUP | MUX_MODE0) /* DSS VSYNC */
6062306a36Sopenharmony_ci			AM4372_IOPAD(0x8e4, PIN_OUTPUT_PULLUP | MUX_MODE0) /* DSS HSYNC */
6162306a36Sopenharmony_ci			AM4372_IOPAD(0x8e8, PIN_OUTPUT_PULLUP | MUX_MODE0) /* DSS PCLK */
6262306a36Sopenharmony_ci			AM4372_IOPAD(0x8ec, PIN_OUTPUT_PULLUP | MUX_MODE0) /* DSS AC BIAS EN */
6362306a36Sopenharmony_ci			AM4372_IOPAD(0xa20, PIN_OUTPUT_PULLUP | MUX_MODE7)
6462306a36Sopenharmony_ci		>;
6562306a36Sopenharmony_ci	};
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_ci	uart0_pins_default: uart0-default-pins {
6862306a36Sopenharmony_ci		pinctrl-single,pins = <
6962306a36Sopenharmony_ci			AM4372_IOPAD(0x968, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE0)
7062306a36Sopenharmony_ci			AM4372_IOPAD(0x96C, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE0)
7162306a36Sopenharmony_ci			AM4372_IOPAD(0x970, PIN_INPUT_PULLUP | SLEWCTRL_FAST | DS0_PULL_UP_DOWN_EN | MUX_MODE0) /* uart0_rxd.uart0_rxd */
7262306a36Sopenharmony_ci			AM4372_IOPAD(0x974, PIN_INPUT | PULL_DISABLE | SLEWCTRL_FAST | DS0_PULL_UP_DOWN_EN | MUX_MODE0) /* uart0_txd.uart0_txd */
7362306a36Sopenharmony_ci		>;
7462306a36Sopenharmony_ci	};
7562306a36Sopenharmony_ci
7662306a36Sopenharmony_ci	i2c1_pins: i2c1-pins {
7762306a36Sopenharmony_ci		pinctrl-single,pins = <
7862306a36Sopenharmony_ci			AM4372_IOPAD(0xa6c, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE1)  /* spi2_cs0.i2c1_sda  */
7962306a36Sopenharmony_ci			AM4372_IOPAD(0xa60, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE1)  /* spi2_sclk.i2c1_scl */
8062306a36Sopenharmony_ci		>;
8162306a36Sopenharmony_ci	};
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_ci	i2c2_pins: i2c2-pins {
8462306a36Sopenharmony_ci		pinctrl-single,pins = <
8562306a36Sopenharmony_ci			AM4372_IOPAD(0x978, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE3)  /* uart1_ctsn.i2c2_sda  */
8662306a36Sopenharmony_ci			AM4372_IOPAD(0x97c, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE3)  /* uart1_rtsn.i2c2_scl */
8762306a36Sopenharmony_ci		>;
8862306a36Sopenharmony_ci	};
8962306a36Sopenharmony_ci
9062306a36Sopenharmony_ci	usb2_phy1_default: usb2-phy1-default-pins {
9162306a36Sopenharmony_ci		pinctrl-single,pins = <
9262306a36Sopenharmony_ci			AM4372_IOPAD(0xac0, DS0_PULL_UP_DOWN_EN | PIN_INPUT_PULLDOWN | MUX_MODE0)
9362306a36Sopenharmony_ci		>;
9462306a36Sopenharmony_ci	};
9562306a36Sopenharmony_ci
9662306a36Sopenharmony_ci	usb2_phy2_default: usb2-phy2-default-pins {
9762306a36Sopenharmony_ci		pinctrl-single,pins = <
9862306a36Sopenharmony_ci			AM4372_IOPAD(0xac4, DS0_PULL_UP_DOWN_EN | PIN_INPUT_PULLDOWN | MUX_MODE0)
9962306a36Sopenharmony_ci		>;
10062306a36Sopenharmony_ci	};
10162306a36Sopenharmony_ci};
10262306a36Sopenharmony_ci
10362306a36Sopenharmony_ci&i2c1 {
10462306a36Sopenharmony_ci	status = "okay";
10562306a36Sopenharmony_ci	pinctrl-names = "default";
10662306a36Sopenharmony_ci	pinctrl-0 = <&i2c1_pins>;
10762306a36Sopenharmony_ci
10862306a36Sopenharmony_ci	pca9555: pca9555@20 {
10962306a36Sopenharmony_ci		compatible = "nxp,pca9555";
11062306a36Sopenharmony_ci		reg = <0x20>;
11162306a36Sopenharmony_ci		gpio-controller;
11262306a36Sopenharmony_ci		#gpio-cells = <2>;
11362306a36Sopenharmony_ci	};
11462306a36Sopenharmony_ci
11562306a36Sopenharmony_ci	eeprom_base: at24@50 {
11662306a36Sopenharmony_ci		compatible = "atmel,24c02";
11762306a36Sopenharmony_ci		reg = <0x50>;
11862306a36Sopenharmony_ci		pagesize = <16>;
11962306a36Sopenharmony_ci	};
12062306a36Sopenharmony_ci};
12162306a36Sopenharmony_ci
12262306a36Sopenharmony_ci&i2c2 {
12362306a36Sopenharmony_ci	status = "okay";
12462306a36Sopenharmony_ci	pinctrl-names = "default";
12562306a36Sopenharmony_ci	pinctrl-0 = <&i2c2_pins>;
12662306a36Sopenharmony_ci};
12762306a36Sopenharmony_ci
12862306a36Sopenharmony_ci&mmc1 {
12962306a36Sopenharmony_ci	status = "okay";
13062306a36Sopenharmony_ci	bus-width = <4>;
13162306a36Sopenharmony_ci	pinctrl-names = "default";
13262306a36Sopenharmony_ci	pinctrl-0 = <&mmc1_pins>;
13362306a36Sopenharmony_ci	vmmc-supply = <&vsb_3v3>;
13462306a36Sopenharmony_ci	cd-gpios = <&gpio0 6 GPIO_ACTIVE_HIGH>;
13562306a36Sopenharmony_ci	wp-gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
13662306a36Sopenharmony_ci};
13762306a36Sopenharmony_ci
13862306a36Sopenharmony_ci&dss {
13962306a36Sopenharmony_ci	status = "okay";
14062306a36Sopenharmony_ci
14162306a36Sopenharmony_ci	pinctrl-names = "default";
14262306a36Sopenharmony_ci	pinctrl-0 = <&dss_pinctrl_default>;
14362306a36Sopenharmony_ci
14462306a36Sopenharmony_ci	port {
14562306a36Sopenharmony_ci		dpi_lcd_out: endpoint {
14662306a36Sopenharmony_ci			remote-endpoint = <&lcd_in>;
14762306a36Sopenharmony_ci			data-lines = <24>;
14862306a36Sopenharmony_ci		};
14962306a36Sopenharmony_ci	};
15062306a36Sopenharmony_ci};
15162306a36Sopenharmony_ci
15262306a36Sopenharmony_ci&uart0 {
15362306a36Sopenharmony_ci	pinctrl-names = "default";
15462306a36Sopenharmony_ci	pinctrl-0 = <&uart0_pins_default>;
15562306a36Sopenharmony_ci};
15662306a36Sopenharmony_ci
15762306a36Sopenharmony_ci&dwc3_1 {
15862306a36Sopenharmony_ci	pinctrl-names = "default";
15962306a36Sopenharmony_ci	pinctrl-0 = <&usb2_phy1_default>;
16062306a36Sopenharmony_ci};
16162306a36Sopenharmony_ci
16262306a36Sopenharmony_ci&dwc3_2 {
16362306a36Sopenharmony_ci	pinctrl-names = "default";
16462306a36Sopenharmony_ci	pinctrl-0 = <&usb2_phy2_default>;
16562306a36Sopenharmony_ci};
16662306a36Sopenharmony_ci
16762306a36Sopenharmony_ci&lcd0 {
16862306a36Sopenharmony_ci	enable-gpios = <&pca9555 14 GPIO_ACTIVE_HIGH
16962306a36Sopenharmony_ci			&gpio4 28 GPIO_ACTIVE_HIGH>;
17062306a36Sopenharmony_ci
17162306a36Sopenharmony_ci	port {
17262306a36Sopenharmony_ci		lcd_in: endpoint {
17362306a36Sopenharmony_ci			remote-endpoint = <&dpi_lcd_out>;
17462306a36Sopenharmony_ci			data-lines = <24>;
17562306a36Sopenharmony_ci		};
17662306a36Sopenharmony_ci	};
17762306a36Sopenharmony_ci};
178