1 // SPDX-License-Identifier: GPL-2.0-or-later O 1 // SPDX-License-Identifier: GPL-2.0-or-later OR MIT 2 /* 2 /* 3 * Copyright 2022 Toradex 3 * Copyright 2022 Toradex 4 */ 4 */ 5 5 6 / { 6 / { 7 native-hdmi-connector { 7 native-hdmi-connector { 8 compatible = "hdmi-connector"; 8 compatible = "hdmi-connector"; 9 label = "X21"; 9 label = "X21"; 10 type = "a"; 10 type = "a"; 11 11 12 port { 12 port { 13 native_hdmi_connector_ 13 native_hdmi_connector_in: endpoint { 14 remote-endpoin 14 remote-endpoint = <&hdmi_tx_out>; 15 }; 15 }; 16 }; 16 }; 17 }; 17 }; 18 18 19 sound { 19 sound { 20 compatible = "simple-audio-car 20 compatible = "simple-audio-card"; 21 simple-audio-card,bitclock-mas 21 simple-audio-card,bitclock-master = <&codec_dai>; 22 simple-audio-card,format = "i2 22 simple-audio-card,format = "i2s"; 23 simple-audio-card,frame-master 23 simple-audio-card,frame-master = <&codec_dai>; 24 simple-audio-card,mclk-fs = <2 24 simple-audio-card,mclk-fs = <256>; 25 simple-audio-card,name = "verd 25 simple-audio-card,name = "verdin-wm8904"; 26 simple-audio-card,routing = 26 simple-audio-card,routing = 27 "Headphone Jack", "HPO 27 "Headphone Jack", "HPOUTL", 28 "Headphone Jack", "HPO 28 "Headphone Jack", "HPOUTR", 29 "IN2L", "Line In Jack" 29 "IN2L", "Line In Jack", 30 "IN2R", "Line In Jack" 30 "IN2R", "Line In Jack", 31 "Headphone Jack", "MIC 31 "Headphone Jack", "MICBIAS", 32 "IN1L", "Headphone Jac 32 "IN1L", "Headphone Jack"; 33 simple-audio-card,widgets = 33 simple-audio-card,widgets = 34 "Microphone", "Headpho 34 "Microphone", "Headphone Jack", 35 "Headphone", "Headphon 35 "Headphone", "Headphone Jack", 36 "Line", "Line In Jack" 36 "Line", "Line In Jack"; 37 37 38 codec_dai: simple-audio-card,c 38 codec_dai: simple-audio-card,codec { 39 clocks = <&audio_blk_c 39 clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI1_MCLK1>; 40 sound-dai = <&wm8904_1 40 sound-dai = <&wm8904_1a>; 41 }; 41 }; 42 42 43 simple-audio-card,cpu { 43 simple-audio-card,cpu { 44 sound-dai = <&sai1>; 44 sound-dai = <&sai1>; 45 }; 45 }; 46 }; 46 }; 47 47 48 reg_usb_hub: regulator-usb-hub { 48 reg_usb_hub: regulator-usb-hub { 49 compatible = "regulator-fixed" 49 compatible = "regulator-fixed"; 50 enable-active-high; 50 enable-active-high; 51 /* Verdin CTRL_SLEEP_MOCI# (SO 51 /* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */ 52 gpio = <&gpio4 29 GPIO_ACTIVE_ 52 gpio = <&gpio4 29 GPIO_ACTIVE_HIGH>; 53 regulator-boot-on; 53 regulator-boot-on; 54 regulator-name = "HUB_PWR_EN"; 54 regulator-name = "HUB_PWR_EN"; 55 }; 55 }; 56 56 57 reg_pcie: regulator-pcie { 57 reg_pcie: regulator-pcie { 58 compatible = "regulator-fixed" 58 compatible = "regulator-fixed"; 59 enable-active-high; 59 enable-active-high; 60 /* Verdin CTRL_SLEEP_MOCI# (SO 60 /* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */ 61 gpio = <&gpio4 29 GPIO_ACTIVE_ 61 gpio = <&gpio4 29 GPIO_ACTIVE_HIGH>; 62 regulator-boot-on; 62 regulator-boot-on; 63 regulator-name = "PCIE_1_PWR_E 63 regulator-name = "PCIE_1_PWR_EN"; 64 startup-delay-us = <100000>; 64 startup-delay-us = <100000>; 65 }; 65 }; 66 }; 66 }; 67 67 68 /* Verdin HDMI_1 Audio */ 68 /* Verdin HDMI_1 Audio */ 69 &aud2htx { 69 &aud2htx { 70 status = "okay"; 70 status = "okay"; 71 }; 71 }; 72 72 73 &backlight { 73 &backlight { 74 power-supply = <®_3p3v>; 74 power-supply = <®_3p3v>; 75 }; 75 }; 76 76 77 /* Verdin SPI_1 */ 77 /* Verdin SPI_1 */ 78 &ecspi1 { 78 &ecspi1 { 79 status = "okay"; 79 status = "okay"; 80 }; 80 }; 81 81 82 /* EEPROM on display adapter boards */ 82 /* EEPROM on display adapter boards */ 83 &eeprom_display_adapter { 83 &eeprom_display_adapter { 84 status = "okay"; 84 status = "okay"; 85 }; 85 }; 86 86 87 /* EEPROM on Verdin Development board */ 87 /* EEPROM on Verdin Development board */ 88 &eeprom_carrier_board { 88 &eeprom_carrier_board { 89 status = "okay"; 89 status = "okay"; 90 }; 90 }; 91 91 92 &eqos { 92 &eqos { 93 status = "okay"; 93 status = "okay"; 94 }; 94 }; 95 95 96 &flexcan1 { 96 &flexcan1 { 97 status = "okay"; 97 status = "okay"; 98 }; 98 }; 99 99 100 &flexcan2 { 100 &flexcan2 { 101 status = "okay"; 101 status = "okay"; 102 }; 102 }; 103 103 104 /* Verdin QSPI_1 */ 104 /* Verdin QSPI_1 */ 105 &flexspi { 105 &flexspi { 106 status = "okay"; 106 status = "okay"; 107 }; 107 }; 108 108 109 &gpio4 { 109 &gpio4 { 110 pinctrl-names = "default"; 110 pinctrl-names = "default"; 111 pinctrl-0 = <&pinctrl_ctrl_sleep_moci> 111 pinctrl-0 = <&pinctrl_ctrl_sleep_moci>; 112 }; 112 }; 113 113 114 /* Verdin HDMI_1 */ 114 /* Verdin HDMI_1 */ 115 &hdmi_pvi { 115 &hdmi_pvi { 116 status = "okay"; 116 status = "okay"; 117 }; 117 }; 118 118 119 &hdmi_tx { 119 &hdmi_tx { 120 status = "okay"; 120 status = "okay"; 121 121 122 ports { 122 ports { 123 port@1 { 123 port@1 { 124 hdmi_tx_out: endpoint 124 hdmi_tx_out: endpoint { 125 remote-endpoin 125 remote-endpoint = <&native_hdmi_connector_in>; 126 }; 126 }; 127 }; 127 }; 128 }; 128 }; 129 }; 129 }; 130 130 131 &hdmi_tx_phy { 131 &hdmi_tx_phy { 132 status = "okay"; 132 status = "okay"; 133 }; 133 }; 134 134 135 /* Current measurement into module VCC */ 135 /* Current measurement into module VCC */ 136 &hwmon { 136 &hwmon { 137 status = "okay"; 137 status = "okay"; 138 }; 138 }; 139 139 140 &hwmon_temp { 140 &hwmon_temp { 141 vs-supply = <®_1p8v>; 141 vs-supply = <®_1p8v>; 142 status = "okay"; 142 status = "okay"; 143 }; 143 }; 144 144 145 /* Verdin I2C_2_DSI */ 145 /* Verdin I2C_2_DSI */ 146 &i2c2 { 146 &i2c2 { 147 status = "okay"; 147 status = "okay"; 148 }; 148 }; 149 149 150 &i2c3 { 150 &i2c3 { 151 status = "okay"; 151 status = "okay"; 152 }; 152 }; 153 153 154 /* Verdin I2C_1 */ 154 /* Verdin I2C_1 */ 155 &i2c4 { 155 &i2c4 { 156 status = "okay"; 156 status = "okay"; 157 157 158 /* Audio Codec */ 158 /* Audio Codec */ 159 wm8904_1a: audio-codec@1a { 159 wm8904_1a: audio-codec@1a { 160 compatible = "wlf,wm8904"; 160 compatible = "wlf,wm8904"; 161 reg = <0x1a>; 161 reg = <0x1a>; 162 pinctrl-names = "default"; 162 pinctrl-names = "default"; 163 pinctrl-0 = <&pinctrl_sai1>; 163 pinctrl-0 = <&pinctrl_sai1>; 164 #sound-dai-cells = <0>; 164 #sound-dai-cells = <0>; 165 clocks = <&audio_blk_ctrl IMX8 165 clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI1_MCLK1>; 166 clock-names = "mclk"; 166 clock-names = "mclk"; 167 AVDD-supply = <®_1p8v>; 167 AVDD-supply = <®_1p8v>; 168 CPVDD-supply = <®_1p8v>; 168 CPVDD-supply = <®_1p8v>; 169 DBVDD-supply = <®_1p8v>; 169 DBVDD-supply = <®_1p8v>; 170 DCVDD-supply = <®_1p8v>; 170 DCVDD-supply = <®_1p8v>; 171 MICVDD-supply = <®_1p8v>; 171 MICVDD-supply = <®_1p8v>; 172 }; 172 }; 173 }; 173 }; 174 174 175 /* Verdin I2C_3_HDMI */ 175 /* Verdin I2C_3_HDMI */ 176 &i2c5 { 176 &i2c5 { 177 status = "okay"; 177 status = "okay"; 178 }; 178 }; 179 179 180 &lcdif3 { 180 &lcdif3 { 181 status = "okay"; 181 status = "okay"; 182 }; 182 }; 183 183 184 /* Verdin PCIE_1 */ 184 /* Verdin PCIE_1 */ 185 &pcie { 185 &pcie { 186 vpcie-supply = <®_pcie>; 186 vpcie-supply = <®_pcie>; 187 status = "okay"; 187 status = "okay"; 188 }; 188 }; 189 189 190 &pcie_phy { 190 &pcie_phy { 191 status = "okay"; 191 status = "okay"; 192 }; 192 }; 193 193 194 /* Verdin PWM_1 */ 194 /* Verdin PWM_1 */ 195 &pwm1 { 195 &pwm1 { 196 status = "okay"; 196 status = "okay"; 197 }; 197 }; 198 198 199 /* Verdin PWM_2 */ 199 /* Verdin PWM_2 */ 200 &pwm2 { 200 &pwm2 { 201 status = "okay"; 201 status = "okay"; 202 }; 202 }; 203 203 204 /* Verdin PWM_3_DSI */ 204 /* Verdin PWM_3_DSI */ 205 &pwm3 { 205 &pwm3 { 206 status = "okay"; 206 status = "okay"; 207 }; 207 }; 208 208 209 ®_usdhc2_vmmc { 209 ®_usdhc2_vmmc { 210 vin-supply = <®_3p3v>; 210 vin-supply = <®_3p3v>; 211 }; 211 }; 212 212 213 /* We support turning off sleep moci on Dahlia 213 /* We support turning off sleep moci on Dahlia */ 214 ®_force_sleep_moci { 214 ®_force_sleep_moci { 215 status = "disabled"; 215 status = "disabled"; 216 }; 216 }; 217 217 218 /* Verdin I2S_1 */ 218 /* Verdin I2S_1 */ 219 &sai1 { 219 &sai1 { 220 assigned-clocks = <&clk IMX8MP_CLK_SAI 220 assigned-clocks = <&clk IMX8MP_CLK_SAI1>; 221 assigned-clock-parents = <&clk IMX8MP_ 221 assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>; 222 assigned-clock-rates = <24576000>; 222 assigned-clock-rates = <24576000>; 223 fsl,sai-mclk-direction-output; 223 fsl,sai-mclk-direction-output; 224 status = "okay"; 224 status = "okay"; 225 }; 225 }; 226 226 227 /* Verdin HDMI_1 Audio */ 227 /* Verdin HDMI_1 Audio */ 228 &sound_hdmi { 228 &sound_hdmi { 229 status = "okay"; 229 status = "okay"; 230 }; 230 }; 231 231 232 /* Verdin UART_1 */ 232 /* Verdin UART_1 */ 233 &uart1 { 233 &uart1 { 234 status = "okay"; 234 status = "okay"; 235 }; 235 }; 236 236 237 /* Verdin UART_2 */ 237 /* Verdin UART_2 */ 238 &uart2 { 238 &uart2 { 239 status = "okay"; 239 status = "okay"; 240 }; 240 }; 241 241 242 /* Verdin UART_3, used as the Linux Console */ 242 /* Verdin UART_3, used as the Linux Console */ 243 &uart3 { 243 &uart3 { 244 status = "okay"; 244 status = "okay"; 245 }; 245 }; 246 246 247 /* Verdin USB_1 */ 247 /* Verdin USB_1 */ 248 &usb3_0 { 248 &usb3_0 { 249 status = "okay"; 249 status = "okay"; 250 }; 250 }; 251 251 252 &usb3_phy0 { 252 &usb3_phy0 { 253 status = "okay"; 253 status = "okay"; 254 }; 254 }; 255 255 256 /* Verdin USB_2 */ 256 /* Verdin USB_2 */ 257 &usb3_1 { 257 &usb3_1 { 258 fsl,permanently-attached; 258 fsl,permanently-attached; 259 status = "okay"; 259 status = "okay"; 260 }; 260 }; 261 261 262 &usb3_phy1 { 262 &usb3_phy1 { 263 status = "okay"; 263 status = "okay"; 264 }; 264 }; 265 265 266 &usb_dwc3_1 { 266 &usb_dwc3_1 { 267 #address-cells = <1>; 267 #address-cells = <1>; 268 #size-cells = <0>; 268 #size-cells = <0>; 269 269 270 usb_hub_3_0: usb-hub@1 { 270 usb_hub_3_0: usb-hub@1 { 271 compatible = "usb424,5744"; 271 compatible = "usb424,5744"; 272 reg = <1>; 272 reg = <1>; 273 peer-hub = <&usb_hub_2_0>; 273 peer-hub = <&usb_hub_2_0>; 274 vdd-supply = <®_usb_hub>; 274 vdd-supply = <®_usb_hub>; 275 }; 275 }; 276 276 277 usb_hub_2_0: usb-hub@2 { 277 usb_hub_2_0: usb-hub@2 { 278 compatible = "usb424,2744"; 278 compatible = "usb424,2744"; 279 reg = <2>; 279 reg = <2>; 280 peer-hub = <&usb_hub_3_0>; 280 peer-hub = <&usb_hub_3_0>; 281 vdd-supply = <®_usb_hub>; 281 vdd-supply = <®_usb_hub>; 282 }; 282 }; 283 }; 283 }; 284 284 285 /* Verdin SD_1 */ 285 /* Verdin SD_1 */ 286 &usdhc2 { 286 &usdhc2 { 287 status = "okay"; 287 status = "okay"; 288 }; 288 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.