diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile index a9089f010e1e86..8b069bfb5873e2 100644 --- a/arch/arm64/boot/dts/freescale/Makefile +++ b/arch/arm64/boot/dts/freescale/Makefile @@ -674,7 +674,9 @@ dtb-$(CONFIG_ARCH_MXC) += imx91-9x9-qsb-i3c.dtb dtb-$(CONFIG_ARCH_MXC) += imx91-phyboard-segin.dtb dtb-$(CONFIG_ARCH_MXC) += imx93-phyboard-nash.dtb dtb-$(CONFIG_ARCH_MXC) += imx93-phyboard-segin.dtb +DTC_FLAGS_imx93-charge-som := -@ dtb-$(CONFIG_ARCH_MXC) += imx93-charge-som.dtb +DTC_FLAGS_imx93-charge-som-dc-evb := -@ dtb-$(CONFIG_ARCH_MXC) += imx93-charge-som-dc-evb.dtb dtb-$(CONFIG_ARCH_MXC) += imx93-charge-control-y.dtb dtb-$(CONFIG_ARCH_MXC) += imx93-charge-control-y-V0R4.dtb @@ -694,11 +696,16 @@ imx93-phyboard-segin-peb-wlbt-05-dtbs += imx93-phyboard-segin.dtb imx93-phyboard imx93-phycore-npu-dtbs += imx93-phyboard-nash.dtb imx93-phyboard-segin.dtb imx93-phycore-npu.dtbo imx93-phycore-rpmsg-dtbs += imx93-phyboard-nash.dtb imx93-phyboard-segin.dtb imx93-phycore-rpmsg.dtbo imx93-charge-som-uart7-dtbs += imx93-charge-som.dtb imx93-charge-som-uart7.dtbo +DTC_FLAGS_imx93-charge-som-i2c5-dtbs := -@ +imx93-charge-som-i2c5-dtbs += imx93-charge-som.dtb imx93-charge-som-i2c5.dtbo +DTC_FLAGS_imx93-charge-som-i2c5-pn7160-dtbs := -@ +imx93-charge-som-i2c5-pn7160-dtbs += imx93-charge-som-dc-evb.dtb imx93-charge-som-i2c5.dtbo imx93-charge-som-i2c5-pn7160.dtbo imx93-charge-som-clko-gpio-dtbs += imx93-charge-som.dtb imx93-charge-som-clko-gpio.dtbo imx93-charge-som-lvds-dd0700mc01-dtbs += imx93-charge-som.dtb imx93-charge-som-lvds-dd0700mc01.dtbo imx93-charge-som-testfixture-dtbs += imx93-charge-som.dtb imx93-charge-som-testfixture.dtbo imx93-charge-control-v-dtbs += imx93-charge-som.dtb imx93-charge-control-v.dtbo imx93-charge-som-ac-pb-dtbs += imx93-charge-som.dtb imx93-charge-som-ac-pb.dtbo +imx93-charge-som-ac-pb-pn7160-dtbs += imx93-charge-som.dtb imx93-charge-som-ac-pb.dtbo imx93-charge-som-ac-pb-pn7160.dtbo dtb-$(CONFIG_ARCH_MXC) += imx91-phyboard-segin-peb-av-02.dtb dtb-$(CONFIG_ARCH_MXC) += imx91-phyboard-segin-peb-eval-01.dtb dtb-$(CONFIG_ARCH_MXC) += imx91-phyboard-segin-peb-wlbt-05.dtb @@ -714,11 +721,16 @@ dtb-$(CONFIG_ARCH_MXC) += imx93-phyboard-segin-peb-wlbt-05.dtb dtb-$(CONFIG_ARCH_MXC) += imx93-phycore-npu.dtb dtb-$(CONFIG_ARCH_MXC) += imx93-phycore-rpmsg.dtb dtb-$(CONFIG_ARCH_MXC) += imx93-charge-som-uart7.dtb +DTC_FLAGS_imx93-charge-som-i2c5 := -@ +dtb-$(CONFIG_ARCH_MXC) += imx93-charge-som-i2c5.dtb +dtb-$(CONFIG_ARCH_MXC) += imx93-charge-som-i2c5-pn7160.dtb dtb-$(CONFIG_ARCH_MXC) += imx93-charge-som-clko-gpio.dtb dtb-$(CONFIG_ARCH_MXC) += imx93-charge-som-lvds-dd0700mc01.dtb dtb-$(CONFIG_ARCH_MXC) += imx93-charge-som-testfixture.dtb dtb-$(CONFIG_ARCH_MXC) += imx93-charge-control-v.dtb +DTC_FLAGS_imx93-charge-som-ac-pb := -@ dtb-$(CONFIG_ARCH_MXC) += imx93-charge-som-ac-pb.dtb +dtb-$(CONFIG_ARCH_MXC) += imx93-charge-som-ac-pb-pn7160.dtb dtb-$(CONFIG_ARCH_MXC) += imx943-evk.dtb imx943-evk-mqs-dtbs := imx943-evk.dtb imx943-evk-mqs.dtbo diff --git a/arch/arm64/boot/dts/freescale/imx93-charge-som-ac-pb-pn7160.dtso b/arch/arm64/boot/dts/freescale/imx93-charge-som-ac-pb-pn7160.dtso new file mode 100644 index 00000000000000..f37852f4709680 --- /dev/null +++ b/arch/arm64/boot/dts/freescale/imx93-charge-som-ac-pb-pn7160.dtso @@ -0,0 +1,41 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Copyright (C) 2026 chargebyte GmbH + * Author: Michael Heimpold + */ + +#include +#include +#include "imx93-pinfunc.h" + +/dts-v1/; +/plugin/; + +/ { + compatible = "chargebyte,imx93-ac-power-board"; +}; + +&iomuxc { + pinctrl_rfid_gpio: rfidgpiogrp { + fsl,pins = < + MX93_PAD_UART2_RXD__GPIO1_IO06 0x31e // X15_6 + MX93_PAD_UART2_TXD__GPIO1_IO07 0x31e // X15_7 + >; + }; +}; + +&lpi2c5 { + #address-cells = <1>; + #size-cells = <0>; + + nfc@28 { + compatible = "nxp,nxp-nci-i2c"; + reg = <0x28>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_rfid_gpio>; + interrupt-parent = <&gpio1>; + interrupts = <6 IRQ_TYPE_LEVEL_HIGH>; + enable-gpios = <&gpio2 24 GPIO_ACTIVE_HIGH>; + firmware-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>; + }; +}; diff --git a/arch/arm64/boot/dts/freescale/imx93-charge-som-ac-pb.dtso b/arch/arm64/boot/dts/freescale/imx93-charge-som-ac-pb.dtso index 390e0ea97b6831..d5f354d1c5e964 100644 --- a/arch/arm64/boot/dts/freescale/imx93-charge-som-ac-pb.dtso +++ b/arch/arm64/boot/dts/freescale/imx93-charge-som-ac-pb.dtso @@ -19,7 +19,7 @@ aliases { rtc0 = &rv3028; }; - + pwm-beeper { compatible = "pwm-beeper"; pwms = <&tpm5 0 5000 0>; @@ -44,7 +44,7 @@ enable-active-high; regulator-boot-on; }; - + reg_wifi: regulator-wifi { compatible = "regulator-fixed"; regulator-max-microvolt = <3300000>; @@ -68,7 +68,7 @@ pinctrl-names = "default"; pinctrl-0 = <&pinctrl_current>; // 16 pins (0..15) - gpio-line-names = "I2C1_SCL", "I2C1_SDA", "", "", "", "", "LPUART2_RX", "LPUART2_TX", "CURRENT_SETTING_2", "CURRENT_SETTING_1", \ + gpio-line-names = "I2C1_SCL", "I2C1_SDA", "", "", "", "", "X15_6", "X15_7", "CURRENT_SETTING_2", "CURRENT_SETTING_1", \ "", "SPI_TPM_nCS0", "", "", "", ""; }; @@ -150,13 +150,6 @@ >; }; - pinctrl_uart2: uart2grp { - fsl,pins = < - MX93_PAD_UART2_RXD__LPUART2_RX 0x31e // drive strength: X4, slew rate: slightly fast, pull up - MX93_PAD_UART2_TXD__LPUART2_TX 0x30e // drive strength: X3, slew rate: slightly fast, pull up - >; - }; - pinctrl_usbotg1grp: usb1grp { fsl,pins = < MX93_PAD_ENET1_TD1__HSIOMIX_OTG_OC1 0x31e @@ -182,7 +175,7 @@ MX93_PAD_SD3_DATA1__GPIO3_IO23 0x31e // INPUT_4 >; }; - + pinctrl_output: outputgrp { fsl,pins = < MX93_PAD_GPIO_IO27__GPIO2_IO27 0x31e // OUTPUT_nFAIL @@ -209,8 +202,8 @@ pinctrl_uart5: uart5grp { fsl,pins = < - MX93_PAD_DAP_TDI__LPUART5_RX 0x31e - MX93_PAD_DAP_TDO_TRACESWO__LPUART5_TX 0x30e + MX93_PAD_DAP_TDI__LPUART5_RX 0x31e + MX93_PAD_DAP_TDO_TRACESWO__LPUART5_TX 0x30e MX93_PAD_DAP_TMS_SWDIO__LPUART5_RTS_B 0x31e MX93_PAD_DAP_TCLK_SWCLK__LPUART5_CTS_B 0x30e >; @@ -233,7 +226,7 @@ MX93_PAD_GPIO_IO26__TPM5_CH3 0x31e // BUZZER >; }; - + pinctrl_wifi_rst: wifirstgrp { fsl,pins = < MX93_PAD_SD2_RESET_B__GPIO3_IO07 0x31e // nRESET_WL @@ -280,7 +273,7 @@ wakeup-source; trickle-resistor-ohms = <3000>; }; - + pca9632: led-controller@60 { compatible = "nxp,pca9632"; reg = <0x60>; @@ -329,13 +322,6 @@ }; }; -/* RFID UART */ -&lpuart2 { - pinctrl-names = "default"; - pinctrl-0 = <&pinctrl_uart2>; - status = "okay"; -}; - /* RS485 */ &lpuart4 { pinctrl-names = "default"; diff --git a/arch/arm64/boot/dts/freescale/imx93-charge-som-i2c5-pn7160.dtso b/arch/arm64/boot/dts/freescale/imx93-charge-som-i2c5-pn7160.dtso new file mode 100644 index 00000000000000..049884ef83843c --- /dev/null +++ b/arch/arm64/boot/dts/freescale/imx93-charge-som-i2c5-pn7160.dtso @@ -0,0 +1,44 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Copyright (C) 2026 chargebyte GmbH + * Author: Michael Heimpold + */ + +#include +#include +#include "imx93-pinfunc.h" + +/dts-v1/; +/plugin/; + +/ { + compatible = "chargebyte,imx93-charge-som"; +}; + +&iomuxc { + pinctrl_rfid_gpio: rfidgpiogrp { + fsl,pins = < + MX93_PAD_SD3_DATA1__GPIO3_IO23 0x31e // X11_SD3_D1 + MX93_PAD_SD3_DATA2__GPIO3_IO24 0x31e // X11_SD3_D2 + MX93_PAD_SD3_DATA3__GPIO3_IO25 0x31e // X11_SD3_D3 + >; + }; +}; + + +&lpi2c5 { + #address-cells = <1>; + #size-cells = <0>; + + nfc@28 { + compatible = "nxp,nxp-nci-i2c"; + reg = <0x28>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_rfid_gpio>; + interrupt-parent = <&gpio3>; + interrupts = <25 IRQ_TYPE_LEVEL_HIGH>; + enable-gpios = <&gpio3 23 GPIO_ACTIVE_HIGH>; + firmware-gpios = <&gpio3 24 GPIO_ACTIVE_HIGH>; + }; + +}; diff --git a/arch/arm64/boot/dts/freescale/imx93-charge-som-i2c5.dtso b/arch/arm64/boot/dts/freescale/imx93-charge-som-i2c5.dtso new file mode 100644 index 00000000000000..3dc7531f3b9da0 --- /dev/null +++ b/arch/arm64/boot/dts/freescale/imx93-charge-som-i2c5.dtso @@ -0,0 +1,44 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Copyright (C) 2026 chargebyte GmbH + * Author: Michael Heimpold + */ + +#include +#include "imx93-pinfunc.h" + +/dts-v1/; +/plugin/; + +/ { + compatible = "chargebyte,imx93-charge-som"; +}; + +&iomuxc { + pinctrl_lpi2c5: lpi2c5grp { + /* sion, drive strength: X2, slew rate: fast, pull up, open drain */ + fsl,pins = < + MX93_PAD_GPIO_IO23__LPI2C5_SCL 0x40000b86 + MX93_PAD_GPIO_IO22__LPI2C5_SDA 0x40000b86 + >; + }; + + pinctrl_lpi2c5_gpio: lpi2c5gpiogrp { + fsl,pins = < + MX93_PAD_GPIO_IO22__GPIO2_IO22 0x40000b9e + MX93_PAD_GPIO_IO23__GPIO2_IO23 0x40000b9e + >; + }; +}; + +&lpi2c5 { + clock-frequency = <400000>; + pinctrl-names = "default", "gpio"; + pinctrl-0 = <&pinctrl_lpi2c5>; + pinctrl-1 = <&pinctrl_lpi2c5_gpio>; + scl-gpios = <&gpio2 23 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + sda-gpios = <&gpio2 22 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; +};