1*5f62a964SEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0+ OR MIT 2*5f62a964SEmmanuel Vadot/* 3*5f62a964SEmmanuel Vadot * Copyright (C) 2024 Kontron Electronics GmbH 4*5f62a964SEmmanuel Vadot */ 5*5f62a964SEmmanuel Vadot 6*5f62a964SEmmanuel Vadot/dts-v1/; 7*5f62a964SEmmanuel Vadot 8*5f62a964SEmmanuel Vadot#include <dt-bindings/phy/phy-imx8-pcie.h> 9*5f62a964SEmmanuel Vadot#include "imx8mp-kontron-smarc.dtsi" 10*5f62a964SEmmanuel Vadot 11*5f62a964SEmmanuel Vadot/ { 12*5f62a964SEmmanuel Vadot model = "Kontron SMARC Eval Carrier with i.MX8MP"; 13*5f62a964SEmmanuel Vadot compatible = "kontron,imx8mp-smarc-eval-carrier", "kontron,imx8mp-smarc", 14*5f62a964SEmmanuel Vadot "kontron,imx8mp-osm-s", "fsl,imx8mp"; 15*5f62a964SEmmanuel Vadot 16*5f62a964SEmmanuel Vadot backlight: backlight { 17*5f62a964SEmmanuel Vadot compatible = "pwm-backlight"; 18*5f62a964SEmmanuel Vadot pwms = <&pwm1 0 50000 0>; 19*5f62a964SEmmanuel Vadot brightness-levels = <0 100>; 20*5f62a964SEmmanuel Vadot num-interpolated-steps = <100>; 21*5f62a964SEmmanuel Vadot default-brightness-level = <100>; 22*5f62a964SEmmanuel Vadot enable-gpios = <&gpio3 19 GPIO_ACTIVE_HIGH>; 23*5f62a964SEmmanuel Vadot }; 24*5f62a964SEmmanuel Vadot 25*5f62a964SEmmanuel Vadot extcon_usbc: usbc { 26*5f62a964SEmmanuel Vadot compatible = "linux,extcon-usb-gpio"; 27*5f62a964SEmmanuel Vadot pinctrl-names = "default"; 28*5f62a964SEmmanuel Vadot pinctrl-0 = <&pinctrl_usb1_id>; 29*5f62a964SEmmanuel Vadot id-gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>; 30*5f62a964SEmmanuel Vadot }; 31*5f62a964SEmmanuel Vadot 32*5f62a964SEmmanuel Vadot sound { 33*5f62a964SEmmanuel Vadot compatible = "simple-audio-card"; 34*5f62a964SEmmanuel Vadot simple-audio-card,bitclock-master = <&codec_dai>; 35*5f62a964SEmmanuel Vadot simple-audio-card,format = "i2s"; 36*5f62a964SEmmanuel Vadot simple-audio-card,frame-master = <&codec_dai>; 37*5f62a964SEmmanuel Vadot simple-audio-card,mclk-fs = <256>; 38*5f62a964SEmmanuel Vadot simple-audio-card,name = "imx8mp-wm8904"; 39*5f62a964SEmmanuel Vadot simple-audio-card,routing = 40*5f62a964SEmmanuel Vadot "Headphone Jack", "HPOUTL", 41*5f62a964SEmmanuel Vadot "Headphone Jack", "HPOUTR", 42*5f62a964SEmmanuel Vadot "IN2L", "Line In Jack", 43*5f62a964SEmmanuel Vadot "IN2R", "Line In Jack", 44*5f62a964SEmmanuel Vadot "Headphone Jack", "MICBIAS", 45*5f62a964SEmmanuel Vadot "IN1L", "Headphone Jack"; 46*5f62a964SEmmanuel Vadot simple-audio-card,widgets = 47*5f62a964SEmmanuel Vadot "Microphone", "Headphone Jack", 48*5f62a964SEmmanuel Vadot "Headphone", "Headphone Jack", 49*5f62a964SEmmanuel Vadot "Line", "Line In Jack"; 50*5f62a964SEmmanuel Vadot 51*5f62a964SEmmanuel Vadot codec_dai: simple-audio-card,codec { 52*5f62a964SEmmanuel Vadot clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI3_MCLK1>; 53*5f62a964SEmmanuel Vadot sound-dai = <&wm8904>; 54*5f62a964SEmmanuel Vadot }; 55*5f62a964SEmmanuel Vadot 56*5f62a964SEmmanuel Vadot simple-audio-card,cpu { 57*5f62a964SEmmanuel Vadot sound-dai = <&sai3>; 58*5f62a964SEmmanuel Vadot }; 59*5f62a964SEmmanuel Vadot }; 60*5f62a964SEmmanuel Vadot 61*5f62a964SEmmanuel Vadot regulator_can0: can0-regulator { 62*5f62a964SEmmanuel Vadot compatible = "regulator-fixed"; 63*5f62a964SEmmanuel Vadot regulator-name = "can0_en"; 64*5f62a964SEmmanuel Vadot gpio = <&expander_pm_out 6 GPIO_ACTIVE_HIGH>; 65*5f62a964SEmmanuel Vadot enable-active-high; 66*5f62a964SEmmanuel Vadot }; 67*5f62a964SEmmanuel Vadot 68*5f62a964SEmmanuel Vadot regulator_can1: can1-regulator { 69*5f62a964SEmmanuel Vadot compatible = "regulator-fixed"; 70*5f62a964SEmmanuel Vadot regulator-name = "can1_en"; 71*5f62a964SEmmanuel Vadot gpio = <&expander_pm_out 7 GPIO_ACTIVE_HIGH>; 72*5f62a964SEmmanuel Vadot enable-active-high; 73*5f62a964SEmmanuel Vadot }; 74*5f62a964SEmmanuel Vadot}; 75*5f62a964SEmmanuel Vadot 76*5f62a964SEmmanuel Vadot&ecspi1 { 77*5f62a964SEmmanuel Vadot status = "okay"; 78*5f62a964SEmmanuel Vadot}; 79*5f62a964SEmmanuel Vadot 80*5f62a964SEmmanuel Vadot&ecspi2 { 81*5f62a964SEmmanuel Vadot status = "okay"; 82*5f62a964SEmmanuel Vadot}; 83*5f62a964SEmmanuel Vadot 84*5f62a964SEmmanuel Vadot&eqos { 85*5f62a964SEmmanuel Vadot status = "okay"; 86*5f62a964SEmmanuel Vadot}; 87*5f62a964SEmmanuel Vadot 88*5f62a964SEmmanuel Vadot&fec { 89*5f62a964SEmmanuel Vadot status = "okay"; 90*5f62a964SEmmanuel Vadot}; 91*5f62a964SEmmanuel Vadot 92*5f62a964SEmmanuel Vadot&flexcan1 { 93*5f62a964SEmmanuel Vadot xceiver-supply = <®ulator_can0>; 94*5f62a964SEmmanuel Vadot status = "okay"; 95*5f62a964SEmmanuel Vadot}; 96*5f62a964SEmmanuel Vadot 97*5f62a964SEmmanuel Vadot&flexcan2 { 98*5f62a964SEmmanuel Vadot xceiver-supply = <®ulator_can1>; 99*5f62a964SEmmanuel Vadot status = "okay"; 100*5f62a964SEmmanuel Vadot}; 101*5f62a964SEmmanuel Vadot 102*5f62a964SEmmanuel Vadot&hdmi_pvi { 103*5f62a964SEmmanuel Vadot status = "okay"; 104*5f62a964SEmmanuel Vadot}; 105*5f62a964SEmmanuel Vadot 106*5f62a964SEmmanuel Vadot&hdmi_tx { 107*5f62a964SEmmanuel Vadot pinctrl-names = "default"; 108*5f62a964SEmmanuel Vadot pinctrl-0 = <&pinctrl_hdmi>; 109*5f62a964SEmmanuel Vadot ddc-i2c-bus = <&i2c3>; 110*5f62a964SEmmanuel Vadot status = "okay"; 111*5f62a964SEmmanuel Vadot}; 112*5f62a964SEmmanuel Vadot 113*5f62a964SEmmanuel Vadot&hdmi_tx_phy { 114*5f62a964SEmmanuel Vadot status = "okay"; 115*5f62a964SEmmanuel Vadot}; 116*5f62a964SEmmanuel Vadot 117*5f62a964SEmmanuel Vadot&i2c1 { 118*5f62a964SEmmanuel Vadot status = "okay"; 119*5f62a964SEmmanuel Vadot 120*5f62a964SEmmanuel Vadot expander_pm_out: io-expander@22 { 121*5f62a964SEmmanuel Vadot compatible = "nxp,pca9554"; 122*5f62a964SEmmanuel Vadot reg = <0x22>; 123*5f62a964SEmmanuel Vadot gpio-controller; 124*5f62a964SEmmanuel Vadot #gpio-cells = <2>; 125*5f62a964SEmmanuel Vadot gpio-line-names = "EN_5V0_S0", "EN_3V3_S0", "EN_1V8_S0", 126*5f62a964SEmmanuel Vadot "EN_1V5_S0", "EN_12V0_PCIE", "EN_3V3_S5", 127*5f62a964SEmmanuel Vadot "CAN0_EN", "CAN1_EN"; 128*5f62a964SEmmanuel Vadot }; 129*5f62a964SEmmanuel Vadot 130*5f62a964SEmmanuel Vadot expander_pm_in: io-expander@24 { 131*5f62a964SEmmanuel Vadot compatible = "nxp,pca9554"; 132*5f62a964SEmmanuel Vadot reg = <0x24>; 133*5f62a964SEmmanuel Vadot gpio-controller; 134*5f62a964SEmmanuel Vadot #gpio-cells = <2>; 135*5f62a964SEmmanuel Vadot gpio-line-names = "PG_5V0_3V3_S0", "PG_5V0_3V3_S5", "PG_1V8_S0", 136*5f62a964SEmmanuel Vadot "PG_1V5_S0", "PG_BKLT_5V", "PG_BKLT_12V"; 137*5f62a964SEmmanuel Vadot }; 138*5f62a964SEmmanuel Vadot}; 139*5f62a964SEmmanuel Vadot 140*5f62a964SEmmanuel Vadot&i2c2 { 141*5f62a964SEmmanuel Vadot status = "okay"; 142*5f62a964SEmmanuel Vadot 143*5f62a964SEmmanuel Vadot wm8904: audio-codec@1a { 144*5f62a964SEmmanuel Vadot compatible = "wlf,wm8904"; 145*5f62a964SEmmanuel Vadot reg = <0x1a>; 146*5f62a964SEmmanuel Vadot #sound-dai-cells = <0>; 147*5f62a964SEmmanuel Vadot clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI3_MCLK1>; 148*5f62a964SEmmanuel Vadot clock-names = "mclk"; 149*5f62a964SEmmanuel Vadot AVDD-supply = <®_vdd_1v8>; 150*5f62a964SEmmanuel Vadot CPVDD-supply = <®_vdd_1v8>; 151*5f62a964SEmmanuel Vadot DBVDD-supply = <®_vdd_1v8>; 152*5f62a964SEmmanuel Vadot DCVDD-supply = <®_vdd_1v8>; 153*5f62a964SEmmanuel Vadot MICVDD-supply = <®_vdd_3v3>; 154*5f62a964SEmmanuel Vadot }; 155*5f62a964SEmmanuel Vadot 156*5f62a964SEmmanuel Vadot expander_audio: io-expander@20 { 157*5f62a964SEmmanuel Vadot compatible = "nxp,pca9554"; 158*5f62a964SEmmanuel Vadot reg = <0x20>; 159*5f62a964SEmmanuel Vadot gpio-controller; 160*5f62a964SEmmanuel Vadot #gpio-cells = <2>; 161*5f62a964SEmmanuel Vadot gpio-line-names = "I2C_SEL_CODEC_LOOPBACK", "FPAH_PRESENCE", 162*5f62a964SEmmanuel Vadot "CODEC_OPTION_SW_I2S_HDA", "LINE_IN_JD", 163*5f62a964SEmmanuel Vadot "LINE_OUT_JD", "HEADPHONES_JD", "MIC_JD"; 164*5f62a964SEmmanuel Vadot }; 165*5f62a964SEmmanuel Vadot}; 166*5f62a964SEmmanuel Vadot 167*5f62a964SEmmanuel Vadot&i2c3 { 168*5f62a964SEmmanuel Vadot status = "okay"; 169*5f62a964SEmmanuel Vadot}; 170*5f62a964SEmmanuel Vadot 171*5f62a964SEmmanuel Vadot&i2c4 { 172*5f62a964SEmmanuel Vadot status = "okay"; 173*5f62a964SEmmanuel Vadot}; 174*5f62a964SEmmanuel Vadot 175*5f62a964SEmmanuel Vadot&lcdif3 { 176*5f62a964SEmmanuel Vadot status = "okay"; 177*5f62a964SEmmanuel Vadot}; 178*5f62a964SEmmanuel Vadot 179*5f62a964SEmmanuel Vadot&pcie_phy { 180*5f62a964SEmmanuel Vadot fsl,refclk-pad-mode = <IMX8_PCIE_REFCLK_PAD_OUTPUT>; 181*5f62a964SEmmanuel Vadot fsl,clkreq-unsupported; 182*5f62a964SEmmanuel Vadot clocks = <&hsio_blk_ctrl>; 183*5f62a964SEmmanuel Vadot clock-names = "ref"; 184*5f62a964SEmmanuel Vadot status = "okay"; 185*5f62a964SEmmanuel Vadot}; 186*5f62a964SEmmanuel Vadot 187*5f62a964SEmmanuel Vadot&pcie { 188*5f62a964SEmmanuel Vadot pinctrl-names = "default"; 189*5f62a964SEmmanuel Vadot pinctrl-0 = <&pinctrl_pcie>; 190*5f62a964SEmmanuel Vadot reset-gpio = <&gpio3 2 GPIO_ACTIVE_LOW>; 191*5f62a964SEmmanuel Vadot status = "okay"; 192*5f62a964SEmmanuel Vadot}; 193*5f62a964SEmmanuel Vadot 194*5f62a964SEmmanuel Vadot&pwm1 { 195*5f62a964SEmmanuel Vadot status = "okay"; 196*5f62a964SEmmanuel Vadot}; 197*5f62a964SEmmanuel Vadot 198*5f62a964SEmmanuel Vadot&sai3 { 199*5f62a964SEmmanuel Vadot assigned-clocks = <&clk IMX8MP_CLK_SAI3>; 200*5f62a964SEmmanuel Vadot assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>; 201*5f62a964SEmmanuel Vadot assigned-clock-rates = <24576000>; 202*5f62a964SEmmanuel Vadot fsl,sai-mclk-direction-output; 203*5f62a964SEmmanuel Vadot status = "okay"; 204*5f62a964SEmmanuel Vadot}; 205*5f62a964SEmmanuel Vadot 206*5f62a964SEmmanuel Vadot&uart1 { 207*5f62a964SEmmanuel Vadot uart-has-rtscts; 208*5f62a964SEmmanuel Vadot status = "okay"; 209*5f62a964SEmmanuel Vadot}; 210*5f62a964SEmmanuel Vadot 211*5f62a964SEmmanuel Vadot&uart2 { 212*5f62a964SEmmanuel Vadot status = "okay"; 213*5f62a964SEmmanuel Vadot}; 214*5f62a964SEmmanuel Vadot 215*5f62a964SEmmanuel Vadot&uart4 { 216*5f62a964SEmmanuel Vadot uart-has-rtscts; 217*5f62a964SEmmanuel Vadot status = "okay"; 218*5f62a964SEmmanuel Vadot}; 219*5f62a964SEmmanuel Vadot 220*5f62a964SEmmanuel Vadot&usb_dwc3_0 { 221*5f62a964SEmmanuel Vadot adp-disable; 222*5f62a964SEmmanuel Vadot hnp-disable; 223*5f62a964SEmmanuel Vadot srp-disable; 224*5f62a964SEmmanuel Vadot dr_mode = "otg"; 225*5f62a964SEmmanuel Vadot extcon = <&extcon_usbc>; 226*5f62a964SEmmanuel Vadot usb-role-switch; 227*5f62a964SEmmanuel Vadot status = "okay"; 228*5f62a964SEmmanuel Vadot}; 229*5f62a964SEmmanuel Vadot 230*5f62a964SEmmanuel Vadot&usb_dwc3_1 { 231*5f62a964SEmmanuel Vadot status = "okay"; 232*5f62a964SEmmanuel Vadot}; 233*5f62a964SEmmanuel Vadot 234*5f62a964SEmmanuel Vadot&usb3_0 { 235*5f62a964SEmmanuel Vadot status = "okay"; 236*5f62a964SEmmanuel Vadot}; 237*5f62a964SEmmanuel Vadot 238*5f62a964SEmmanuel Vadot&usb3_1 { 239*5f62a964SEmmanuel Vadot status = "okay"; 240*5f62a964SEmmanuel Vadot}; 241*5f62a964SEmmanuel Vadot 242*5f62a964SEmmanuel Vadot&usb3_phy0 { 243*5f62a964SEmmanuel Vadot vbus-supply = <®_usb1_vbus>; 244*5f62a964SEmmanuel Vadot status = "okay"; 245*5f62a964SEmmanuel Vadot}; 246*5f62a964SEmmanuel Vadot 247*5f62a964SEmmanuel Vadot&usb3_phy1 { 248*5f62a964SEmmanuel Vadot status = "okay"; 249*5f62a964SEmmanuel Vadot}; 250*5f62a964SEmmanuel Vadot 251*5f62a964SEmmanuel Vadot&usdhc2 { 252*5f62a964SEmmanuel Vadot vmmc-supply = <®_vdd_3v3>; 253*5f62a964SEmmanuel Vadot status = "okay"; 254*5f62a964SEmmanuel Vadot}; 255