lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20250605070453.GA20292@nxa18884-linux>
Date: Thu, 5 Jun 2025 15:04:53 +0800
From: Peng Fan <peng.fan@....nxp.com>
To: Fabian Pflug <f.pflug@...gutronix.de>
Cc: Rob Herring <robh@...nel.org>, Krzysztof Kozlowski <krzk+dt@...nel.org>,
	Conor Dooley <conor+dt@...nel.org>, Shawn Guo <shawnguo@...nel.org>,
	Sascha Hauer <s.hauer@...gutronix.de>,
	Pengutronix Kernel Team <kernel@...gutronix.de>,
	Fabio Estevam <festevam@...il.com>, devicetree@...r.kernel.org,
	linux-kernel@...r.kernel.org, imx@...ts.linux.dev,
	linux-arm-kernel@...ts.infradead.org
Subject: Re: [PATCH v2 2/2] arm64: dts: freescale: add support for NXP i.MX93
 FRDM

On Mon, May 26, 2025 at 01:02:36PM +0200, Fabian Pflug wrote:
>The FRDM i.MX 93 development board is a low-cost and compact development
>board featuring the i.MX93 applications processor.
>
>It features:
>- Dual Cortex-A55
>- 2 GB LPDDR4X / LPDDR4
>- 32 GB eMMC5.1
>- MicroSD slot
>- GbE RJ45 x 2
>- USB2.0 1x Type C, 1x Type A
>
>This file is based upon the one provided by nxp in their own kernel and
>yocto meta layer for the device, but adapted for mainline.
>
>Signed-off-by: Fabian Pflug <f.pflug@...gutronix.de>
>---
> arch/arm64/boot/dts/freescale/Makefile             |   1 +
> arch/arm64/boot/dts/freescale/imx93-11x11-frdm.dts | 613 +++++++++++++++++++++
> 2 files changed, 614 insertions(+)
>
>diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
>index b6d3fe26d621234ab84353165d20af9d2536f839..c703fce2ebfd8074bd0c6ee76f3c6f9bbd9cf179 100644
>--- a/arch/arm64/boot/dts/freescale/Makefile
>+++ b/arch/arm64/boot/dts/freescale/Makefile
>@@ -295,6 +295,7 @@ imx93-9x9-qsb-i3c-dtbs += imx93-9x9-qsb.dtb imx93-9x9-qsb-i3c.dtbo
> dtb-$(CONFIG_ARCH_MXC) += imx93-9x9-qsb-i3c.dtb
> 
> dtb-$(CONFIG_ARCH_MXC) += imx93-11x11-evk.dtb
>+dtb-$(CONFIG_ARCH_MXC) += imx93-11x11-frdm.dtb
> dtb-$(CONFIG_ARCH_MXC) += imx93-14x14-evk.dtb
> dtb-$(CONFIG_ARCH_MXC) += imx93-kontron-bl-osm-s.dtb
> dtb-$(CONFIG_ARCH_MXC) += imx93-phyboard-segin.dtb
>diff --git a/arch/arm64/boot/dts/freescale/imx93-11x11-frdm.dts b/arch/arm64/boot/dts/freescale/imx93-11x11-frdm.dts
>new file mode 100644
>index 0000000000000000000000000000000000000000..dc6348858024d833a450a6b5d2e54e4fefe9e9cd
>--- /dev/null
>+++ b/arch/arm64/boot/dts/freescale/imx93-11x11-frdm.dts
>@@ -0,0 +1,613 @@
>+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
>+/dts-v1/;
>+
>+#include <dt-bindings/usb/pd.h>
>+#include "imx93.dtsi"
>+
>+/ {
>+	compatible = "fsl,imx93-11x11-frdm", "fsl,imx93";
>+	model = "NXP i.MX93 11X11 FRDM board";
>+
>+	aliases {
>+		mmc0 = &usdhc1; /* EMMC */
>+		mmc1 = &usdhc2; /* uSD */
>+		rtc0 = &pcf2131;
>+		serial0 = &lpuart1;
>+	};
>+
>+	chosen {
>+		stdout-path = &lpuart1;
>+	};
>+
>+	reg_vref_1v8: regulator-adc-vref {
>+		compatible = "regulator-fixed";
>+		regulator-min-microvolt = <1800000>;
>+		regulator-max-microvolt = <1800000>;
>+		regulator-name = "vref_1v8";
>+	};
>+
>+	reg_usdhc2_vmmc: regulator-usdhc2 {
>+		compatible = "regulator-fixed";
>+		off-on-delay-us = <12000>;
>+		pinctrl-0 = <&pinctrl_reg_usdhc2_vmmc>;
>+		pinctrl-names = "default";
>+		regulator-min-microvolt = <3300000>;
>+		regulator-max-microvolt = <3300000>;
>+		regulator-name = "VSD_3V3";
>+		gpio = <&gpio3 7 GPIO_ACTIVE_HIGH>;
>+		enable-active-high;
>+	};
>+
>+	reg_usdhc3_vmmc: regulator-usdhc3 {
>+		compatible = "regulator-fixed";
>+		regulator-min-microvolt = <3300000>;
>+		regulator-max-microvolt = <3300000>;
>+		regulator-name = "WLAN_EN";
>+		gpio = <&pcal6524 20 GPIO_ACTIVE_HIGH>;
>+		enable-active-high;
>+		/*
>+		 * IW612 wifi chip needs more delay than other wifi chips to complete
>+		 * the host interface initialization after power up, otherwise the
>+		 * internal state of IW612 may be unstable, resulting in the failure of
>+		 * the SDIO3.0 switch voltage.
>+		 */
>+		startup-delay-us = <20000>;
>+	};
>+
>+	reserved-memory {
>+		ranges;
>+		#address-cells = <2>;
>+		#size-cells = <2>;
>+
>+		linux,cma {
>+			compatible = "shared-dma-pool";
>+			alloc-ranges = <0 0x80000000 0 0x30000000>;
>+			reusable;
>+			size = <0 0x10000000>;
>+			linux,cma-default;
>+		};
>+
>+		rsc_table: rsc-table@...1e000 {
>+			reg = <0 0x2021e000 0 0x1000>;
>+			no-map;
>+		};
>+
>+		vdev0vring0: vdev0vring0@...00000 {
>+			reg = <0 0xa4000000 0 0x8000>;
>+			no-map;
>+		};
>+
>+		vdev0vring1: vdev0vring1@...08000 {
>+			reg = <0 0xa4008000 0 0x8000>;
>+			no-map;
>+		};
>+
>+		vdev1vring0: vdev1vring0@...10000 {
>+			reg = <0 0xa4010000 0 0x8000>;
>+			no-map;
>+		};
>+
>+		vdev1vring1: vdev1vring1@...18000 {
>+			reg = <0 0xa4018000 0 0x8000>;
>+			no-map;
>+		};
>+
>+		vdevbuffer: vdevbuffer@...20000 {
>+			compatible = "shared-dma-pool";
>+			reg = <0 0xa4020000 0 0x100000>;
>+			no-map;
>+		};
>+	};
>+
>+	usdhc3_pwrseq: usdhc3_pwrseq {
>+		compatible = "mmc-pwrseq-simple";
>+		reset-gpios = <&pcal6524 12 GPIO_ACTIVE_LOW>;
>+	};
>+};
>+
>+&adc1 {
>+	vref-supply = <&reg_vref_1v8>;
>+	status = "okay";
>+};
>+
>+&cm33 {
>+	mboxes = <&mu1 0 1>,
>+		 <&mu1 1 1>,
>+		 <&mu1 3 1>;
>+	mbox-names = "tx", "rx", "rxdb";
>+	memory-region = <&vdevbuffer>, <&vdev0vring0>, <&vdev0vring1>,
>+			<&vdev1vring0>, <&vdev1vring1>, <&rsc_table>;
>+	status = "okay";
>+};
>+
>+&eqos {
>+	phy-handle = <&ethphy1>;
>+	phy-mode = "rgmii-id";
>+	pinctrl-0 = <&pinctrl_eqos>;
>+	pinctrl-1 = <&pinctrl_eqos_sleep>;
>+	pinctrl-names = "default", "sleep";
>+	status = "okay";
>+
>+	mdio {
>+		compatible = "snps,dwmac-mdio";
>+		#address-cells = <1>;
>+		#size-cells = <0>;
>+		clock-frequency = <5000000>;
>+
>+		ethphy1: ethernet-phy@1 {
>+			reg = <1>;
>+			reset-assert-us = <10000>;
>+			reset-deassert-us = <80000>;
>+			reset-gpios = <&pcal6524 15 GPIO_ACTIVE_LOW>;
>+		};
>+	};
>+};
>+
>+&fec {
>+	phy-handle = <&ethphy2>;
>+	phy-mode = "rgmii-id";
>+	pinctrl-0 = <&pinctrl_fec>;
>+	pinctrl-1 = <&pinctrl_fec_sleep>;
>+	pinctrl-names = "default", "sleep";
>+	fsl,magic-packet;
>+	status = "okay";
>+
>+	mdio {
>+		#address-cells = <1>;
>+		#size-cells = <0>;
>+		clock-frequency = <5000000>;
>+
>+		ethphy2: ethernet-phy@2 {
>+			reg = <2>;
>+			eee-broken-1000t;
>+			reset-assert-us = <10000>;
>+			reset-deassert-us = <80000>;
>+			reset-gpios = <&pcal6524 16 GPIO_ACTIVE_LOW>;
>+		};
>+	};
>+};
>+
>+&lpi2c2 {
>+	clock-frequency = <400000>;
>+	pinctrl-0 = <&pinctrl_lpi2c2>;
>+	pinctrl-names = "default";
>+	status = "okay";
>+
>+	pcal6524: gpio@22 {
>+		compatible = "nxp,pcal6524";
>+		reg = <0x22>;
>+		#interrupt-cells = <2>;
>+		interrupt-controller;
>+		interrupt-parent = <&gpio3>;
>+		interrupts = <27 IRQ_TYPE_LEVEL_LOW>;
>+		#gpio-cells = <2>;
>+		gpio-controller;
>+		pinctrl-0 = <&pinctrl_pcal6524>;
>+		pinctrl-names = "default";
>+	};
>+
>+	pmic@25 {
>+		compatible = "nxp,pca9451a";
>+		reg = <0x25>;
>+		interrupt-parent = <&pcal6524>;
>+		interrupts = <11 IRQ_TYPE_EDGE_FALLING>;
>+
>+		regulators {
>+
>+			buck1: BUCK1 {
>+				regulator-name = "BUCK1";
>+				regulator-always-on;
>+				regulator-boot-on;
>+				regulator-min-microvolt = <650000>;
>+				regulator-max-microvolt = <2237500>;
>+				regulator-ramp-delay = <3125>;
>+			};
>+
>+			buck2: BUCK2 {
>+				regulator-name = "BUCK2";
>+				regulator-always-on;
>+				regulator-boot-on;
>+				regulator-min-microvolt = <600000>;
>+				regulator-max-microvolt = <2187500>;
>+				regulator-ramp-delay = <3125>;
>+			};
>+
>+			buck4: BUCK4 {
>+				regulator-name = "BUCK4";
>+				regulator-always-on;
>+				regulator-boot-on;
>+				regulator-min-microvolt = <600000>;
>+				regulator-max-microvolt = <3400000>;
>+			};
>+
>+			buck5: BUCK5 {
>+				regulator-name = "BUCK5";
>+				regulator-always-on;
>+				regulator-boot-on;
>+				regulator-min-microvolt = <600000>;
>+				regulator-max-microvolt = <3400000>;
>+			};
>+
>+			buck6: BUCK6 {
>+				regulator-name = "BUCK6";
>+				regulator-always-on;
>+				regulator-boot-on;
>+				regulator-min-microvolt = <600000>;
>+				regulator-max-microvolt = <3400000>;
>+			};
>+
>+			ldo1: LDO1 {
>+				regulator-name = "LDO1";
>+				regulator-always-on;
>+				regulator-boot-on;
>+				regulator-min-microvolt = <1600000>;
>+				regulator-max-microvolt = <3300000>;
>+			};
>+
>+			ldo4: LDO4 {
>+				regulator-name = "LDO4";
>+				regulator-always-on;
>+				regulator-boot-on;
>+				regulator-min-microvolt = <800000>;
>+				regulator-max-microvolt = <3300000>;
>+			};
>+
>+			ldo5: LDO5 {
>+				regulator-name = "LDO5";
>+				regulator-always-on;
>+				regulator-boot-on;
>+				regulator-min-microvolt = <1800000>;
>+				regulator-max-microvolt = <3300000>;
>+			};
>+		};
>+	};
>+
>+	eeprom: eeprom@50 {
>+		compatible = "atmel,24c256";
>+		reg = <0x50>;
>+		pagesize = <64>;
>+	};
>+};
>+
>+&lpi2c3 {
>+	#address-cells = <1>;
>+	#size-cells = <0>;
>+	clock-frequency = <400000>;
>+	pinctrl-0 = <&pinctrl_lpi2c3>;
>+	pinctrl-names = "default";
>+	status = "okay";
>+
>+	ptn5110: tcpc@50 {
>+		compatible = "nxp,ptn5110", "tcpci";
>+		reg = <0x50>;
>+		interrupt-parent = <&gpio3>;
>+		interrupts = <27 IRQ_TYPE_LEVEL_LOW>;
>+
>+		typec1_con: connector {
>+			compatible = "usb-c-connector";
>+			data-role = "dual";
>+			label = "USB-C";
>+			op-sink-microwatt = <15000000>;
>+			power-role = "dual";
>+			self-powered;
>+			sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)
>+				     PDO_VAR(5000, 20000, 3000)>;
>+			source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
>+			try-power-role = "sink";
>+
>+			ports {
>+				#address-cells = <1>;
>+				#size-cells = <0>;
>+
>+				port@0 {
>+					reg = <0>;
>+
>+					typec1_dr_sw: endpoint {
>+						remote-endpoint = <&usb1_drd_sw>;
>+					};
>+				};
>+			};
>+		};
>+	};
>+
>+	pcf2131: rtc@53 {
>+		compatible = "nxp,pcf2131";
>+		reg = <0x53>;
>+		interrupt-parent = <&pcal6524>;
>+		interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
>+	};
>+};
>+
>+&lpuart1 { /* console */
>+	pinctrl-0 = <&pinctrl_uart1>;
>+	pinctrl-names = "default";
>+	status = "okay";
>+};
>+
>+&usbotg1 {
>+	adp-disable;
>+	disable-over-current;
>+	dr_mode = "otg";
>+	hnp-disable;
>+	srp-disable;
>+	usb-role-switch;
>+	samsung,picophy-dc-vol-level-adjust = <7>;
>+	samsung,picophy-pre-emp-curr-control = <3>;
>+	status = "okay";
>+
>+	port {
>+
>+		usb1_drd_sw: endpoint {
>+			remote-endpoint = <&typec1_dr_sw>;
>+		};
>+	};
>+};
>+
>+&usbotg2 {
>+	disable-over-current;
>+	dr_mode = "host";
>+	samsung,picophy-dc-vol-level-adjust = <7>;
>+	samsung,picophy-pre-emp-curr-control = <3>;
>+	status = "okay";
>+};
>+
>+&usdhc1 {
>+	bus-width = <8>;
>+	non-removable;
>+	pinctrl-0 = <&pinctrl_usdhc1>;
>+	pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
>+	pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
>+	pinctrl-names = "default", "state_100mhz", "state_200mhz";
>+	status = "okay";
>+};
>+
>+&usdhc2 {
>+	bus-width = <4>;
>+	cd-gpios = <&gpio3 00 GPIO_ACTIVE_LOW>;
>+	no-mmc;
>+	no-sdio;
>+	pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
>+	pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
>+	pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
>+	pinctrl-3 = <&pinctrl_usdhc2_sleep>, <&pinctrl_usdhc2_gpio_sleep>;
>+	pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep";
>+	vmmc-supply = <&reg_usdhc2_vmmc>;
>+	status = "okay";
>+};
>+
>+&wdog3 {
>+	status = "okay";

Is there a need to set WDOG_ANY to trigger pmic reset?

Regards,
Peng

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ