// SPDX-License-Identifier: GPL-2.0+ OR MIT /* * Copyright (C) 2024 Kontron Electronics GmbH */ /dts-v1/; #include #include "imx8mp-kontron-smarc.dtsi" / { model = "Kontron SMARC Eval Carrier with i.MX8MP"; compatible = "kontron,imx8mp-smarc-eval-carrier", "kontron,imx8mp-smarc", "kontron,imx8mp-osm-s", "fsl,imx8mp"; backlight: backlight { compatible = "pwm-backlight"; pwms = <&pwm1 0 50000 0>; brightness-levels = <0 100>; num-interpolated-steps = <100>; default-brightness-level = <100>; enable-gpios = <&gpio3 19 GPIO_ACTIVE_HIGH>; }; extcon_usbc: usbc { compatible = "linux,extcon-usb-gpio"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_usb1_id>; id-gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>; }; sound { compatible = "simple-audio-card"; simple-audio-card,bitclock-master = <&codec_dai>; simple-audio-card,format = "i2s"; simple-audio-card,frame-master = <&codec_dai>; simple-audio-card,mclk-fs = <256>; simple-audio-card,name = "imx8mp-wm8904"; simple-audio-card,routing = "Headphone Jack", "HPOUTL", "Headphone Jack", "HPOUTR", "IN2L", "Line In Jack", "IN2R", "Line In Jack", "Headphone Jack", "MICBIAS", "IN1L", "Headphone Jack"; simple-audio-card,widgets = "Microphone", "Headphone Jack", "Headphone", "Headphone Jack", "Line", "Line In Jack"; codec_dai: simple-audio-card,codec { clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI3_MCLK1>; sound-dai = <&wm8904>; }; simple-audio-card,cpu { sound-dai = <&sai3>; }; }; regulator_can0: can0-regulator { compatible = "regulator-fixed"; regulator-name = "can0_en"; gpio = <&expander_pm_out 6 GPIO_ACTIVE_HIGH>; enable-active-high; }; regulator_can1: can1-regulator { compatible = "regulator-fixed"; regulator-name = "can1_en"; gpio = <&expander_pm_out 7 GPIO_ACTIVE_HIGH>; enable-active-high; }; }; &ecspi1 { status = "okay"; }; &ecspi2 { status = "okay"; }; &eqos { status = "okay"; }; &fec { status = "okay"; }; &flexcan1 { xceiver-supply = <®ulator_can0>; status = "okay"; }; &flexcan2 { xceiver-supply = <®ulator_can1>; status = "okay"; }; &hdmi_pvi { status = "okay"; }; &hdmi_tx { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_hdmi>; ddc-i2c-bus = <&i2c3>; status = "okay"; }; &hdmi_tx_phy { status = "okay"; }; &i2c1 { status = "okay"; expander_pm_out: io-expander@22 { compatible = "nxp,pca9554"; reg = <0x22>; gpio-controller; #gpio-cells = <2>; gpio-line-names = "EN_5V0_S0", "EN_3V3_S0", "EN_1V8_S0", "EN_1V5_S0", "EN_12V0_PCIE", "EN_3V3_S5", "CAN0_EN", "CAN1_EN"; }; expander_pm_in: io-expander@24 { compatible = "nxp,pca9554"; reg = <0x24>; gpio-controller; #gpio-cells = <2>; gpio-line-names = "PG_5V0_3V3_S0", "PG_5V0_3V3_S5", "PG_1V8_S0", "PG_1V5_S0", "PG_BKLT_5V", "PG_BKLT_12V"; }; }; &i2c2 { status = "okay"; wm8904: audio-codec@1a { compatible = "wlf,wm8904"; reg = <0x1a>; #sound-dai-cells = <0>; clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI3_MCLK1>; clock-names = "mclk"; AVDD-supply = <®_vdd_1v8>; CPVDD-supply = <®_vdd_1v8>; DBVDD-supply = <®_vdd_1v8>; DCVDD-supply = <®_vdd_1v8>; MICVDD-supply = <®_vdd_3v3>; }; expander_audio: io-expander@20 { compatible = "nxp,pca9554"; reg = <0x20>; gpio-controller; #gpio-cells = <2>; gpio-line-names = "I2C_SEL_CODEC_LOOPBACK", "FPAH_PRESENCE", "CODEC_OPTION_SW_I2S_HDA", "LINE_IN_JD", "LINE_OUT_JD", "HEADPHONES_JD", "MIC_JD"; }; }; &i2c3 { status = "okay"; }; &i2c4 { status = "okay"; }; &lcdif3 { status = "okay"; }; &pcie_phy { fsl,refclk-pad-mode = ; fsl,clkreq-unsupported; clocks = <&hsio_blk_ctrl>; clock-names = "ref"; status = "okay"; }; &pcie { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_pcie>; reset-gpio = <&gpio3 2 GPIO_ACTIVE_LOW>; status = "okay"; }; &pwm1 { status = "okay"; }; &sai3 { assigned-clocks = <&clk IMX8MP_CLK_SAI3>; assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>; assigned-clock-rates = <24576000>; fsl,sai-mclk-direction-output; status = "okay"; }; &uart1 { uart-has-rtscts; status = "okay"; }; &uart2 { status = "okay"; }; &uart4 { uart-has-rtscts; status = "okay"; }; &usb_dwc3_0 { adp-disable; hnp-disable; srp-disable; dr_mode = "otg"; extcon = <&extcon_usbc>; usb-role-switch; status = "okay"; }; &usb_dwc3_1 { status = "okay"; }; &usb3_0 { status = "okay"; }; &usb3_1 { status = "okay"; }; &usb3_phy0 { vbus-supply = <®_usb1_vbus>; status = "okay"; }; &usb3_phy1 { status = "okay"; }; &usdhc2 { vmmc-supply = <®_vdd_3v3>; status = "okay"; };