From nobody Sat Dec 28 07:37:35 2024 Received: from metis.whiteo.stw.pengutronix.de (metis.whiteo.stw.pengutronix.de [185.203.201.7]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6B2AA1DC988 for ; Tue, 10 Dec 2024 09:33:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.203.201.7 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733823182; cv=none; b=dKjolXEK0PmqYf6cK1AJR96IiHus3vA++DvHzulWj/jUnrroz2SftxZ0BFcHY0g4IxIzN65A8xlobhBiYVEl90F453Jj54D1e/W9yJYCcQnQ2sBKQPnmQz3pBBFhcJif8tYd2rvz3ksDq5hSwm+DUmtAQTM2j2hLL3iCQYeJhDk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733823182; c=relaxed/simple; bh=WFo8Hz2lV6TuVZvgZv4GloCAmcAc1zcPExjDCV8h1e8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=l/S8QFNQuATresMltsaZx8VgCEFLwnUmsdlJnrScjGUxwC9tOygJ2Rk0NnAaG1FgWD1EwpKQ7Rdaiw4fTtpiBZvnPGDatDtUeGbr24KvrviFHqAkGnec5at2SV8f3eBV3L29oT9QKbUGsq5/kE5nwNVRgX9vODaEVh/faAiprn8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=pengutronix.de; spf=pass smtp.mailfrom=pengutronix.de; arc=none smtp.client-ip=185.203.201.7 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=pengutronix.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=pengutronix.de Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.whiteo.stw.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1tKwbt-00016O-BO for linux-kernel@vger.kernel.org; Tue, 10 Dec 2024 10:32:53 +0100 Received: from moin.white.stw.pengutronix.de ([2a0a:edc0:0:b01:1d::7b] helo=bjornoya.blackshift.org) by drehscheibe.grey.stw.pengutronix.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1tKwbs-002fKl-0k for linux-kernel@vger.kernel.org; Tue, 10 Dec 2024 10:32:53 +0100 Received: from dspam.blackshift.org (localhost [127.0.0.1]) by bjornoya.blackshift.org (Postfix) with SMTP id 871D638A556 for ; Tue, 10 Dec 2024 09:32:52 +0000 (UTC) Received: from hardanger.blackshift.org (unknown [172.20.34.65]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by bjornoya.blackshift.org (Postfix) with ESMTPS id 8BD1138A532; Tue, 10 Dec 2024 09:32:49 +0000 (UTC) Received: from [172.20.34.65] (localhost [::1]) by hardanger.blackshift.org (OpenSMTPD) with ESMTP id 37cba87c; Tue, 10 Dec 2024 09:32:48 +0000 (UTC) From: Marc Kleine-Budde Date: Tue, 10 Dec 2024 10:32:28 +0100 Subject: [PATCH stm32-next 2/2] ARM: dts: stm32: lxa-fairytux2: add Linux Automation GmbH FairyTux 2 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20241210-lxa-fairytux-v1-2-9aea01cdb83e@pengutronix.de> References: <20241210-lxa-fairytux-v1-0-9aea01cdb83e@pengutronix.de> In-Reply-To: <20241210-lxa-fairytux-v1-0-9aea01cdb83e@pengutronix.de> To: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Maxime Coquelin , Alexandre Torgue Cc: kernel@pengutronix.de, devicetree@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Marc Kleine-Budde , =?utf-8?q?Leonard_G=C3=B6hrs?= X-Mailer: b4 0.15-dev-355e8 X-Developer-Signature: v=1; a=openpgp-sha256; l=17560; i=mkl@pengutronix.de; h=from:subject:message-id; bh=NVATP1Z4sT+6XQFcI41C+1lB79mOE2ABG4Cuxlzn66E=; b=owEBbQGS/pANAwAKASg4oj56LbxvAcsmYgBnWAq9rzNIMq8zKAeWbnuOjj9kEsOBT8A6NDLJB KBYU0PePS+JATMEAAEKAB0WIQRQQLqG4LYE3Sm8Pl8oOKI+ei28bwUCZ1gKvQAKCRAoOKI+ei28 bzuJB/47Vc+tumKHlzoMiOPWSnI0L999hdtsmFrk5ilrJ+U18vnjbkhkC3IaCYCJZJc5PlCRrfY imPnACvZ47Tbs3FT0dZakhOgOgZWwe/iRPkz6I0n4wFtFEKGrUuyH6zr9V9yLOE8g/8cYZL8U6R nn/h5TDkonMYvaHHJqGOo1B2GXpzKqJB7w+/MEl9pm0em2lGkaHkIkGnlLgQXxgE0ssx+qjXq4p rgm0EMIobm/eHw2b7ORl3uREJxUhLy5j247GbIGy1EkiNzdqr6h/6rbdBcfnMKUc18KRyUgDa/L 6PECG9Wc0BQVfNf7C2sDoZRYSCEsqPcFFCG5JcA8tXpvz6VF X-Developer-Key: i=mkl@pengutronix.de; a=openpgp; fpr=C1400BA0B3989E6FBC7D5B5C2B5EE211C58AEA54 X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: mkl@pengutronix.de X-SA-Exim-Scanned: No (on metis.whiteo.stw.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org From: Leonard G=C3=B6hrs The Linux Automation GmbH FairyTux2 is a small Linux device based on an Octavo Systems OSD32MP153c SiP, that occupies just two slots on a DIN rail. The device contains an eMMC for storage, a gigabit Ethernet connection, a CAN bus and a RS485 transceiver. Add support for the lxa-fairytux2 generation 1 and 2 boards based on the STM32MP153c. Signed-off-by: Leonard G=C3=B6hrs Signed-off-by: Marc Kleine-Budde --- arch/arm/boot/dts/st/Makefile | 2 + .../boot/dts/st/stm32mp153c-lxa-fairytux2-gen1.dts | 101 ++++++ .../boot/dts/st/stm32mp153c-lxa-fairytux2-gen2.dts | 146 ++++++++ .../arm/boot/dts/st/stm32mp153c-lxa-fairytux2.dtsi | 394 +++++++++++++++++= ++++ 4 files changed, 643 insertions(+) diff --git a/arch/arm/boot/dts/st/Makefile b/arch/arm/boot/dts/st/Makefile index b7d5d305cbbeb78cfae9fab05271992959f6fa56..f68da19d7cbf33fc5424e4900d3= 01b2706d03e5e 100644 --- a/arch/arm/boot/dts/st/Makefile +++ b/arch/arm/boot/dts/st/Makefile @@ -39,6 +39,8 @@ dtb-$(CONFIG_ARCH_STM32) +=3D \ stm32mp151c-mect1s.dtb \ stm32mp153c-dhcom-drc02.dtb \ stm32mp153c-dhcor-drc-compact.dtb \ + stm32mp153c-lxa-fairytux2-gen1.dtb \ + stm32mp153c-lxa-fairytux2-gen2.dtb \ stm32mp153c-lxa-tac-gen3.dtb \ stm32mp153c-mecio1r1.dtb \ stm32mp157a-avenger96.dtb \ diff --git a/arch/arm/boot/dts/st/stm32mp153c-lxa-fairytux2-gen1.dts b/arch= /arm/boot/dts/st/stm32mp153c-lxa-fairytux2-gen1.dts new file mode 100644 index 0000000000000000000000000000000000000000..a70de0f47afb21f36bf4c74a928= 910b10adc762f --- /dev/null +++ b/arch/arm/boot/dts/st/stm32mp153c-lxa-fairytux2-gen1.dts @@ -0,0 +1,101 @@ +// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-3-Clause) +/* + * Copyright (C) 2024 Leonard G=C3=B6hrs, Pengutronix + */ + +/dts-v1/; + +#include "stm32mp153c-lxa-fairytux2.dtsi" + +/ { + model =3D "Linux Automation GmbH FairyTux 2 Gen 1"; + compatible =3D "lxa,stm32mp153c-fairytux2-gen1", "oct,stm32mp153x-osd32",= "st,stm32mp153"; + + gpio-keys { + compatible =3D "gpio-keys"; + + button-left { + label =3D "USER_BTN1"; + linux,code =3D ; + gpios =3D <&gpioi 11 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; + }; + + button-right { + label =3D "USER_BTN2"; + linux,code =3D ; + gpios =3D <&gpioe 9 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; + }; + }; +}; + +&gpiof { + gpio-line-names =3D "GPIO1", "GPIO2", "", "", "", /* 0 */ + "", "", "", "", "", /* 5 */ + "", "", "", "", "", /* 10 */ + ""; /* 15 */ +}; + +&gpioh { + gpio-line-names =3D "", "", "", "", "LCD_RESET", /* 0 */ + "", "", "", "", "", /* 5 */ + "", "", "", "GPIO3", "", /* 10 */ + ""; /* 15 */ +}; + +&gpioi { + gpio-line-names =3D "", "", "", "", "", /* 0 */ + "", "", "", "ETH_", "", /* 5 */ + "", "USER_BTN1"; /* 10 */ +}; + +&i2c1 { + pinctrl-names =3D "default", "sleep"; + pinctrl-0 =3D <&i2c1_pins_b>; + pinctrl-1 =3D <&i2c1_sleep_pins_b>; + status =3D "okay"; + + io_board_gpio: tca6408@20 { + compatible =3D "ti,tca6408"; + reg =3D <0x20>; + gpio-controller; + #gpio-cells =3D <2>; + vcc-supply =3D <&v3v3_hdmi>; + gpio-line-names =3D "LED1_GA_YK", "LED2_GA_YK", "LED1_GK_YA", "LED2_GK_Y= A", + "RS485_EN", "RS485_120R", "", "CAN_120R"; + }; +}; + +&led_controller_io { + /* + * led-2 and led-3 are internally connected antiparallel to one + * another inside the ethernet jack like this: + * GPIO1 ---+---|led-2|>--+--- GPIO3 + * +--<|led-3|---+ + * E.g. only one of the LEDs can be illuminated at a time while + * the other output must be driven low. + * This should likely be implemented using a multi color LED + * driver for antiparallel LEDs. + */ + led-2 { + label =3D "fairytux2:green:act"; + gpios =3D <&io_board_gpio 1 GPIO_ACTIVE_HIGH>; + }; + + led-3 { + label =3D "fairytux2:orange:act"; + gpios =3D <&io_board_gpio 3 GPIO_ACTIVE_HIGH>; + }; +}; + +&usart3 { + /* + * On Gen 1 FairyTux 2 only RTS can be used and not CTS as well, + * Because pins PD11 (CTS) and PI11 (USER_BTN1) share the same + * interrupt and only one of them can be used at a time. + */ + rts-gpios =3D <&gpiod 12 GPIO_ACTIVE_LOW>; +}; + +&usbotg_hs { + dr_mode =3D "peripheral"; +}; diff --git a/arch/arm/boot/dts/st/stm32mp153c-lxa-fairytux2-gen2.dts b/arch= /arm/boot/dts/st/stm32mp153c-lxa-fairytux2-gen2.dts new file mode 100644 index 0000000000000000000000000000000000000000..c84f83a75731f70165c240812f7= f4230bf9bfbb0 --- /dev/null +++ b/arch/arm/boot/dts/st/stm32mp153c-lxa-fairytux2-gen2.dts @@ -0,0 +1,146 @@ +// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-3-Clause) +/* + * Copyright (C) 2024 Leonard G=C3=B6hrs, Pengutronix + */ + +/dts-v1/; + +#include "stm32mp153c-lxa-fairytux2.dtsi" + +/ { + model =3D "Linux Automation GmbH FairyTux 2 Gen 2"; + compatible =3D "lxa,stm32mp153c-fairytux2-gen2", "oct,stm32mp153x-osd32",= "st,stm32mp153"; + + gpio-keys { + compatible =3D "gpio-keys"; + + button-left { + label =3D "USER_BTN1"; + linux,code =3D ; + gpios =3D <&gpioi 10 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; + }; + + button-right { + label =3D "USER_BTN2"; + linux,code =3D ; + gpios =3D <&gpioe 9 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; + }; + }; +}; + +&gpiof { + gpio-line-names =3D "", "", "", "", "", /* 0 */ + "", "", "", "", "", /* 5 */ + "", "", "", "", "", /* 10 */ + ""; /* 15 */ +}; + +&gpioh { + gpio-line-names =3D "", "", "", "", "LCD_RESET", /* 0 */ + "", "", "", "", "", /* 5 */ + "", "", "GPIO1", "GPIO_INT", "", /* 10 */ + ""; /* 15 */ +}; + +&gpioi { + gpio-line-names =3D "GPIO2", "", "", "", "", /* 0 */ + "", "", "", "ETH_", "", /* 5 */ + "", "USER_BTN1"; /* 10 */ +}; + +&i2c1 { + pinctrl-names =3D "default", "sleep"; + pinctrl-0 =3D <&i2c1_pins_b>; + pinctrl-1 =3D <&i2c1_sleep_pins_b>; + status =3D "okay"; + + io_board_gpio: tca6408@20 { + compatible =3D "ti,tca6408"; + reg =3D <0x20>; + gpio-controller; + #gpio-cells =3D <2>; + interrupt-parent =3D <&gpioh>; + interrupts =3D <13 IRQ_TYPE_LEVEL_LOW>; + interrupt-controller; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&board_tca6408_pins>; + #interrupt-cells =3D <2>; + vcc-supply =3D <&v3v3_hdmi>; + gpio-line-names =3D "LED1_GA_YK", "LED2_GA_YK", "LED1_GK_YA", "USB_CC_AL= ERT", + "RS485_EN", "RS485_120R", "USB_CC_RESET", "CAN_120R"; + }; + + usb_c: stusb1600@28 { + compatible =3D "st,stusb1600"; + reg =3D <0x28>; + interrupt-parent =3D <&io_board_gpio>; + interrupts =3D <3 IRQ_TYPE_EDGE_FALLING>; + vdd-supply =3D <®_5v>; + vsys-supply =3D <&v3v3_hdmi>; + + connector { + compatible =3D "usb-c-connector"; + label =3D "USB-C"; + power-role =3D "dual"; + typec-power-opmode =3D "default"; + + port { + con_usbotg_hs_ep: endpoint { + remote-endpoint =3D <&usbotg_hs_ep>; + }; + }; + }; + }; + + io_board_eeprom: eeprom@56 { + compatible =3D "atmel,24c04"; + reg =3D <0x56>; + vcc-supply =3D <&v3v3_hdmi>; + }; + + temperature-sensor@48 { + compatible =3D "national,lm75a"; + reg =3D <0x48>; + /* + * The sensor itself is powered by a voltage divider from the + * always-on 5V supply. + * The required pull-up resistors however are on v3v3_hdmi. + */ + vs-supply =3D <&v3v3_hdmi>; + }; +}; + +&rtc { + status =3D "okay"; +}; + +&led_controller_io { + led-2 { + label =3D "fairytux2:orange:act"; + gpios =3D <&io_board_gpio 1 GPIO_ACTIVE_LOW>; + }; +}; + +&usart3 { + rts-gpios =3D <&gpiod 12 GPIO_ACTIVE_LOW>; + cts-gpios =3D <&gpiod 11 GPIO_ACTIVE_LOW>; +}; + +&usbotg_hs { + usb-role-switch; + + port { + usbotg_hs_ep: endpoint { + remote-endpoint =3D <&con_usbotg_hs_ep>; + }; + }; +}; + +&pinctrl { + board_tca6408_pins: stusb1600-0 { + pins { + pinmux =3D ; + bias-pull-up; + }; + }; +}; diff --git a/arch/arm/boot/dts/st/stm32mp153c-lxa-fairytux2.dtsi b/arch/arm= /boot/dts/st/stm32mp153c-lxa-fairytux2.dtsi new file mode 100644 index 0000000000000000000000000000000000000000..0e0e1b36cb087dfbfb47e383094= c6044786a2c6a --- /dev/null +++ b/arch/arm/boot/dts/st/stm32mp153c-lxa-fairytux2.dtsi @@ -0,0 +1,394 @@ +// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-3-Clause) +/* + * Copyright (C) 2020 STMicroelectronics - All Rights Reserved + * Copyright (C) 2021 Rouven Czerwinski, Pengutronix + * Copyright (C) 2023, 2024 Leonard G=C3=B6hrs, Pengutronix + */ + +#include "stm32mp153.dtsi" +#include "stm32mp15xc.dtsi" +#include "stm32mp15xx-osd32.dtsi" +#include "stm32mp15xxac-pinctrl.dtsi" + +#include +#include +#include +#include + +/ { + aliases { + can0 =3D &m_can1; + ethernet0 =3D ðernet0; + i2c0 =3D &i2c1; + i2c1 =3D &i2c4; + mmc1 =3D &sdmmc2; + serial0 =3D &uart4; + serial1 =3D &usart3; + spi0 =3D &spi4; + }; + + chosen { + stdout-path =3D &uart4; + }; + + backlight: backlight { + compatible =3D "pwm-backlight"; + power-supply =3D <&v3v3>; + + brightness-levels =3D <0 31 63 95 127 159 191 223 255>; + default-brightness-level =3D <7>; + pwms =3D <&led_pwm 3 1000000 0>; + }; + + led-controller-cpu { + compatible =3D "gpio-leds"; + + led-0 { + label =3D "fairytux2:green:status"; + gpios =3D <&gpioa 13 GPIO_ACTIVE_HIGH>; + linux,default-trigger =3D "heartbeat"; + }; + }; + + led_controller_io: led-controller-io { + compatible =3D "gpio-leds"; + + /* + * led-0 and led-1 are internally connected antiparallel to one + * another inside the ethernet jack like this: + * GPIO0 ---+---|led-0|>--+--- GPIO2 + * +--<|led-1|---+ + * E.g. only one of the LEDs can be illuminated at a time while + * the other output must be driven low. + * This should likely be implemented using a multi color LED + * driver for antiparallel LEDs. + */ + led-0 { + label =3D "fairytux2:green:link"; + gpios =3D <&io_board_gpio 0 GPIO_ACTIVE_HIGH>; + }; + + led-1 { + label =3D "fairytux2:orange:link"; + gpios =3D <&io_board_gpio 2 GPIO_ACTIVE_HIGH>; + }; + }; + + reg_5v: regulator-5v { + compatible =3D "regulator-fixed"; + regulator-name =3D "5V"; + regulator-min-microvolt =3D <5000000>; + regulator-max-microvolt =3D <5000000>; + regulator-always-on; + }; + + reg_1v2: regulator-1v2 { + compatible =3D "regulator-fixed"; + regulator-name =3D "1V2"; + regulator-min-microvolt =3D <1200000>; + regulator-max-microvolt =3D <1200000>; + regulator-always-on; + vin-supply =3D <®_5v>; + }; +}; + +baseboard_eeprom: &sip_eeprom { +}; + +&crc1 { + status =3D "okay"; +}; + +&cryp1 { + status =3D "okay"; +}; + +&dts { + status =3D "okay"; +}; + +ðernet0 { + assigned-clocks =3D <&rcc ETHCK_K>, <&rcc PLL4_P>; + assigned-clock-parents =3D <&rcc PLL4_P>; + assigned-clock-rates =3D <125000000>; /* Clock PLL4 to 750Mhz in ATF */ + + pinctrl-names =3D "default", "sleep"; + pinctrl-0 =3D <ðernet0_rgmii_pins_b>; + pinctrl-1 =3D <ðernet0_rgmii_sleep_pins_b>; + + st,eth-clk-sel; + phy-mode =3D "rgmii-id"; + phy-handle =3D <ðphy>; + status =3D "okay"; + + mdio { + compatible =3D "snps,dwmac-mdio"; + #address-cells =3D <1>; + #size-cells =3D <0>; + + ethphy: ethernet-phy@3 { /* KSZ9031RN */ + reg =3D <3>; + reset-gpios =3D <&gpioe 11 GPIO_ACTIVE_LOW>; /* ETH_RST# */ + interrupt-parent =3D <&gpioa>; + interrupts =3D <6 IRQ_TYPE_EDGE_FALLING>; /* ETH_MDINT# */ + reset-assert-us =3D <10000>; + reset-deassert-us =3D <300>; + micrel,force-master; + }; + }; +}; + +&gpioa { + gpio-line-names =3D "", "", "", "", "", /* 0 */ + "", "ETH_INT", "", "", "", /* 5 */ + "", "", "", "BOOTROM_LED", "", /* 10 */ + ""; /* 15 */ +}; + +&gpiob { + gpio-line-names =3D "", "", "", "", "", /* 0 */ + "", "", "", "", "", /* 5 */ + "", "", "", "", "", /* 10 */ + ""; /* 15 */ +}; + +&gpioc { + gpio-line-names =3D "", "", "", "", "", /* 0 */ + "", "", "", "", "", /* 5 */ + "", ""; /* 10 */ +}; + +&gpiod { + gpio-line-names =3D "", "", "", "", "", /* 0 */ + "", "", "LCD_TE", "", "", /* 5 */ + "LCD_DC", "", "", "", "", /* 10 */ + ""; /* 15 */ +}; + +&gpioe { + gpio-line-names =3D "LCD_CS", "", "", "", "", /* 0 */ + "", "", "", "", "", /* 5 */ + "", "", "", "", "", /* 10 */ + ""; /* 15 */ +}; + +&gpiof { + gpio-line-names =3D "GPIO1", "GPIO2", "", "", "", /* 0 */ + "", "", "", "", "", /* 5 */ + "", "", "", "", "", /* 10 */ + ""; /* 15 */ +}; + +&gpiog { + gpio-line-names =3D "", "", "", "", "", /* 0 */ + "", "", "", "", "", /* 5 */ + "", "", "", "", "", /* 10 */ + ""; /* 15 */ +}; + +&gpioz { + gpio-line-names =3D "HWID0", "HWID1", "HWID2", "HWID3", "", /* 0 */ + "", "HWID4", "HWID5"; /* 5 */ +}; + +&hash1 { + status =3D "okay"; +}; + +&iwdg2 { + timeout-sec =3D <8>; + status =3D "okay"; +}; + +&m_can1 { + pinctrl-names =3D "default", "sleep"; + pinctrl-0 =3D <&m_can1_pins_b>; + pinctrl-1 =3D <&m_can1_sleep_pins_b>; + status =3D "okay"; + termination-gpios =3D <&io_board_gpio 7 GPIO_ACTIVE_HIGH>; + termination-ohms =3D <120>; +}; + +&pmic { + regulators { + buck1-supply =3D <®_5v>; /* VIN */ + buck2-supply =3D <®_5v>; /* VIN */ + buck3-supply =3D <®_5v>; /* VIN */ + buck4-supply =3D <®_5v>; /* VIN */ + ldo2-supply =3D <®_5v>; /* PMIC_LDO25IN */ + ldo4-supply =3D <®_5v>; /* VIN */ + ldo5-supply =3D <®_5v>; /* PMIC_LDO25IN */ + vref_ddr-supply =3D <®_5v>; /* VIN */ + boost-supply =3D <®_5v>; /* PMIC_BSTIN */ + pwr_sw2-supply =3D <&bst_out>; /* PMIC_SWIN */ + }; +}; + +&pwr_regulators { + vdd-supply =3D <&vdd>; + vdd_3v3_usbfs-supply =3D <&vdd_usb>; +}; + +&sdmmc2 { + pinctrl-names =3D "default", "opendrain", "sleep"; + pinctrl-0 =3D <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_b>; + pinctrl-1 =3D <&sdmmc2_b4_od_pins_a &sdmmc2_d47_pins_b>; + pinctrl-2 =3D <&sdmmc2_b4_sleep_pins_a &sdmmc2_d47_sleep_pins_b>; + vmmc-supply =3D <&v3v3>; + + bus-width =3D <8>; + mmc-ddr-3_3v; + no-1-8-v; + non-removable; + no-sd; + no-sdio; + st,neg-edge; + + status =3D "okay"; +}; + +&spi4 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&spi4_pins_a>; + cs-gpios =3D <&gpioe 0 GPIO_ACTIVE_LOW>; + status =3D "okay"; + + lcd: display@0 { + compatible =3D "shineworld,lh133k", "panel-mipi-dbi-spi"; + reg =3D <0>; + power-supply =3D <&v3v3>; + io-supply =3D <&v3v3>; + backlight =3D <&backlight>; + dc-gpios =3D <&gpiod 10 GPIO_ACTIVE_HIGH>; + reset-gpios =3D <&gpioh 4 GPIO_ACTIVE_HIGH>; + spi-3wire; + spi-max-frequency =3D <32000000>; + + width-mm =3D <23>; + height-mm =3D <23>; + rotation =3D <180>; + + panel-timing { + hactive =3D <240>; + vactive =3D <240>; + hback-porch =3D <0>; + vback-porch =3D <0>; + + clock-frequency =3D <0>; + hfront-porch =3D <0>; + hsync-len =3D <0>; + vfront-porch =3D <0>; + vsync-len =3D <0>; + }; + }; +}; + +&timers2 { + /* spare dmas for other usage */ + /delete-property/dmas; + /delete-property/dma-names; + + status =3D "okay"; + + timer@1 { + status =3D "okay"; + }; +}; + +&timers3 { + /* spare dmas for other usage */ + /delete-property/dmas; + /delete-property/dma-names; + + status =3D "okay"; + + timer@2 { + status =3D "okay"; + }; +}; + +&timers4 { + /* spare dmas for other usage */ + /delete-property/dmas; + /delete-property/dma-names; + + status =3D "okay"; + + timer@3 { + status =3D "okay"; + }; +}; + +&timers8 { + /* spare dmas for other usage */ + /delete-property/dmas; + /delete-property/dma-names; + + status =3D "okay"; + + led_pwm: pwm { + pinctrl-names =3D "default", "sleep"; + pinctrl-0 =3D <&pwm8_pins_b>; + pinctrl-1 =3D <&pwm8_sleep_pins_b>; + status =3D "okay"; + }; +}; + +&uart4 { + label =3D "debug"; + + pinctrl-names =3D "default"; + pinctrl-0 =3D <&uart4_pins_a>; + + /* spare dmas for other usage */ + /delete-property/dmas; + /delete-property/dma-names; + + status =3D "okay"; +}; + +&usart3 { + label =3D "external"; + + pinctrl-names =3D "default"; + pinctrl-0 =3D <&usart3_pins_a>; + + /* spare dmas for other usage */ + /delete-property/dmas; + /delete-property/dma-names; + + status =3D "okay"; +}; + +&usbh_ehci { + phys =3D <&usbphyc_port0>; + phy-names =3D "usb"; + + status =3D "okay"; +}; + +&usbotg_hs { + phys =3D <&usbphyc_port1 0>; + phy-names =3D "usb2-phy"; + + vusb_d-supply =3D <&vdd_usb>; + vusb_a-supply =3D <®18>; + + status =3D "okay"; +}; + +&usbphyc { + status =3D "okay"; +}; + +&usbphyc_port0 { + phy-supply =3D <&vdd_usb>; +}; + +&usbphyc_port1 { + phy-supply =3D <&vdd_usb>; +}; + +&v3v3_hdmi { + regulator-enable-ramp-delay =3D <1000>; +}; --=20 2.45.2