1 // SPDX-License-Identifier: (GPL-2.0-or-later 1 // SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-3-Clause) 2 /* 2 /* 3 * Copyright (C) 2020 STMicroelectronics - All 3 * Copyright (C) 2020 STMicroelectronics - All Rights Reserved 4 * Copyright (C) 2021 Rouven Czerwinski, Pengu 4 * Copyright (C) 2021 Rouven Czerwinski, Pengutronix 5 * Copyright (C) 2023 Leonard Göhrs, Pengutro 5 * Copyright (C) 2023 Leonard Göhrs, Pengutronix 6 */ 6 */ 7 7 8 #include "stm32mp15xc.dtsi" 8 #include "stm32mp15xc.dtsi" 9 #include "stm32mp15xx-osd32.dtsi" 9 #include "stm32mp15xx-osd32.dtsi" 10 #include "stm32mp15xxac-pinctrl.dtsi" 10 #include "stm32mp15xxac-pinctrl.dtsi" 11 11 12 #include <dt-bindings/gpio/gpio.h> 12 #include <dt-bindings/gpio/gpio.h> 13 #include <dt-bindings/input/input.h> 13 #include <dt-bindings/input/input.h> 14 #include <dt-bindings/leds/common.h> 14 #include <dt-bindings/leds/common.h> 15 #include <dt-bindings/pwm/pwm.h> 15 #include <dt-bindings/pwm/pwm.h> 16 16 17 / { 17 / { 18 aliases { 18 aliases { 19 ethernet0 = ðernet0; 19 ethernet0 = ðernet0; 20 ethernet1 = &port_uplink; 20 ethernet1 = &port_uplink; 21 ethernet2 = &port_dut; 21 ethernet2 = &port_dut; 22 mmc1 = &sdmmc2; 22 mmc1 = &sdmmc2; 23 serial0 = &uart4; 23 serial0 = &uart4; 24 serial1 = &usart3; 24 serial1 = &usart3; 25 }; 25 }; 26 26 27 chosen { 27 chosen { 28 stdout-path = &uart4; 28 stdout-path = &uart4; 29 }; 29 }; 30 30 31 led-controller-0 { 31 led-controller-0 { 32 compatible = "gpio-leds"; 32 compatible = "gpio-leds"; 33 33 34 led-0 { 34 led-0 { 35 label = "tac:green:use 35 label = "tac:green:user1"; 36 gpios = <&gpiof 10 GPI 36 gpios = <&gpiof 10 GPIO_ACTIVE_HIGH>; 37 linux,default-trigger 37 linux,default-trigger = "heartbeat"; 38 }; 38 }; 39 39 40 led-1 { 40 led-1 { 41 label = "tac:green:use 41 label = "tac:green:user2"; 42 gpios = <&gpiog 7 GPIO 42 gpios = <&gpiog 7 GPIO_ACTIVE_HIGH>; 43 }; 43 }; 44 44 45 led-2 { 45 led-2 { 46 label = "tac:green:sta 46 label = "tac:green:statusdut"; 47 gpios = <&gpioa 13 GPI 47 gpios = <&gpioa 13 GPIO_ACTIVE_LOW>; 48 }; 48 }; 49 49 50 /* led-3 and led-4 are interna 50 /* led-3 and led-4 are internally connected antiparallel to one 51 * another inside the ethernet 51 * another inside the ethernet jack like this: 52 * GPIOA14 ---+---|led-3|>--+- 52 * GPIOA14 ---+---|led-3|>--+--- GPIOD15 53 * +--<|led-4|---+ 53 * +--<|led-4|---+ 54 * E.g. only one of the LEDs c 54 * E.g. only one of the LEDs can be illuminated at a time while 55 * the other output must be dr 55 * the other output must be driven low. 56 * This should likely be imple 56 * This should likely be implemented using a multi color LED 57 * driver for antiparallel LED 57 * driver for antiparallel LEDs. 58 */ 58 */ 59 led-3 { 59 led-3 { 60 label = "tac:green:sta 60 label = "tac:green:statuslab"; 61 gpios = <&gpioa 14 GPI 61 gpios = <&gpioa 14 GPIO_ACTIVE_HIGH>; 62 }; 62 }; 63 63 64 led-4 { 64 led-4 { 65 label = "tac:orange:st 65 label = "tac:orange:statuslab"; 66 gpios = <&gpiod 15 GPI 66 gpios = <&gpiod 15 GPIO_ACTIVE_HIGH>; 67 }; 67 }; 68 }; 68 }; 69 69 70 gpio-keys { 70 gpio-keys { 71 compatible = "gpio-keys"; 71 compatible = "gpio-keys"; 72 72 73 button-lower { 73 button-lower { 74 label = "USER_BTN2"; 74 label = "USER_BTN2"; 75 linux,code = <KEY_ESC> 75 linux,code = <KEY_ESC>; 76 gpios = <&gpioe 7 (GPI 76 gpios = <&gpioe 7 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; 77 }; 77 }; 78 78 79 button-upper { 79 button-upper { 80 label = "USER_BTN"; 80 label = "USER_BTN"; 81 linux,code = <KEY_HOME 81 linux,code = <KEY_HOME>; 82 gpios = <&gpioi 11 (GP 82 gpios = <&gpioi 11 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; 83 }; 83 }; 84 }; 84 }; 85 85 86 /* supplied by either barrel connector 86 /* supplied by either barrel connector or PoE */ 87 reg_12v: regulator-12v { 87 reg_12v: regulator-12v { 88 compatible = "regulator-fixed" 88 compatible = "regulator-fixed"; 89 regulator-name = "12V"; 89 regulator-name = "12V"; 90 regulator-min-microvolt = <120 90 regulator-min-microvolt = <12000000>; 91 regulator-max-microvolt = <120 91 regulator-max-microvolt = <12000000>; 92 regulator-always-on; 92 regulator-always-on; 93 }; 93 }; 94 94 95 reg_5v: regulator-5v { 95 reg_5v: regulator-5v { 96 compatible = "regulator-fixed" 96 compatible = "regulator-fixed"; 97 regulator-name = "5V"; 97 regulator-name = "5V"; 98 regulator-min-microvolt = <500 98 regulator-min-microvolt = <5000000>; 99 regulator-max-microvolt = <500 99 regulator-max-microvolt = <5000000>; 100 regulator-always-on; 100 regulator-always-on; 101 vin-supply = <®_12v>; 101 vin-supply = <®_12v>; 102 }; 102 }; 103 103 104 reg_1v2: regulator-1v2 { 104 reg_1v2: regulator-1v2 { 105 compatible = "regulator-fixed" 105 compatible = "regulator-fixed"; 106 regulator-name = "1V2"; 106 regulator-name = "1V2"; 107 regulator-min-microvolt = <120 107 regulator-min-microvolt = <1200000>; 108 regulator-max-microvolt = <120 108 regulator-max-microvolt = <1200000>; 109 regulator-always-on; 109 regulator-always-on; 110 vin-supply = <®_5v>; 110 vin-supply = <®_5v>; 111 }; 111 }; 112 112 113 reg_pb_5v: regulator-pb-5v { 113 reg_pb_5v: regulator-pb-5v { 114 compatible = "regulator-fixed" 114 compatible = "regulator-fixed"; 115 regulator-name = "5V_POWERBOAR 115 regulator-name = "5V_POWERBOARD"; 116 regulator-min-microvolt = <500 116 regulator-min-microvolt = <5000000>; 117 regulator-max-microvolt = <500 117 regulator-max-microvolt = <5000000>; 118 regulator-always-on; 118 regulator-always-on; 119 vin-supply = <®_5v>; 119 vin-supply = <®_5v>; 120 }; 120 }; 121 121 122 reg_pb_3v3: regulator-pb-3v3 { 122 reg_pb_3v3: regulator-pb-3v3 { 123 compatible = "regulator-fixed" 123 compatible = "regulator-fixed"; 124 regulator-name = "3V3_POWERBOA 124 regulator-name = "3V3_POWERBOARD"; 125 regulator-min-microvolt = <330 125 regulator-min-microvolt = <3300000>; 126 regulator-max-microvolt = <330 126 regulator-max-microvolt = <3300000>; 127 regulator-always-on; 127 regulator-always-on; 128 vin-supply = <®_pb_5v>; 128 vin-supply = <®_pb_5v>; 129 }; 129 }; 130 130 131 output-iobus-12v { 131 output-iobus-12v { 132 compatible = "regulator-output 132 compatible = "regulator-output"; 133 vout-supply = <®_iobus_12v> 133 vout-supply = <®_iobus_12v>; 134 }; 134 }; 135 135 136 output-vuart { 136 output-vuart { 137 compatible = "regulator-output 137 compatible = "regulator-output"; 138 vout-supply = <&v3v3_hdmi>; 138 vout-supply = <&v3v3_hdmi>; 139 }; 139 }; 140 }; 140 }; 141 141 142 baseboard_eeprom: &sip_eeprom { 142 baseboard_eeprom: &sip_eeprom { 143 }; 143 }; 144 144 145 &adc { 145 &adc { 146 pinctrl-names = "default"; 146 pinctrl-names = "default"; 147 pinctrl-0 = <&adc1_ain_pins_a>; 147 pinctrl-0 = <&adc1_ain_pins_a>; 148 vdd-supply = <&vdd>; 148 vdd-supply = <&vdd>; 149 vdda-supply = <&vdda>; 149 vdda-supply = <&vdda>; 150 vref-supply = <&vrefbuf>; 150 vref-supply = <&vrefbuf>; 151 status = "okay"; 151 status = "okay"; 152 152 153 adc1: adc@0 { 153 adc1: adc@0 { 154 st,adc-channels = <0 1 2 5 9 1 154 st,adc-channels = <0 1 2 5 9 10 13 15>; 155 st,min-sample-time-nsecs = <50 155 st,min-sample-time-nsecs = <5000>; 156 #address-cells = <1>; 156 #address-cells = <1>; 157 #size-cells = <0>; 157 #size-cells = <0>; 158 status = "okay"; 158 status = "okay"; 159 159 160 channel@0 { 160 channel@0 { 161 reg = <0>; 161 reg = <0>; 162 label = "HOST_2_CURR_F 162 label = "HOST_2_CURR_FB"; 163 }; 163 }; 164 164 165 channel@1 { 165 channel@1 { 166 reg = <1>; 166 reg = <1>; 167 label = "HOST_3_CURR_F 167 label = "HOST_3_CURR_FB"; 168 }; 168 }; 169 169 170 channel@2 { 170 channel@2 { 171 reg = <2>; 171 reg = <2>; 172 label = "OUT_0_FB"; 172 label = "OUT_0_FB"; 173 }; 173 }; 174 174 175 channel@5 { 175 channel@5 { 176 reg = <5>; 176 reg = <5>; 177 label = "IOBUS_CURR_FB 177 label = "IOBUS_CURR_FB"; 178 }; 178 }; 179 179 180 channel@9 { 180 channel@9 { 181 reg = <9>; 181 reg = <9>; 182 label = "IOBUS_VOLT_FB 182 label = "IOBUS_VOLT_FB"; 183 }; 183 }; 184 184 185 channel@10 { 185 channel@10 { 186 reg = <10>; 186 reg = <10>; 187 label = "OUT_1_FB"; 187 label = "OUT_1_FB"; 188 }; 188 }; 189 189 190 channel@13 { 190 channel@13 { 191 reg = <13>; 191 reg = <13>; 192 label = "HOST_CURR_FB" 192 label = "HOST_CURR_FB"; 193 }; 193 }; 194 194 195 channel@15 { 195 channel@15 { 196 reg = <15>; 196 reg = <15>; 197 label = "HOST_1_CURR_F 197 label = "HOST_1_CURR_FB"; 198 }; 198 }; 199 }; 199 }; 200 200 201 adc2: adc@100 { 201 adc2: adc@100 { 202 st,adc-channels = <12>; 202 st,adc-channels = <12>; 203 st,min-sample-time-nsecs = <50 203 st,min-sample-time-nsecs = <500000>; 204 #address-cells = <1>; 204 #address-cells = <1>; 205 #size-cells = <0>; 205 #size-cells = <0>; 206 status = "okay"; 206 status = "okay"; 207 207 208 channel@12 { 208 channel@12 { 209 reg = <12>; 209 reg = <12>; 210 label = "TEMP_INTERNAL 210 label = "TEMP_INTERNAL"; 211 }; 211 }; 212 }; 212 }; 213 }; 213 }; 214 214 215 &crc1 { 215 &crc1 { 216 status = "okay"; 216 status = "okay"; 217 }; 217 }; 218 218 219 &cryp1 { 219 &cryp1 { 220 status = "okay"; 220 status = "okay"; 221 }; 221 }; 222 222 223 &dts { 223 &dts { 224 status = "okay"; 224 status = "okay"; 225 }; 225 }; 226 226 227 ðernet0 { 227 ðernet0 { 228 assigned-clocks = <&rcc ETHCK_K>, <&rc 228 assigned-clocks = <&rcc ETHCK_K>, <&rcc PLL4_P>; 229 assigned-clock-parents = <&rcc PLL4_P> 229 assigned-clock-parents = <&rcc PLL4_P>; 230 assigned-clock-rates = <125000000>; /* 230 assigned-clock-rates = <125000000>; /* Clock PLL4 to 750Mhz in ATF */ 231 231 232 pinctrl-names = "default", "sleep"; 232 pinctrl-names = "default", "sleep"; 233 pinctrl-0 = <ðernet0_rgmii_pins_e>; 233 pinctrl-0 = <ðernet0_rgmii_pins_e>; 234 pinctrl-1 = <ðernet0_rgmii_sleep_pi 234 pinctrl-1 = <ðernet0_rgmii_sleep_pins_e>; 235 235 236 st,eth-clk-sel; 236 st,eth-clk-sel; 237 phy-mode = "rgmii-id"; 237 phy-mode = "rgmii-id"; 238 238 239 status = "okay"; 239 status = "okay"; 240 240 241 fixed-link { 241 fixed-link { 242 speed = <1000>; 242 speed = <1000>; 243 full-duplex; 243 full-duplex; 244 }; 244 }; 245 }; 245 }; 246 246 247 ðernet0_rgmii_pins_e { 247 ðernet0_rgmii_pins_e { 248 pins1 { 248 pins1 { 249 /* Reduce EMI emission by redu 249 /* Reduce EMI emission by reducing RGMII drive strength */ 250 slew-rate = <1>; 250 slew-rate = <1>; 251 }; 251 }; 252 }; 252 }; 253 253 254 &gpiob { 254 &gpiob { 255 gpio-line-names = "", "", "", "", "", 255 gpio-line-names = "", "", "", "", "", /* 0 */ 256 "", "USB_RESET", "", "", "", 256 "", "USB_RESET", "", "", "", /* 5 */ 257 "", "", "", "", "", 257 "", "", "", "", "", /* 10 */ 258 ""; 258 ""; /* 15 */ 259 }; 259 }; 260 260 261 &gpiod { 261 &gpiod { 262 gpio-line-names = "", "", "", "", "TP3 262 gpio-line-names = "", "", "", "", "TP38", /* 0 */ 263 "TP39", "", "", "TP41", "TP42", 263 "TP39", "", "", "TP41", "TP42", /* 5 */ 264 "OLED_DC", "", "", "ETH_CS", "", 264 "OLED_DC", "", "", "ETH_CS", "", /* 10 */ 265 "ETH_LAB_LEDRN"; 265 "ETH_LAB_LEDRN"; /* 15 */ 266 }; 266 }; 267 267 268 &gpioe { 268 &gpioe { 269 gpio-line-names = "TP35", "", "", "", 269 gpio-line-names = "TP35", "", "", "", "CAN_1_120R", /* 0 */ 270 "", "", "USER_BTN2", "TP48", "UART_TX_ 270 "", "", "USER_BTN2", "TP48", "UART_TX_EN", /* 5 */ 271 "UART_RX_EN", "TP24", "", "TP25", "TP2 271 "UART_RX_EN", "TP24", "", "TP25", "TP26", /* 10 */ 272 "TP27"; 272 "TP27"; /* 15 */ 273 }; 273 }; 274 274 275 &gpiof { 275 &gpiof { 276 gpio-line-names = "TP36", "TP37", "", 276 gpio-line-names = "TP36", "TP37", "", "", "OLED_CS", /* 0 */ 277 "", "", "", "", "", 277 "", "", "", "", "", /* 5 */ 278 "USER_LED1", "", "STACK_CS0", "", "", 278 "USER_LED1", "", "STACK_CS0", "", "", /* 10 */ 279 ""; 279 ""; /* 15 */ 280 }; 280 }; 281 281 282 &gpiog { 282 &gpiog { 283 gpio-line-names = "ETH_RESET", "", "", 283 gpio-line-names = "ETH_RESET", "", "", "", "", /* 0 */ 284 "IOBUS_FLT_FB", "", "USER_LED2", "ETH1 284 "IOBUS_FLT_FB", "", "USER_LED2", "ETH1_PPS_A", "CAN_0_120R", /* 5 */ 285 "TP49", "", "", "", "", 285 "TP49", "", "", "", "", /* 10 */ 286 ""; 286 ""; /* 15 */ 287 }; 287 }; 288 288 289 &gpioh { 289 &gpioh { 290 gpio-line-names = "", "", "OUT_1", "OU 290 gpio-line-names = "", "", "OUT_1", "OUT_0", "OLED_RESET", /* 0 */ 291 "", "", "", "", "", 291 "", "", "", "", "", /* 5 */ 292 "ETH1_PPS_B", "ETH_GPIO2", "", "IOBUS_ 292 "ETH1_PPS_B", "ETH_GPIO2", "", "IOBUS_PWR_EN", "", /* 10 */ 293 "TP33"; 293 "TP33"; /* 15 */ 294 }; 294 }; 295 295 296 &gpioi { 296 &gpioi { 297 gpio-line-names = "TIM_RTS", "", "", " 297 gpio-line-names = "TIM_RTS", "", "", "", "DEVICE_DATA_EN", /* 0 */ 298 "", "", "", "ETH_WOL", "TP43", 298 "", "", "", "ETH_WOL", "TP43", /* 5 */ 299 "", "USER_BTN"; 299 "", "USER_BTN"; /* 10 */ 300 }; 300 }; 301 301 302 &gpioz { 302 &gpioz { 303 gpio-line-names = "HWID0", "HWID1", "H 303 gpio-line-names = "HWID0", "HWID1", "HWID2", "HWID3", "", /* 0 */ 304 "", "HWID4", "HWID5"; 304 "", "HWID4", "HWID5"; /* 5 */ 305 }; 305 }; 306 306 307 &hash1 { 307 &hash1 { 308 status = "okay"; 308 status = "okay"; 309 }; 309 }; 310 310 311 &i2c1 { 311 &i2c1 { 312 pinctrl-names = "default", "sleep"; 312 pinctrl-names = "default", "sleep"; 313 pinctrl-0 = <&i2c1_pins_b>; 313 pinctrl-0 = <&i2c1_pins_b>; 314 pinctrl-1 = <&i2c1_sleep_pins_b>; 314 pinctrl-1 = <&i2c1_sleep_pins_b>; 315 status = "okay"; 315 status = "okay"; 316 316 317 powerboard_eeprom: eeprom@50 { 317 powerboard_eeprom: eeprom@50 { 318 compatible = "atmel,24c02"; 318 compatible = "atmel,24c02"; 319 reg = <0x50>; 319 reg = <0x50>; 320 vcc-supply = <&v3v3>; 320 vcc-supply = <&v3v3>; 321 }; 321 }; 322 322 323 temperature-sensor@48 { 323 temperature-sensor@48 { 324 compatible = "national,lm75a"; 324 compatible = "national,lm75a"; 325 reg = <0x48>; 325 reg = <0x48>; 326 status = "disabled"; 326 status = "disabled"; 327 }; 327 }; 328 }; 328 }; 329 329 330 &i2c5 { 330 &i2c5 { 331 /delete-property/dmas; 331 /delete-property/dmas; 332 /delete-property/dma-names; 332 /delete-property/dma-names; 333 333 334 pinctrl-names = "default", "sleep"; 334 pinctrl-names = "default", "sleep"; 335 pinctrl-0 = <&i2c5_pins_b>; 335 pinctrl-0 = <&i2c5_pins_b>; 336 pinctrl-1 = <&i2c5_sleep_pins_b>; 336 pinctrl-1 = <&i2c5_sleep_pins_b>; 337 337 338 status = "okay"; 338 status = "okay"; 339 339 340 usbhub: usbhub@2c { 340 usbhub: usbhub@2c { 341 compatible ="microchip,usb2514 341 compatible ="microchip,usb2514b"; 342 reg = <0x2c>; 342 reg = <0x2c>; 343 vdd-supply = <&v3v3>; 343 vdd-supply = <&v3v3>; 344 reset-gpios = <&gpiob 6 GPIO_A 344 reset-gpios = <&gpiob 6 GPIO_ACTIVE_LOW>; 345 }; 345 }; 346 }; 346 }; 347 347 348 &iwdg2 { 348 &iwdg2 { 349 timeout-sec = <8>; 349 timeout-sec = <8>; 350 status = "okay"; 350 status = "okay"; 351 }; 351 }; 352 352 353 &m_can1 { 353 &m_can1 { 354 pinctrl-names = "default", "sleep"; 354 pinctrl-names = "default", "sleep"; 355 pinctrl-0 = <&m_can1_pins_b>; 355 pinctrl-0 = <&m_can1_pins_b>; 356 pinctrl-1 = <&m_can1_sleep_pins_b>; 356 pinctrl-1 = <&m_can1_sleep_pins_b>; 357 status = "okay"; 357 status = "okay"; 358 }; 358 }; 359 359 360 &m_can2 { 360 &m_can2 { 361 pinctrl-names = "default", "sleep"; 361 pinctrl-names = "default", "sleep"; 362 pinctrl-0 = <&m_can2_pins_a>; 362 pinctrl-0 = <&m_can2_pins_a>; 363 pinctrl-1 = <&m_can2_sleep_pins_a>; 363 pinctrl-1 = <&m_can2_sleep_pins_a>; 364 status = "okay"; 364 status = "okay"; 365 }; 365 }; 366 366 367 &pmic { 367 &pmic { 368 regulators { 368 regulators { 369 buck1-supply = <®_5v>; 369 buck1-supply = <®_5v>; /* VIN */ 370 buck2-supply = <®_5v>; 370 buck2-supply = <®_5v>; /* VIN */ 371 buck3-supply = <®_5v>; 371 buck3-supply = <®_5v>; /* VIN */ 372 buck4-supply = <®_5v>; 372 buck4-supply = <®_5v>; /* VIN */ 373 ldo2-supply = <®_5v>; 373 ldo2-supply = <®_5v>; /* PMIC_LDO25IN */ 374 ldo4-supply = <®_5v>; 374 ldo4-supply = <®_5v>; /* VIN */ 375 ldo5-supply = <®_5v>; 375 ldo5-supply = <®_5v>; /* PMIC_LDO25IN */ 376 vref_ddr-supply = <®_5v>; 376 vref_ddr-supply = <®_5v>; /* VIN */ 377 boost-supply = <®_5v>; 377 boost-supply = <®_5v>; /* PMIC_BSTIN */ 378 pwr_sw2-supply = <&bst_out>; 378 pwr_sw2-supply = <&bst_out>; /* PMIC_SWIN */ 379 }; 379 }; 380 }; 380 }; 381 381 382 &rtc { 382 &rtc { 383 status = "okay"; 383 status = "okay"; 384 }; 384 }; 385 385 386 &sdmmc2 { 386 &sdmmc2 { 387 pinctrl-names = "default", "opendrain" 387 pinctrl-names = "default", "opendrain", "sleep"; 388 pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2 388 pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_b>; 389 pinctrl-1 = <&sdmmc2_b4_od_pins_a &sdm 389 pinctrl-1 = <&sdmmc2_b4_od_pins_a &sdmmc2_d47_pins_b>; 390 pinctrl-2 = <&sdmmc2_b4_sleep_pins_a & 390 pinctrl-2 = <&sdmmc2_b4_sleep_pins_a &sdmmc2_d47_sleep_pins_b>; 391 vmmc-supply = <&v3v3>; 391 vmmc-supply = <&v3v3>; 392 392 393 bus-width = <8>; 393 bus-width = <8>; 394 mmc-ddr-3_3v; 394 mmc-ddr-3_3v; 395 no-1-8-v; 395 no-1-8-v; 396 non-removable; 396 non-removable; 397 no-sd; 397 no-sd; 398 no-sdio; 398 no-sdio; 399 st,neg-edge; 399 st,neg-edge; 400 400 401 status = "okay"; 401 status = "okay"; 402 }; 402 }; 403 403 404 &spi2 { 404 &spi2 { 405 pinctrl-names = "default"; 405 pinctrl-names = "default"; 406 pinctrl-0 = <&spi2_pins_c>; 406 pinctrl-0 = <&spi2_pins_c>; 407 cs-gpios = <&gpiof 12 (GPIO_ACTIVE_LOW 407 cs-gpios = <&gpiof 12 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>; 408 status = "okay"; 408 status = "okay"; 409 }; 409 }; 410 410 411 &spi4 { 411 &spi4 { 412 pinctrl-names = "default"; 412 pinctrl-names = "default"; 413 pinctrl-0 = <&spi4_pins_a>; 413 pinctrl-0 = <&spi4_pins_a>; 414 cs-gpios = <&gpiof 4 GPIO_ACTIVE_LOW>; 414 cs-gpios = <&gpiof 4 GPIO_ACTIVE_LOW>; 415 status = "okay"; 415 status = "okay"; 416 416 417 lcd: display@0 { 417 lcd: display@0 { 418 compatible = "shineworld,lh133 418 compatible = "shineworld,lh133k", "panel-mipi-dbi-spi"; 419 reg = <0>; 419 reg = <0>; 420 power-supply = <&v3v3>; 420 power-supply = <&v3v3>; 421 io-supply = <&v3v3>; 421 io-supply = <&v3v3>; 422 backlight = <&backlight>; 422 backlight = <&backlight>; 423 dc-gpios = <&gpiod 10 GPIO_ACT 423 dc-gpios = <&gpiod 10 GPIO_ACTIVE_HIGH>; 424 reset-gpios = <&gpioh 4 GPIO_A 424 reset-gpios = <&gpioh 4 GPIO_ACTIVE_HIGH>; 425 spi-3wire; 425 spi-3wire; 426 spi-max-frequency = <32000000> 426 spi-max-frequency = <32000000>; 427 427 428 width-mm = <23>; 428 width-mm = <23>; 429 height-mm = <23>; 429 height-mm = <23>; 430 rotation = <180>; 430 rotation = <180>; 431 431 432 panel-timing { 432 panel-timing { 433 hactive = <240>; 433 hactive = <240>; 434 vactive = <240>; 434 vactive = <240>; 435 hback-porch = <0>; 435 hback-porch = <0>; 436 vback-porch = <0>; 436 vback-porch = <0>; 437 437 438 clock-frequency = <0>; 438 clock-frequency = <0>; 439 hfront-porch = <0>; 439 hfront-porch = <0>; 440 hsync-len = <0>; 440 hsync-len = <0>; 441 vfront-porch = <0>; 441 vfront-porch = <0>; 442 vsync-len = <0>; 442 vsync-len = <0>; 443 }; 443 }; 444 }; 444 }; 445 }; 445 }; 446 446 447 &spi5 { 447 &spi5 { 448 pinctrl-names = "default"; 448 pinctrl-names = "default"; 449 pinctrl-0 = <&spi5_pins_a>; 449 pinctrl-0 = <&spi5_pins_a>; 450 450 451 /* spare dmas for other usage */ 451 /* spare dmas for other usage */ 452 /delete-property/dmas; 452 /delete-property/dmas; 453 /delete-property/dma-names; 453 /delete-property/dma-names; 454 454 455 cs-gpios = <&gpiod 13 GPIO_ACTIVE_LOW> 455 cs-gpios = <&gpiod 13 GPIO_ACTIVE_LOW>; 456 456 457 status = "okay"; 457 status = "okay"; 458 458 459 switch: switch@0 { 459 switch: switch@0 { 460 compatible = "microchip,ksz956 460 compatible = "microchip,ksz9563"; 461 reg = <0>; 461 reg = <0>; 462 462 463 reset-gpios = <&gpiog 0 GPIO_A 463 reset-gpios = <&gpiog 0 GPIO_ACTIVE_LOW>; 464 spi-max-frequency = <44000000> 464 spi-max-frequency = <44000000>; 465 465 466 interrupt-parent = <&gpioa>; 466 interrupt-parent = <&gpioa>; 467 interrupts = <6 IRQ_TYPE_EDGE_ 467 interrupts = <6 IRQ_TYPE_EDGE_RISING>; 468 468 469 /* Reduce RGMII EMI emissions 469 /* Reduce RGMII EMI emissions by reducing drive strength */ 470 microchip,hi-drive-strength-mi 470 microchip,hi-drive-strength-microamp = <2000>; 471 microchip,lo-drive-strength-mi 471 microchip,lo-drive-strength-microamp = <8000>; 472 472 473 ports { 473 ports { 474 #address-cells = <1>; 474 #address-cells = <1>; 475 #size-cells = <0>; 475 #size-cells = <0>; 476 port_dut: port@0 { 476 port_dut: port@0 { 477 reg = <0>; 477 reg = <0>; 478 label = "dut"; 478 label = "dut"; 479 }; 479 }; 480 480 481 port_uplink: port@1 { 481 port_uplink: port@1 { 482 reg = <1>; 482 reg = <1>; 483 label = "uplin 483 label = "uplink"; 484 }; 484 }; 485 485 486 port_cpu: port@2 { 486 port_cpu: port@2 { 487 reg = <2>; 487 reg = <2>; 488 label = "cpu"; 488 label = "cpu"; 489 489 490 ethernet = <&e 490 ethernet = <ðernet0>; 491 491 492 phy-mode = "rg 492 phy-mode = "rgmii-id"; 493 rx-internal-de 493 rx-internal-delay-ps = <2000>; 494 tx-internal-de 494 tx-internal-delay-ps = <2000>; 495 495 496 fixed-link { 496 fixed-link { 497 speed 497 speed = <1000>; 498 full-d 498 full-duplex; 499 }; 499 }; 500 }; 500 }; 501 }; 501 }; 502 }; 502 }; 503 }; 503 }; 504 504 505 &timers2 { 505 &timers2 { 506 /* spare dmas for other usage */ 506 /* spare dmas for other usage */ 507 /delete-property/dmas; 507 /delete-property/dmas; 508 /delete-property/dma-names; 508 /delete-property/dma-names; 509 509 510 status = "okay"; 510 status = "okay"; 511 511 512 timer@1 { 512 timer@1 { 513 status = "okay"; 513 status = "okay"; 514 }; 514 }; 515 }; 515 }; 516 516 517 &timers3 { 517 &timers3 { 518 /* spare dmas for other usage */ 518 /* spare dmas for other usage */ 519 /delete-property/dmas; 519 /delete-property/dmas; 520 /delete-property/dma-names; 520 /delete-property/dma-names; 521 521 522 status = "okay"; 522 status = "okay"; 523 523 524 timer@2 { 524 timer@2 { 525 status = "okay"; 525 status = "okay"; 526 }; 526 }; 527 }; 527 }; 528 528 529 &timers4 { 529 &timers4 { 530 /* spare dmas for other usage */ 530 /* spare dmas for other usage */ 531 /delete-property/dmas; 531 /delete-property/dmas; 532 /delete-property/dma-names; 532 /delete-property/dma-names; 533 533 534 status = "okay"; 534 status = "okay"; 535 535 536 timer@3 { 536 timer@3 { 537 status = "okay"; 537 status = "okay"; 538 }; 538 }; 539 }; 539 }; 540 540 541 &uart4 { 541 &uart4 { 542 label = "debug"; 542 label = "debug"; 543 543 544 pinctrl-names = "default"; 544 pinctrl-names = "default"; 545 pinctrl-0 = <&uart4_pins_a>; 545 pinctrl-0 = <&uart4_pins_a>; 546 546 547 /* spare dmas for other usage */ 547 /* spare dmas for other usage */ 548 /delete-property/dmas; 548 /delete-property/dmas; 549 /delete-property/dma-names; 549 /delete-property/dma-names; 550 550 551 status = "okay"; 551 status = "okay"; 552 }; 552 }; 553 553 554 &usart3 { 554 &usart3 { 555 label = "dut"; 555 label = "dut"; 556 uart-has-rtscts; 556 uart-has-rtscts; 557 557 558 pinctrl-names = "default"; 558 pinctrl-names = "default"; 559 pinctrl-0 = <&usart3_pins_f>; 559 pinctrl-0 = <&usart3_pins_f>; 560 560 561 /* spare dmas for other usage */ 561 /* spare dmas for other usage */ 562 /delete-property/dmas; 562 /delete-property/dmas; 563 /delete-property/dma-names; 563 /delete-property/dma-names; 564 564 565 status = "okay"; 565 status = "okay"; 566 }; 566 }; 567 567 568 &usbh_ehci { 568 &usbh_ehci { 569 status = "okay"; 569 status = "okay"; 570 }; 570 }; 571 571 572 &usbotg_hs { 572 &usbotg_hs { 573 phys = <&usbphyc_port1 0>; 573 phys = <&usbphyc_port1 0>; 574 phy-names = "usb2-phy"; 574 phy-names = "usb2-phy"; 575 575 576 vusb_d-supply = <&vdd_usb>; 576 vusb_d-supply = <&vdd_usb>; 577 vusb_a-supply = <®18>; 577 vusb_a-supply = <®18>; 578 578 579 dr_mode = "peripheral"; 579 dr_mode = "peripheral"; 580 580 581 status = "okay"; 581 status = "okay"; 582 }; 582 }; 583 583 584 &usbphyc { 584 &usbphyc { 585 status = "okay"; 585 status = "okay"; 586 }; 586 }; 587 587 588 &vrefbuf { 588 &vrefbuf { 589 regulator-min-microvolt = <2500000>; 589 regulator-min-microvolt = <2500000>; 590 regulator-max-microvolt = <2500000>; 590 regulator-max-microvolt = <2500000>; 591 vdda-supply = <&vdda>; 591 vdda-supply = <&vdda>; 592 592 593 status = "okay"; 593 status = "okay"; 594 }; 594 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.