1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
3 * Copyright 2023 Logic PD, Inc dba Beacon EmbeddedWorks
8 #include <dt-bindings/usb/pd.h>
9 #include <dt-bindings/phy/phy-imx8-pcie.h>
10 #include "imx8mp.dtsi"
11 #include "imx8mp-beacon-som.dtsi"
14 model = "Beacon EmbeddedWorks i.MX8MPlus Development kit";
15 compatible = "beacon,imx8mp-beacon-kit", "fsl,imx8mp";
27 compatible = "usb-c-connector";
39 remote-endpoint = <&usb3_hs_ep>;
46 remote-endpoint = <&hd3ss3220_in_ep>;
53 compatible = "gpio-keys";
59 gpios = <&pca6416_1 12 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
66 gpios = <&pca6416_1 13 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
73 gpios = <&pca6416_1 14 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
80 gpios = <&pca6416_1 15 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
86 compatible = "gpio-leds";
87 pinctrl-names = "default";
88 pinctrl-0 = <&pinctrl_led3>;
92 gpios = <&pca6416_1 4 GPIO_ACTIVE_HIGH>;
93 default-state = "off";
98 gpios = <&pca6416_1 5 GPIO_ACTIVE_HIGH>;
99 default-state = "off";
104 gpios = <&pca6416_1 6 GPIO_ACTIVE_HIGH>;
105 default-state = "off";
110 gpios = <&gpio4 28 GPIO_ACTIVE_HIGH>;
111 linux,default-trigger = "heartbeat";
115 pcie0_refclk: clock-pcie {
116 compatible = "fixed-clock";
118 clock-frequency = <100000000>;
121 reg_audio: regulator-wm8962 {
122 compatible = "regulator-fixed";
123 regulator-name = "3v3_aud";
124 regulator-min-microvolt = <3300000>;
125 regulator-max-microvolt = <3300000>;
126 gpio = <&pca6416_1 11 GPIO_ACTIVE_HIGH>;
130 reg_usdhc2_vmmc: regulator-usdhc2 {
131 compatible = "regulator-fixed";
132 regulator-name = "VSD_3V3";
133 regulator-min-microvolt = <3300000>;
134 regulator-max-microvolt = <3300000>;
135 gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
137 startup-delay-us = <100>;
138 off-on-delay-us = <20000>;
141 reg_usb1_host_vbus: regulator-usb1-vbus {
142 compatible = "regulator-fixed";
143 regulator-name = "usb1_host_vbus";
144 regulator-max-microvolt = <5000000>;
145 regulator-min-microvolt = <5000000>;
146 gpio = <&pca6416_1 0 GPIO_ACTIVE_HIGH>;
151 compatible = "simple-audio-card";
152 simple-audio-card,name = "wm8962";
153 simple-audio-card,format = "i2s";
154 simple-audio-card,widgets = "Headphone", "Headphones",
155 "Microphone", "Headset Mic",
156 "Speaker", "Speaker";
157 simple-audio-card,routing = "Headphones", "HPOUTL",
158 "Headphones", "HPOUTR",
159 "Speaker", "SPKOUTL",
160 "Speaker", "SPKOUTR",
161 "Headset Mic", "MICBIAS",
162 "IN3R", "Headset Mic";
164 simple-audio-card,cpu {
168 simple-audio-card,codec {
169 sound-dai = <&wm8962>;
170 clocks = <&clk IMX8MP_CLK_IPP_DO_CLKO1>;
178 pinctrl-names = "default";
179 pinctrl-0 = <&pinctrl_ecspi2>;
180 cs-gpios = <&gpio5 13 GPIO_ACTIVE_LOW>;
184 compatible = "infineon,slb9670";
186 pinctrl-names = "default";
187 pinctrl-0 = <&pinctrl_tpm>;
188 reset-gpios = <&gpio4 0 GPIO_ACTIVE_LOW>;
189 spi-max-frequency = <18500000>;
194 pinctrl-names = "default";
195 pinctrl-0 = <&pinctrl_fec>;
196 phy-mode = "rgmii-id";
197 phy-handle = <ðphy1>;
202 #address-cells = <1>;
205 ethphy1: ethernet-phy@3 {
206 compatible = "ethernet-phy-id0022.1640",
207 "ethernet-phy-ieee802.3-c22";
209 reset-gpios = <&gpio4 18 GPIO_ACTIVE_LOW>;
210 reset-assert-us = <10000>;
211 reset-deassert-us = <150000>;
212 interrupt-parent = <&gpio4>;
213 interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
219 pinctrl-names = "default";
220 pinctrl-0 = <&pinctrl_flexcan1>;
229 line-name = "USB-C Mux En";
234 clock-frequency = <384000>;
235 pinctrl-names = "default";
236 pinctrl-0 = <&pinctrl_i2c2>;
240 compatible = "nxp,pcal6416";
244 interrupt-parent = <&gpio4>;
245 interrupts = <27 IRQ_TYPE_EDGE_FALLING>;
246 interrupt-controller;
247 #interrupt-cells = <2>;
252 /* Connected to USB Hub */
254 compatible = "nxp,ptn5110";
256 pinctrl-names = "default";
257 pinctrl-0 = <&pinctrl_typec>;
258 interrupt-parent = <&gpio4>;
259 interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
262 compatible = "usb-c-connector";
264 power-role = "source";
266 source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
272 pinctrl-names = "default";
273 pinctrl-0 = <&pinctrl_i2c4>;
274 clock-frequency = <384000>;
277 wm8962: audio-codec@1a {
278 compatible = "wlf,wm8962";
280 pinctrl-names = "default";
281 pinctrl-0 = <&pinctrl_wm8962>;
282 clocks = <&clk IMX8MP_CLK_IPP_DO_CLKO1>;
283 assigned-clocks = <&clk IMX8MP_CLK_IPP_DO_CLKO1>;
284 assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL2_OUT>;
285 assigned-clock-rates = <22576000>;
286 DCVDD-supply = <®_audio>;
287 DBVDD-supply = <®_audio>;
288 AVDD-supply = <®_audio>;
289 CPVDD-supply = <®_audio>;
290 MICVDD-supply = <®_audio>;
291 PLLVDD-supply = <®_audio>;
292 SPKVDD1-supply = <®_audio>;
293 SPKVDD2-supply = <®_audio>;
295 0x0000 /* 0:Default */
296 0x0000 /* 1:Default */
297 0x0000 /* 2:FN_DMICCLK */
298 0x0000 /* 3:Default */
299 0x0000 /* 4:FN_DMICCDAT */
300 0x0000 /* 5:Default */
302 #sound-dai-cells = <0>;
306 compatible = "nxp,pcal6416";
308 pinctrl-names = "default";
309 pinctrl-0 = <&pinctrl_pcal6414>;
312 interrupt-parent = <&gpio4>;
313 interrupts = <27 IRQ_TYPE_EDGE_FALLING>;
314 interrupt-controller;
315 #interrupt-cells = <2>;
319 compatible = "nxp,pcal6416";
323 interrupt-parent = <&gpio4>;
324 interrupts = <27 IRQ_TYPE_EDGE_FALLING>;
325 interrupt-controller;
326 #interrupt-cells = <2>;
332 line-name = "USB Hub Enable";
337 compatible = "ti,hd3ss3220";
339 pinctrl-names = "default";
340 pinctrl-0 = <&pinctrl_hd3ss3220>;
341 interrupt-parent = <&gpio4>;
342 interrupts = <19 IRQ_TYPE_LEVEL_LOW>;
345 #address-cells = <1>;
351 hd3ss3220_in_ep: endpoint {
352 remote-endpoint = <&ss_ep>;
359 hd3ss3220_out_ep: endpoint {
360 remote-endpoint = <&usb3_role_switch>;
368 pinctrl-names = "default";
369 pinctrl-0 = <&pinctrl_pcie>;
370 reset-gpio = <&gpio4 21 GPIO_ACTIVE_LOW>;
375 fsl,refclk-pad-mode = <IMX8_PCIE_REFCLK_PAD_INPUT>;
376 clocks = <&pcie0_refclk>;
382 pinctrl-names = "default";
383 pinctrl-0 = <&pinctrl_sai3>;
384 assigned-clocks = <&clk IMX8MP_CLK_SAI3>,
385 <&clk IMX8MP_AUDIO_PLL2> ;
386 assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL2_OUT>;
387 assigned-clock-rates = <12288000>, <361267200>;
388 fsl,sai-mclk-direction-output;
397 pinctrl-names = "default";
398 pinctrl-0 = <&pinctrl_uart2>;
403 pinctrl-names = "default";
404 pinctrl-0 = <&pinctrl_uart3>;
405 assigned-clocks = <&clk IMX8MP_CLK_UART3>;
406 assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_80M>;
424 #address-cells = <1>;
429 usb3_hs_ep: endpoint {
430 remote-endpoint = <&hs_ep>;
435 usb3_role_switch: endpoint {
436 remote-endpoint = <&hd3ss3220_out_ep>;
443 vbus-supply = <®_usb1_host_vbus>;
461 pinctrl-names = "default", "state_100mhz", "state_200mhz";
462 pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
463 pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
464 pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
465 cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
466 vmmc-supply = <®_usdhc2_vmmc>;
472 pinctrl_ecspi2: ecspi2grp {
474 MX8MP_IOMUXC_ECSPI2_SCLK__ECSPI2_SCLK 0x82
475 MX8MP_IOMUXC_ECSPI2_MOSI__ECSPI2_MOSI 0x82
476 MX8MP_IOMUXC_ECSPI2_MISO__ECSPI2_MISO 0x82
477 MX8MP_IOMUXC_ECSPI2_SS0__GPIO5_IO13 0x40000
481 pinctrl_fec: fecgrp {
483 MX8MP_IOMUXC_SAI1_RXD2__ENET1_MDC 0x2
484 MX8MP_IOMUXC_SAI1_RXD3__ENET1_MDIO 0x2
485 MX8MP_IOMUXC_SAI1_RXD4__ENET1_RGMII_RD0 0x90
486 MX8MP_IOMUXC_SAI1_RXD5__ENET1_RGMII_RD1 0x90
487 MX8MP_IOMUXC_SAI1_RXD6__ENET1_RGMII_RD2 0x90
488 MX8MP_IOMUXC_SAI1_RXD7__ENET1_RGMII_RD3 0x90
489 MX8MP_IOMUXC_SAI1_TXC__ENET1_RGMII_RXC 0x90
490 MX8MP_IOMUXC_SAI1_TXFS__ENET1_RGMII_RX_CTL 0x90
491 MX8MP_IOMUXC_SAI1_TXD0__ENET1_RGMII_TD0 0x16
492 MX8MP_IOMUXC_SAI1_TXD1__ENET1_RGMII_TD1 0x16
493 MX8MP_IOMUXC_SAI1_TXD2__ENET1_RGMII_TD2 0x16
494 MX8MP_IOMUXC_SAI1_TXD3__ENET1_RGMII_TD3 0x16
495 MX8MP_IOMUXC_SAI1_TXD4__ENET1_RGMII_TX_CTL 0x16
496 MX8MP_IOMUXC_SAI1_TXD5__ENET1_RGMII_TXC 0x16
497 MX8MP_IOMUXC_SAI1_RXD0__GPIO4_IO02 0x140
498 MX8MP_IOMUXC_SAI1_TXD6__GPIO4_IO18 0x10
502 pinctrl_flexcan1: flexcan1grp {
504 MX8MP_IOMUXC_SPDIF_RX__CAN1_RX 0x154
505 MX8MP_IOMUXC_SPDIF_TX__CAN1_TX 0x154
509 pinctrl_hd3ss3220: hd3ss3220grp {
511 MX8MP_IOMUXC_SAI1_TXD7__GPIO4_IO19 0x140
515 pinctrl_i2c2: i2c2grp {
517 MX8MP_IOMUXC_I2C2_SCL__I2C2_SCL 0x400001c2
518 MX8MP_IOMUXC_I2C2_SDA__I2C2_SDA 0x400001c2
522 pinctrl_i2c4: i2c4grp {
524 MX8MP_IOMUXC_I2C4_SCL__I2C4_SCL 0x400001c2
525 MX8MP_IOMUXC_I2C4_SDA__I2C4_SDA 0x400001c2
529 pinctrl_led3: led3grp {
531 MX8MP_IOMUXC_SAI3_RXFS__GPIO4_IO28 0x41
535 pinctrl_pcal6414: pcal6414-gpiogrp {
537 MX8MP_IOMUXC_SAI2_MCLK__GPIO4_IO27 0x10
541 pinctrl_pcie: pciegrp {
543 MX8MP_IOMUXC_GPIO1_IO05__GPIO1_IO05 0x10 /* PCIe_nDIS */
544 MX8MP_IOMUXC_SAI2_RXFS__GPIO4_IO21 0x10 /* PCIe_nRST */
548 pinctrl_reg_usdhc2_vmmc: regusdhc2vmmcgrp {
550 MX8MP_IOMUXC_SD2_RESET_B__GPIO2_IO19 0x40
554 pinctrl_sai3: sai3grp {
556 MX8MP_IOMUXC_SAI3_TXFS__AUDIOMIX_SAI3_TX_SYNC 0xd6
557 MX8MP_IOMUXC_SAI3_TXC__AUDIOMIX_SAI3_TX_BCLK 0xd6
558 MX8MP_IOMUXC_SAI3_RXD__AUDIOMIX_SAI3_RX_DATA00 0xd6
559 MX8MP_IOMUXC_SAI3_TXD__AUDIOMIX_SAI3_TX_DATA00 0xd6
560 MX8MP_IOMUXC_SAI3_MCLK__AUDIOMIX_SAI3_MCLK 0xd6
564 pinctrl_tpm: tpmgrp {
566 MX8MP_IOMUXC_SAI1_RXFS__GPIO4_IO00 0x19 /* Reset */
567 MX8MP_IOMUXC_SAI3_RXC__GPIO4_IO29 0x1d6 /* IRQ */
571 pinctrl_typec: typec1grp {
573 MX8MP_IOMUXC_SAI1_RXC__GPIO4_IO01 0xc4
577 pinctrl_uart2: uart2grp {
579 MX8MP_IOMUXC_UART2_RXD__UART2_DCE_RX 0x140
580 MX8MP_IOMUXC_UART2_TXD__UART2_DCE_TX 0x140
584 pinctrl_uart3: uart3grp {
586 MX8MP_IOMUXC_ECSPI1_SCLK__UART3_DCE_RX 0x140
587 MX8MP_IOMUXC_ECSPI1_MOSI__UART3_DCE_TX 0x140
588 MX8MP_IOMUXC_ECSPI1_SS0__UART3_DCE_RTS 0x140
589 MX8MP_IOMUXC_ECSPI1_MISO__UART3_DCE_CTS 0x140
593 pinctrl_usdhc2: usdhc2grp {
595 MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK 0x190
596 MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD 0x1d0
597 MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0 0x1d0
598 MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1 0x1d0
599 MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2 0x1d0
600 MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3 0x1d0
601 MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT 0xc0
605 pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
607 MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK 0x194
608 MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD 0x1d4
609 MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0 0x1d4
610 MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1 0x1d4
611 MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2 0x1d4
612 MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3 0x1d4
613 MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT 0xc0
617 pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
619 MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK 0x196
620 MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD 0x1d6
621 MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0 0x1d6
622 MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1 0x1d6
623 MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2 0x1d6
624 MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3 0x1d6
625 MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT 0xc0
629 pinctrl_usdhc2_gpio: usdhc2gpiogrp {
631 MX8MP_IOMUXC_SD2_CD_B__GPIO2_IO12 0x1c4
635 pinctrl_wm8962: wm8962grp {
637 MX8MP_IOMUXC_GPIO1_IO14__CCM_CLKO1 0x59