~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/arm/boot/dts/st/stm32mp15xc-lxa-tac.dtsi

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

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

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php