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 */ << 69 &aud2htx { << 70 status = "okay"; << 71 }; << 72 << 73 &backlight { 68 &backlight { 74 power-supply = <®_3p3v>; 69 power-supply = <®_3p3v>; 75 }; 70 }; 76 71 77 /* Verdin SPI_1 */ 72 /* Verdin SPI_1 */ 78 &ecspi1 { 73 &ecspi1 { 79 status = "okay"; 74 status = "okay"; 80 }; 75 }; 81 76 82 /* EEPROM on display adapter boards */ 77 /* EEPROM on display adapter boards */ 83 &eeprom_display_adapter { 78 &eeprom_display_adapter { 84 status = "okay"; 79 status = "okay"; 85 }; 80 }; 86 81 87 /* EEPROM on Verdin Development board */ 82 /* EEPROM on Verdin Development board */ 88 &eeprom_carrier_board { 83 &eeprom_carrier_board { 89 status = "okay"; 84 status = "okay"; 90 }; 85 }; 91 86 92 &eqos { 87 &eqos { 93 status = "okay"; 88 status = "okay"; 94 }; 89 }; 95 90 96 &flexcan1 { 91 &flexcan1 { 97 status = "okay"; 92 status = "okay"; 98 }; 93 }; 99 94 100 &flexcan2 { 95 &flexcan2 { 101 status = "okay"; 96 status = "okay"; 102 }; 97 }; 103 98 104 /* Verdin QSPI_1 */ 99 /* Verdin QSPI_1 */ 105 &flexspi { 100 &flexspi { 106 status = "okay"; 101 status = "okay"; 107 }; 102 }; 108 103 109 &gpio4 { 104 &gpio4 { 110 pinctrl-names = "default"; 105 pinctrl-names = "default"; 111 pinctrl-0 = <&pinctrl_ctrl_sleep_moci> 106 pinctrl-0 = <&pinctrl_ctrl_sleep_moci>; 112 }; 107 }; 113 108 114 /* Verdin HDMI_1 */ 109 /* Verdin HDMI_1 */ 115 &hdmi_pvi { 110 &hdmi_pvi { 116 status = "okay"; 111 status = "okay"; 117 }; 112 }; 118 113 119 &hdmi_tx { 114 &hdmi_tx { 120 status = "okay"; 115 status = "okay"; 121 116 122 ports { 117 ports { 123 port@1 { 118 port@1 { 124 hdmi_tx_out: endpoint 119 hdmi_tx_out: endpoint { 125 remote-endpoin 120 remote-endpoint = <&native_hdmi_connector_in>; 126 }; 121 }; 127 }; 122 }; 128 }; 123 }; 129 }; 124 }; 130 125 131 &hdmi_tx_phy { 126 &hdmi_tx_phy { 132 status = "okay"; 127 status = "okay"; 133 }; 128 }; 134 129 135 /* Current measurement into module VCC */ 130 /* Current measurement into module VCC */ 136 &hwmon { 131 &hwmon { 137 status = "okay"; 132 status = "okay"; 138 }; 133 }; 139 134 140 &hwmon_temp { 135 &hwmon_temp { 141 vs-supply = <®_1p8v>; 136 vs-supply = <®_1p8v>; 142 status = "okay"; 137 status = "okay"; 143 }; 138 }; 144 139 145 /* Verdin I2C_2_DSI */ 140 /* Verdin I2C_2_DSI */ 146 &i2c2 { 141 &i2c2 { 147 status = "okay"; 142 status = "okay"; 148 }; 143 }; 149 144 150 &i2c3 { 145 &i2c3 { 151 status = "okay"; 146 status = "okay"; 152 }; 147 }; 153 148 154 /* Verdin I2C_1 */ 149 /* Verdin I2C_1 */ 155 &i2c4 { 150 &i2c4 { 156 status = "okay"; 151 status = "okay"; 157 152 158 /* Audio Codec */ 153 /* Audio Codec */ 159 wm8904_1a: audio-codec@1a { 154 wm8904_1a: audio-codec@1a { 160 compatible = "wlf,wm8904"; 155 compatible = "wlf,wm8904"; 161 reg = <0x1a>; 156 reg = <0x1a>; 162 pinctrl-names = "default"; 157 pinctrl-names = "default"; 163 pinctrl-0 = <&pinctrl_sai1>; 158 pinctrl-0 = <&pinctrl_sai1>; 164 #sound-dai-cells = <0>; 159 #sound-dai-cells = <0>; 165 clocks = <&audio_blk_ctrl IMX8 160 clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI1_MCLK1>; 166 clock-names = "mclk"; 161 clock-names = "mclk"; 167 AVDD-supply = <®_1p8v>; 162 AVDD-supply = <®_1p8v>; 168 CPVDD-supply = <®_1p8v>; 163 CPVDD-supply = <®_1p8v>; 169 DBVDD-supply = <®_1p8v>; 164 DBVDD-supply = <®_1p8v>; 170 DCVDD-supply = <®_1p8v>; 165 DCVDD-supply = <®_1p8v>; 171 MICVDD-supply = <®_1p8v>; 166 MICVDD-supply = <®_1p8v>; 172 }; 167 }; 173 }; 168 }; 174 169 175 /* Verdin I2C_3_HDMI */ 170 /* Verdin I2C_3_HDMI */ 176 &i2c5 { 171 &i2c5 { 177 status = "okay"; 172 status = "okay"; 178 }; 173 }; 179 174 180 &lcdif3 { 175 &lcdif3 { 181 status = "okay"; 176 status = "okay"; 182 }; 177 }; 183 178 184 /* Verdin PCIE_1 */ 179 /* Verdin PCIE_1 */ 185 &pcie { 180 &pcie { 186 vpcie-supply = <®_pcie>; 181 vpcie-supply = <®_pcie>; 187 status = "okay"; 182 status = "okay"; 188 }; 183 }; 189 184 190 &pcie_phy { 185 &pcie_phy { 191 status = "okay"; 186 status = "okay"; 192 }; 187 }; 193 188 194 /* Verdin PWM_1 */ 189 /* Verdin PWM_1 */ 195 &pwm1 { 190 &pwm1 { 196 status = "okay"; 191 status = "okay"; 197 }; 192 }; 198 193 199 /* Verdin PWM_2 */ 194 /* Verdin PWM_2 */ 200 &pwm2 { 195 &pwm2 { 201 status = "okay"; 196 status = "okay"; 202 }; 197 }; 203 198 204 /* Verdin PWM_3_DSI */ 199 /* Verdin PWM_3_DSI */ 205 &pwm3 { 200 &pwm3 { 206 status = "okay"; 201 status = "okay"; 207 }; 202 }; 208 203 209 ®_usdhc2_vmmc { 204 ®_usdhc2_vmmc { 210 vin-supply = <®_3p3v>; 205 vin-supply = <®_3p3v>; 211 }; 206 }; 212 207 213 /* We support turning off sleep moci on Dahlia 208 /* We support turning off sleep moci on Dahlia */ 214 ®_force_sleep_moci { 209 ®_force_sleep_moci { 215 status = "disabled"; 210 status = "disabled"; 216 }; 211 }; 217 212 218 /* Verdin I2S_1 */ 213 /* Verdin I2S_1 */ 219 &sai1 { 214 &sai1 { 220 assigned-clocks = <&clk IMX8MP_CLK_SAI 215 assigned-clocks = <&clk IMX8MP_CLK_SAI1>; 221 assigned-clock-parents = <&clk IMX8MP_ 216 assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>; 222 assigned-clock-rates = <24576000>; 217 assigned-clock-rates = <24576000>; 223 fsl,sai-mclk-direction-output; 218 fsl,sai-mclk-direction-output; 224 status = "okay"; << 225 }; << 226 << 227 /* Verdin HDMI_1 Audio */ << 228 &sound_hdmi { << 229 status = "okay"; 219 status = "okay"; 230 }; 220 }; 231 221 232 /* Verdin UART_1 */ 222 /* Verdin UART_1 */ 233 &uart1 { 223 &uart1 { 234 status = "okay"; 224 status = "okay"; 235 }; 225 }; 236 226 237 /* Verdin UART_2 */ 227 /* Verdin UART_2 */ 238 &uart2 { 228 &uart2 { 239 status = "okay"; 229 status = "okay"; 240 }; 230 }; 241 231 242 /* Verdin UART_3, used as the Linux Console */ 232 /* Verdin UART_3, used as the Linux Console */ 243 &uart3 { 233 &uart3 { 244 status = "okay"; 234 status = "okay"; 245 }; 235 }; 246 236 247 /* Verdin USB_1 */ 237 /* Verdin USB_1 */ 248 &usb3_0 { 238 &usb3_0 { 249 status = "okay"; 239 status = "okay"; 250 }; 240 }; 251 241 252 &usb3_phy0 { 242 &usb3_phy0 { 253 status = "okay"; 243 status = "okay"; 254 }; 244 }; 255 245 256 /* Verdin USB_2 */ 246 /* Verdin USB_2 */ 257 &usb3_1 { 247 &usb3_1 { 258 fsl,permanently-attached; 248 fsl,permanently-attached; 259 status = "okay"; 249 status = "okay"; 260 }; 250 }; 261 251 262 &usb3_phy1 { 252 &usb3_phy1 { 263 status = "okay"; 253 status = "okay"; 264 }; 254 }; 265 255 266 &usb_dwc3_1 { 256 &usb_dwc3_1 { 267 #address-cells = <1>; 257 #address-cells = <1>; 268 #size-cells = <0>; 258 #size-cells = <0>; 269 259 270 usb_hub_3_0: usb-hub@1 { 260 usb_hub_3_0: usb-hub@1 { 271 compatible = "usb424,5744"; 261 compatible = "usb424,5744"; 272 reg = <1>; 262 reg = <1>; 273 peer-hub = <&usb_hub_2_0>; 263 peer-hub = <&usb_hub_2_0>; 274 vdd-supply = <®_usb_hub>; 264 vdd-supply = <®_usb_hub>; 275 }; 265 }; 276 266 277 usb_hub_2_0: usb-hub@2 { 267 usb_hub_2_0: usb-hub@2 { 278 compatible = "usb424,2744"; 268 compatible = "usb424,2744"; 279 reg = <2>; 269 reg = <2>; 280 peer-hub = <&usb_hub_3_0>; 270 peer-hub = <&usb_hub_3_0>; 281 vdd-supply = <®_usb_hub>; 271 vdd-supply = <®_usb_hub>; 282 }; 272 }; 283 }; 273 }; 284 274 285 /* Verdin SD_1 */ 275 /* Verdin SD_1 */ 286 &usdhc2 { 276 &usdhc2 { 287 status = "okay"; 277 status = "okay"; 288 }; 278 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.