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

TOMOYO Linux Cross Reference
Linux/arch/arm/boot/dts/st/stm32mp157c-phycore-stm32mp15-som.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 BSD-3-Clause)
  2 /*
  3  * Copyright (C) 2022-2023 Steffen Trumtrar <kernel@pengutronix.de>
  4  * Copyright (C) Phytec GmbH 2019-2020 - All Rights Reserved
  5  * Author: Dom VOVARD <dom.vovard@linrt.com>.
  6  */
  7 
  8 #include <dt-bindings/gpio/gpio.h>
  9 #include <dt-bindings/input/input.h>
 10 #include <dt-bindings/interrupt-controller/arm-gic.h>
 11 #include <dt-bindings/interrupt-controller/irq.h>
 12 #include <dt-bindings/leds/common.h>
 13 #include <dt-bindings/leds/leds-pca9532.h>
 14 #include <dt-bindings/mfd/st,stpmic1.h>
 15 #include <dt-bindings/net/ti-dp83867.h>
 16 #include "stm32mp15-pinctrl.dtsi"
 17 
 18 / {
 19         model = "PHYTEC phyCORE-STM32MP15 SOM";
 20         compatible = "phytec,phycore-stm32mp157c-som", "st,stm32mp157";
 21 
 22         aliases {
 23                 ethernet0 = &ethernet0;
 24                 rtc0 = &i2c4_rtc;
 25                 rtc1 = &rtc;
 26         };
 27 
 28         chosen {
 29                 stdout-path = "serial0:115200n8";
 30         };
 31 
 32         gpio-keys {
 33                 compatible = "gpio-keys";
 34 
 35                 key-home {
 36                         label = "Home";
 37                         gpios = <&gpioa 13 GPIO_ACTIVE_LOW>;
 38                         linux,code = <KEY_HOME>;
 39                 };
 40 
 41                 key-enter {
 42                         label = "Enter";
 43                         gpios = <&gpioa 14 GPIO_ACTIVE_LOW>;
 44                         linux,code = <KEY_ENTER>;
 45                 };
 46         };
 47 
 48         reserved-memory {
 49                 #address-cells = <1>;
 50                 #size-cells = <1>;
 51                 ranges;
 52 
 53                 retram: retram@38000000 {
 54                         compatible = "shared-dma-pool";
 55                         reg = <0x38000000 0x10000>;
 56                         no-map;
 57                 };
 58 
 59                 mcuram: mcuram@30000000 {
 60                         compatible = "shared-dma-pool";
 61                         reg = <0x30000000 0x40000>;
 62                         no-map;
 63                 };
 64 
 65                 mcuram2: mcuram2@10000000 {
 66                         compatible = "shared-dma-pool";
 67                         reg = <0x10000000 0x40000>;
 68                         no-map;
 69                 };
 70 
 71                 vdev0vring0: vdev0vring0@10040000 {
 72                         compatible = "shared-dma-pool";
 73                         reg = <0x10040000 0x1000>;
 74                         no-map;
 75                 };
 76 
 77                 vdev0vring1: vdev0vring1@10041000 {
 78                         compatible = "shared-dma-pool";
 79                         reg = <0x10041000 0x1000>;
 80                         no-map;
 81                 };
 82 
 83                 vdev0buffer: vdev0buffer@10042000 {
 84                         compatible = "shared-dma-pool";
 85                         reg = <0x10042000 0x4000>;
 86                         no-map;
 87                 };
 88         };
 89 
 90         sound {
 91                 compatible = "audio-graph-card";
 92                 label = "STM32MP1-PHYCORE";
 93                 routing =
 94                         "Playback", "MCLK", /* Set a route between "MCLK" and "playback" widgets */
 95                         "Capture", "MCLK";
 96                 dais = <&sai2b_port>,
 97                        <&sai2a_port>;
 98         };
 99 
100         regulator_vin: regulator {
101                 compatible = "regulator-fixed";
102                 regulator-name = "vin";
103                 regulator-min-microvolt = <5000000>;
104                 regulator-max-microvolt = <5000000>;
105                 regulator-always-on;
106         };
107 };
108 
109 &ethernet0 {
110         pinctrl-0 = <&ethernet0_rgmii_pins_d>;
111         pinctrl-1 = <&ethernet0_rgmii_sleep_pins_d>;
112         pinctrl-names = "default", "sleep";
113         phy-mode = "rgmii-id";
114         max-speed = <1000>;
115         phy-handle = <&phy0>;
116         st,eth-clk-sel;
117         status = "okay";
118 
119         mdio {
120                 #address-cells = <1>;
121                 #size-cells = <0>;
122                 compatible = "snps,dwmac-mdio";
123 
124                 phy0: ethernet-phy@1 {
125                         compatible = "ethernet-phy-ieee802.3-c22";
126                         reg = <1>;
127                         interrupt-parent = <&gpiog>;
128                         interrupts = <12 IRQ_TYPE_EDGE_FALLING>;
129                         ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
130                         ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
131                         ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
132                         ti,min-output-impedance;
133                         enet-phy-lane-no-swap;
134                         ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
135                 };
136         };
137 };
138 
139 &i2c1 {
140         pinctrl-names = "default", "sleep";
141         pinctrl-0 = <&i2c1_pins_b>;
142         pinctrl-1 = <&i2c1_sleep_pins_b>;
143         i2c-scl-rising-time-ns = <100>;
144         i2c-scl-falling-time-ns = <7>;
145         status = "okay";
146 
147         codec@18 {
148                 compatible = "ti,tlv320aic3007";
149                 reg = <0x18>;
150                 #sound-dai-cells = <0>;
151 
152                 ai3x-micbias-vg = <2>;
153 
154                 AVDD-supply = <&v3v3>;
155                 IOVDD-supply = <&v3v3>;
156                 DRVDD-supply = <&v3v3>;
157                 DVDD-supply = <&v1v8_audio>;
158 
159                 clocks = <&sai2b>;
160 
161                 port {
162                         #address-cells = <1>;
163                         #size-cells = <0>;
164 
165                         tlv320_tx_endpoint: endpoint@0 {
166                                 reg = <0>;
167                                 remote-endpoint = <&sai2b_endpoint>;
168                                 frame-master;
169                                 bitclock-master;
170                         };
171 
172                         tlv320_rx_endpoint: endpoint@1 {
173                                 reg = <1>;
174                                 remote-endpoint = <&sai2a_endpoint>;
175                                 frame-master;
176                                 bitclock-master;
177                         };
178                 };
179         };
180 
181         touch@44 {
182                 compatible = "st,stmpe811";
183                 reg = <0x44>;
184                 interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
185                 interrupt-parent = <&gpioi>;
186                 vio-supply = <&v3v3>;
187                 vcc-supply = <&v3v3>;
188 
189                 touchscreen {
190                         compatible = "st,stmpe-ts";
191                         st,sample-time = <4>;
192                         st,mod-12b = <1>;
193                         st,ref-sel = <0>;
194                         st,adc-freq = <1>;
195                         st,ave-ctrl = <1>;
196                         st,touch-det-delay = <2>;
197                         st,settling = <2>;
198                         st,fraction-z = <7>;
199                         st,i-drive = <1>;
200                 };
201         };
202 
203         leds@62 {
204                 compatible = "nxp,pca9533";
205                 reg = <0x62>;
206 
207                 led-0 {
208                         color = <LED_COLOR_ID_RED>;
209                         function = LED_FUNCTION_POWER;
210                         type = <PCA9532_TYPE_LED>;
211                 };
212 
213                 led-1 {
214                         color = <LED_COLOR_ID_GREEN>;
215                         function = LED_FUNCTION_POWER;
216                         type = <PCA9532_TYPE_LED>;
217                 };
218 
219                 led-2 {
220                         color = <LED_COLOR_ID_BLUE>;
221                         function = LED_FUNCTION_HEARTBEAT;
222                         type = <PCA9532_TYPE_LED>;
223                         linux,default-trigger = "heartbeat";
224                 };
225         };
226 };
227 
228 &i2c4 {
229         pinctrl-names = "default", "sleep";
230         pinctrl-0 = <&i2c4_pins_a>;
231         pinctrl-1 = <&i2c4_sleep_pins_a>;
232         i2c-scl-rising-time-ns = <185>;
233         i2c-scl-falling-time-ns = <20>;
234         status = "okay";
235 
236         pmic@33 {
237                 compatible = "st,stpmic1";
238                 reg = <0x33>;
239                 interrupts-extended = <&gpioa 0 IRQ_TYPE_EDGE_FALLING>;
240                 interrupt-controller;
241                 #interrupt-cells = <2>;
242 
243                 regulators {
244                         compatible = "st,stpmic1-regulators";
245                         buck1-supply = <&regulator_vin>;
246                         buck2-supply = <&regulator_vin>;
247                         buck3-supply = <&regulator_vin>;
248                         buck4-supply = <&regulator_vin>;
249                         ldo1-supply = <&v3v3>;
250                         ldo2-supply = <&v3v3>;
251                         ldo3-supply = <&vdd_ddr>;
252                         ldo4-supply = <&regulator_vin>;
253                         ldo5-supply = <&v3v3>;
254                         ldo6-supply = <&v3v3>;
255                         boost-supply = <&regulator_vin>;
256                         pwr_sw1-supply = <&bst_out>;
257                         pwr_sw2-supply = <&bst_out>;
258 
259                         vddcore: buck1 {
260                                 regulator-name = "vddcore";
261                                 regulator-min-microvolt = <1200000>;
262                                 regulator-max-microvolt = <1350000>;
263                                 regulator-always-on;
264                                 regulator-initial-mode = <0>;
265                         };
266 
267                         vdd_ddr: buck2 {
268                                 regulator-name = "vdd_ddr";
269                                 regulator-min-microvolt = <1350000>;
270                                 regulator-max-microvolt = <1350000>;
271                                 regulator-always-on;
272                                 regulator-initial-mode = <0>;
273                         };
274 
275                         vdd: buck3 {
276                                 regulator-name = "vdd";
277                                 regulator-min-microvolt = <3300000>;
278                                 regulator-max-microvolt = <3300000>;
279                                 regulator-always-on;
280                                 st,mask-reset;
281                                 regulator-initial-mode = <0>;
282                         };
283 
284                         v3v3: buck4 {
285                                 regulator-name = "v3v3";
286                                 regulator-min-microvolt = <3300000>;
287                                 regulator-max-microvolt = <3300000>;
288                                 regulator-always-on;
289                                 regulator-initial-mode = <0>;
290                         };
291 
292                         v1v8_audio: ldo1 {
293                                 regulator-name = "v1v8_audio";
294                                 regulator-min-microvolt = <1800000>;
295                                 regulator-max-microvolt = <1800000>;
296                                 regulator-always-on;
297                                 interrupts = <IT_CURLIM_LDO1 0>;
298 
299                         };
300 
301                         vdd_eth_2v5: ldo2 {
302                                 regulator-name = "dd_eth_2v5";
303                                 regulator-min-microvolt = <2500000>;
304                                 regulator-max-microvolt = <2500000>;
305                                 regulator-always-on;
306                                 interrupts = <IT_CURLIM_LDO2 0>;
307 
308                         };
309 
310                         vtt_ddr: ldo3 {
311                                 regulator-name = "vtt_ddr";
312                                 regulator-min-microvolt = <500000>;
313                                 regulator-max-microvolt = <750000>;
314                                 regulator-always-on;
315                                 regulator-over-current-protection;
316                         };
317 
318                         vdd_usb: ldo4 {
319                                 regulator-name = "vdd_usb";
320                                 interrupts = <IT_CURLIM_LDO4 0>;
321                         };
322 
323                         vdda: ldo5 {
324                                 regulator-name = "vdda";
325                                 regulator-min-microvolt = <2900000>;
326                                 regulator-max-microvolt = <2900000>;
327                                 interrupts = <IT_CURLIM_LDO5 0>;
328                                 regulator-boot-on;
329                         };
330 
331                         vdd_eth_1v0: ldo6 {
332                                 regulator-name = "vdd_eth_1v0";
333                                 regulator-min-microvolt = <1000000>;
334                                 regulator-max-microvolt = <1000000>;
335                                 regulator-always-on;
336                                 interrupts = <IT_CURLIM_LDO6 0>;
337 
338                         };
339 
340                         vref_ddr: vref_ddr {
341                                 regulator-name = "vref_ddr";
342                                 regulator-always-on;
343                         };
344 
345                         bst_out: boost {
346                                 regulator-name = "bst_out";
347                                 interrupts = <IT_OCP_BOOST 0>;
348                         };
349 
350                         vbus_otg: pwr_sw1 {
351                                 regulator-name = "vbus_otg";
352                                 interrupts = <IT_OCP_OTG 0>;
353                                 regulator-active-discharge = <1>;
354                         };
355 
356                         vbus_sw: pwr_sw2 {
357                                 regulator-name = "vbus_sw";
358                                 interrupts = <IT_OCP_SWOUT 0>;
359                                 regulator-active-discharge = <1>;
360                         };
361                 };
362 
363                 onkey {
364                         compatible = "st,stpmic1-onkey";
365                         interrupts = <IT_PONKEY_F 0>,
366                                      <IT_PONKEY_R 0>;
367                         interrupt-names = "onkey-falling",
368                                           "onkey-rising";
369                         power-off-time-sec = <10>;
370                 };
371 
372                 watchdog {
373                         compatible = "st,stpmic1-wdt";
374                 };
375         };
376 
377         i2c4_eeprom: eeprom@50 {
378                 compatible = "microchip,24c32",
379                              "atmel,24c32";
380                 reg = <0x50>;
381         };
382 
383         i2c4_rtc: rtc@52 {
384                 compatible = "microcrystal,rv3028";
385                 reg = <0x52>;
386         };
387 };
388 
389 &ipcc {
390         status = "okay";
391 };
392 
393 &iwdg2 {
394         timeout-sec = <32>;
395         status = "okay";
396 };
397 
398 &m_can2 {
399         pinctrl-names = "default", "sleep";
400         pinctrl-0 = <&m_can2_pins_a>;
401         pinctrl-1 = <&m_can2_sleep_pins_a>;
402         status = "okay";
403 };
404 
405 &m4_rproc {
406         memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>,
407                         <&vdev0vring1>, <&vdev0buffer>;
408         mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>, <&ipcc 3>;
409         mbox-names = "vq0", "vq1", "shutdown", "detach";
410         interrupt-parent = <&exti>;
411         interrupts = <68 1>;
412         status = "okay";
413 };
414 
415 &pwr_regulators {
416         vdd-supply = <&vdd>;
417         vdd_3v3_usbfs-supply = <&vdd_usb>;
418 };
419 
420 &qspi {
421         pinctrl-names = "default", "sleep";
422         pinctrl-0 = <&qspi_clk_pins_a &qspi_bk1_pins_a>;
423         pinctrl-1 = <&qspi_clk_sleep_pins_a &qspi_bk1_sleep_pins_a>;
424         status = "okay";
425 
426         flash0: flash@0 {
427                 compatible = "winbond,w25q128", "jedec,spi-nor";
428                 reg = <0>;
429                 spi-rx-bus-width = <4>;
430                 spi-max-frequency = <50000000>;
431                 m25p,fast-read;
432                 #address-cells = <1>;
433                 #size-cells = <1>;
434         };
435 };
436 
437 &rng1 {
438         status = "okay";
439 };
440 
441 &rtc {
442         status = "okay";
443 };
444 
445 &sai2 {
446         clocks = <&rcc SAI2>, <&rcc PLL3_Q>, <&rcc PLL3_R>;
447         clock-names = "pclk", "x8k", "x11k";
448         pinctrl-names = "default", "sleep";
449         pinctrl-0 = <&sai2a_pins_b>, <&sai2b_pins_d>;
450         pinctrl-1 = <&sai2a_sleep_pins_b>, <&sai2b_sleep_pins_d>;
451         status = "okay";
452 };
453 
454 &sai2a {
455         dma-names = "rx";
456         st,sync = <&sai2b 2>;
457         clocks = <&rcc SAI2_K>, <&sai2b>;
458         clock-names = "sai_ck", "MCLK";
459         #clock-cells = <0>;
460 
461         sai2a_port: port {
462                 sai2a_endpoint: endpoint {
463                         remote-endpoint = <&tlv320_rx_endpoint>;
464                         mclk-fs = <256>;
465                         dai-tdm-slot-num = <2>;
466                         dai-tdm-slot-width = <16>;
467                 };
468         };
469 };
470 
471 &sai2b {
472         dma-names = "tx";
473         #clock-cells = <0>;
474 
475         sai2b_port: port {
476                 sai2b_endpoint: endpoint {
477                         remote-endpoint = <&tlv320_tx_endpoint>;
478                         mclk-fs = <256>;
479                         dai-tdm-slot-num = <2>;
480                         dai-tdm-slot-width = <16>;
481                 };
482         };
483 };
484 
485 &sdmmc1 {
486         pinctrl-names = "default", "opendrain", "sleep";
487         pinctrl-0 = <&sdmmc1_b4_pins_b>;
488         pinctrl-1 = <&sdmmc1_b4_od_pins_b>;
489         pinctrl-2 = <&sdmmc1_b4_sleep_pins_b>;
490         cd-gpios = <&gpiof 3 GPIO_ACTIVE_LOW>;
491         disable-wp;
492         st,neg-edge;
493         bus-width = <4>;
494         vmmc-supply = <&v3v3>;
495         status = "okay";
496 };
497 
498 &sdmmc2 {
499         pinctrl-names = "default", "opendrain", "sleep";
500         pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_e>;
501         pinctrl-1 = <&sdmmc2_b4_od_pins_a &sdmmc2_d47_pins_e>;
502         pinctrl-2 = <&sdmmc2_b4_sleep_pins_a &sdmmc2_d47_sleep_pins_e>;
503         non-removable;
504         no-sd;
505         no-sdio;
506         st,neg-edge;
507         bus-width = <8>;
508         vmmc-supply = <&v3v3>;
509         vqmmc-supply = <&v3v3>;
510         mmc-ddr-3_3v;
511 };
512 
513 &spi1 {
514         pinctrl-names = "default", "sleep";
515         pinctrl-0 = <&spi1_pins_a>;
516         pinctrl-1 = <&spi1_sleep_pins_a>;
517         cs-gpios = <&gpioz 3 0>;
518         status = "okay";
519 };
520 
521 &uart4 {
522         pinctrl-names = "default", "sleep", "idle";
523         pinctrl-0 = <&uart4_pins_a>;
524         pinctrl-1 = <&uart4_sleep_pins_a>;
525         pinctrl-2 = <&uart4_idle_pins_a>;
526         pinctrl-3 = <&uart4_pins_a>;
527         /delete-property/dmas;
528         /delete-property/dma-names;
529         status = "okay";
530 };
531 
532 &usart1 {
533         pinctrl-names = "default", "sleep", "idle";
534         pinctrl-0 = <&usart1_pins_b &usart1_pins_a>;
535         pinctrl-1 = <&usart1_sleep_pins_b &usart1_sleep_pins_a>;
536         pinctrl-2 = <&usart1_idle_pins_b &usart1_idle_pins_a>;
537         uart-has-rtscts;
538         status = "okay";
539 };
540 
541 &usart3 {
542         pinctrl-names = "default", "sleep", "idle";
543         pinctrl-0 = <&usart3_pins_a>;
544         pinctrl-1 = <&usart3_sleep_pins_a>;
545         pinctrl-2 = <&usart3_idle_pins_a>;
546         status = "okay";
547 };
548 
549 &usbh_ehci {
550         status = "okay";
551 };
552 
553 &usbh_ohci {
554         status = "okay";
555 };
556 
557 &usbotg_hs {
558         phys = <&usbphyc_port1 0>;
559         phy-names = "usb2-phy";
560         status = "okay";
561 };
562 
563 &usbphyc {
564         status = "okay";
565 };
566 
567 &usbphyc_port0 {
568         phy-supply = <&vdd_usb>;
569 };
570 
571 &usbphyc_port1 {
572         phy-supply = <&vdd_usb>;
573 };

~ [ 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