Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Linux/arch/arm/boot/dts/st/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 10 kB image not shown  

Quelle  stm32mp15xc-lxa-tac.dtsi   Sprache: unbekannt

 
// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-3-Clause)
/*
 * Copyright (C) 2020 STMicroelectronics - All Rights Reserved
 * Copyright (C) 2021 Rouven Czerwinski, Pengutronix
 * Copyright (C) 2023 Leonard Göhrs, Pengutronix
 */

#include "stm32mp15xc.dtsi"
#include "stm32mp15xx-osd32.dtsi"
#include "stm32mp15xxac-pinctrl.dtsi"

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/leds/common.h>
#include <dt-bindings/pwm/pwm.h>

/ {
 aliases {
  can0 = &m_can1;
  can1 = &m_can2;
  ethernet0 = ðernet0;
  ethernet1 = &port_uplink;
  ethernet2 = &port_dut;
  i2c0 = &i2c1;
  i2c1 = &i2c4;
  i2c2 = &i2c5;
  mmc1 = &sdmmc2;
  serial0 = &uart4;
  serial1 = &usart3;
  spi0 = &spi2;
  spi1 = &spi4;
  spi2 = &spi5;
 };

 chosen {
  stdout-path = &uart4;
 };

 led-controller-0 {
  compatible = "gpio-leds";

  led-0 {
   label = "tac:green:user1";
   gpios = <&gpiof 10 GPIO_ACTIVE_HIGH>;
   linux,default-trigger = "heartbeat";
  };

  led-1 {
   label = "tac:green:user2";
   gpios = <&gpiog 7 GPIO_ACTIVE_HIGH>;
  };

  led-2 {
   label = "tac:green:statusdut";
   gpios = <&gpioa 13 GPIO_ACTIVE_LOW>;
  };

  /* led-3 and led-4 are internally connected antiparallel to one
   * another inside the ethernet jack like this:
   * GPIOA14 ---+---|led-3|>--+--- GPIOD15
   *            +--<|led-4|---+
   * E.g. only one of the LEDs can be illuminated at a time while
   * the other output must be driven low.
   * This should likely be implemented using a multi color LED
   * driver for antiparallel LEDs.
   */
  led-3 {
   label = "tac:green:statuslab";
   gpios = <&gpioa 14 GPIO_ACTIVE_HIGH>;
  };

  led-4 {
   label = "tac:orange:statuslab";
   gpios = <&gpiod 15 GPIO_ACTIVE_HIGH>;
  };
 };

 gpio-keys {
  compatible = "gpio-keys";

  button-lower {
   label = "USER_BTN2";
   linux,code = <KEY_ESC>;
   gpios = <&gpioe 7 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
  };

  button-upper {
   label = "USER_BTN";
   linux,code = <KEY_HOME>;
   gpios = <&gpioi 11 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
  };
 };

 /* supplied by either barrel connector or PoE */
 reg_12v: regulator-12v {
  compatible = "regulator-fixed";
  regulator-name = "12V";
  regulator-min-microvolt = <12000000>;
  regulator-max-microvolt = <12000000>;
  regulator-always-on;
 };

 reg_5v: regulator-5v {
  compatible = "regulator-fixed";
  regulator-name = "5V";
  regulator-min-microvolt = <5000000>;
  regulator-max-microvolt = <5000000>;
  regulator-always-on;
  vin-supply = <®_12v>;
 };

 reg_1v2: regulator-1v2 {
  compatible = "regulator-fixed";
  regulator-name = "1V2";
  regulator-min-microvolt = <1200000>;
  regulator-max-microvolt = <1200000>;
  regulator-always-on;
  vin-supply = <®_5v>;
 };

 reg_pb_5v: regulator-pb-5v {
  compatible = "regulator-fixed";
  regulator-name = "5V_POWERBOARD";
  regulator-min-microvolt = <5000000>;
  regulator-max-microvolt = <5000000>;
  regulator-always-on;
  vin-supply = <®_5v>;
 };

 reg_pb_3v3: regulator-pb-3v3 {
  compatible = "regulator-fixed";
  regulator-name = "3V3_POWERBOARD";
  regulator-min-microvolt = <3300000>;
  regulator-max-microvolt = <3300000>;
  regulator-always-on;
  vin-supply = <®_pb_5v>;
 };

 output-iobus-12v {
  compatible = "regulator-output";
  vout-supply = <®_iobus_12v>;
 };

 output-vuart {
  compatible = "regulator-output";
  vout-supply = <&v3v3_hdmi>;
 };
};

baseboard_eeprom: &sip_eeprom {
};

&crc1 {
 status = "okay";
};

&cryp1 {
 status = "okay";
};

&dts {
 status = "okay";
};

ðernet0 {
 assigned-clocks = <&rcc ETHCK_K>, <&rcc PLL4_P>;
 assigned-clock-parents = <&rcc PLL4_P>;
 assigned-clock-rates = <125000000>; /* Clock PLL4 to 750Mhz in ATF */

 pinctrl-names = "default", "sleep";
 pinctrl-0 = <ðernet0_rgmii_pins_e>;
 pinctrl-1 = <ðernet0_rgmii_sleep_pins_e>;

 st,eth-clk-sel;
 phy-mode = "rgmii-id";

 status = "okay";

 fixed-link {
  speed = <1000>;
  full-duplex;
 };
};

ðernet0_rgmii_pins_e {
 pins1 {
  /* Reduce EMI emission by reducing RGMII drive strength */
  slew-rate = <1>;
 };
};

&gpiob {
 gpio-line-names = "", "", "", "", "", /*  0 */
 "", "USB_RESET", "", "", "",          /*  5 */
 "", "", "", "", "",                   /* 10 */
 "";                                   /* 15 */
};

&gpiod {
 gpio-line-names = "", "", "", "", "TP38", /*  0 */
 "TP39", "", "", "TP41", "TP42",           /*  5 */
 "OLED_DC", "", "", "ETH_CS", "",          /* 10 */
 "ETH_LAB_LEDRN";                          /* 15 */
};

&gpiof {
 gpio-line-names = "TP36", "TP37", "", "", "OLED_CS", /*  0 */
 "", "", "", "", "",                                  /*  5 */
 "USER_LED1", "", "STACK_CS0", "", "",                /* 10 */
 "";                                                  /* 15 */
};

&gpioh {
 gpio-line-names = "", "", "OUT_1", "OUT_0", "OLED_RESET", /*  0 */
 "", "", "", "", "",                                       /*  5 */
 "ETH1_PPS_B", "ETH_GPIO2", "", "IOBUS_PWR_EN", "",        /* 10 */
 "TP33";                                                   /* 15 */
};

&gpioi {
 gpio-line-names = "TIM_RTS", "", "", "", "DEVICE_DATA_EN", /*  0 */
 "", "", "", "ETH_WOL", "TP43",                             /*  5 */
 "", "USER_BTN";                                            /* 10 */
};

&gpioz {
 gpio-line-names = "HWID0", "HWID1", "HWID2", "HWID3", "", /*  0 */
 "", "HWID4", "HWID5";                                     /*  5 */
};

&hash1 {
 status = "okay";
};

&i2c1 {
 pinctrl-names = "default", "sleep";
 pinctrl-0 = <&i2c1_pins_b>;
 pinctrl-1 = <&i2c1_sleep_pins_b>;
 status = "okay";

 powerboard_eeprom: eeprom@50 {
  compatible = "atmel,24c02";
  reg = <0x50>;
  vcc-supply = <&v3v3>;
 };

 temperature-sensor@48 {
  compatible = "national,lm75a";
  reg = <0x48>;
  status = "disabled";
 };
};

&i2c5 {
 /delete-property/dmas;
 /delete-property/dma-names;

 pinctrl-names = "default", "sleep";
 pinctrl-0 = <&i2c5_pins_b>;
 pinctrl-1 = <&i2c5_sleep_pins_b>;

 status = "okay";

 usbhub: usbhub@2c {
  compatible ="microchip,usb2514b";
  reg = <0x2c>;
  vdd-supply = <&v3v3>;
  reset-gpios = <&gpiob 6 GPIO_ACTIVE_LOW>;
 };
};

&iwdg2 {
 timeout-sec = <8>;
 status = "okay";
};

&m_can1 {
 pinctrl-names = "default", "sleep";
 pinctrl-0 = <&m_can1_pins_b>;
 pinctrl-1 = <&m_can1_sleep_pins_b>;
 status = "okay";
};

&m_can2 {
 pinctrl-names = "default", "sleep";
 pinctrl-0 = <&m_can2_pins_a>;
 pinctrl-1 = <&m_can2_sleep_pins_a>;
 status = "okay";
};

&pmic {
 regulators {
  buck1-supply = <®_5v>; /* VIN */
  buck2-supply = <®_5v>; /* VIN */
  buck3-supply = <®_5v>; /* VIN */
  buck4-supply = <®_5v>; /* VIN */
  ldo2-supply = <®_5v>; /* PMIC_LDO25IN */
  ldo4-supply = <®_5v>; /* VIN */
  ldo5-supply = <®_5v>; /* PMIC_LDO25IN */
  vref_ddr-supply = <®_5v>; /* VIN */
  boost-supply = <®_5v>; /* PMIC_BSTIN */
  pwr_sw2-supply = <&bst_out>; /* PMIC_SWIN */
 };
};

&sdmmc2 {
 pinctrl-names = "default", "opendrain", "sleep";
 pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_b>;
 pinctrl-1 = <&sdmmc2_b4_od_pins_a &sdmmc2_d47_pins_b>;
 pinctrl-2 = <&sdmmc2_b4_sleep_pins_a &sdmmc2_d47_sleep_pins_b>;
 vmmc-supply = <&v3v3>;

 bus-width = <8>;
 mmc-ddr-3_3v;
 no-1-8-v;
 non-removable;
 no-sd;
 no-sdio;
 st,neg-edge;

 status = "okay";
};

&spi2 {
 pinctrl-names = "default";
 pinctrl-0 = <&spi2_pins_c>;
 cs-gpios = <&gpiof 12 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>;
 status = "okay";
};

&spi4 {
 pinctrl-names = "default";
 pinctrl-0 = <&spi4_pins_a>;
 cs-gpios = <&gpiof 4 GPIO_ACTIVE_LOW>;
 status = "okay";

 lcd: display@0 {
  compatible = "shineworld,lh133k", "panel-mipi-dbi-spi";
  reg = <0>;
  power-supply = <&v3v3>;
  io-supply = <&v3v3>;
  backlight = <&backlight>;
  dc-gpios = <&gpiod 10 GPIO_ACTIVE_HIGH>;
  reset-gpios = <&gpioh 4 GPIO_ACTIVE_HIGH>;
  spi-3wire;
  spi-max-frequency = <32000000>;

  width-mm = <23>;
  height-mm = <23>;
  rotation = <180>;

  panel-timing {
   hactive = <240>;
   vactive = <240>;
   hback-porch = <0>;
   vback-porch = <0>;

   clock-frequency = <0>;
   hfront-porch = <0>;
   hsync-len = <0>;
   vfront-porch = <0>;
   vsync-len = <0>;
  };
 };
};

&spi5 {
 pinctrl-names = "default";
 pinctrl-0 = <&spi5_pins_a>;

 /* spare dmas for other usage */
 /delete-property/dmas;
 /delete-property/dma-names;

 cs-gpios = <&gpiod 13 GPIO_ACTIVE_LOW>;

 status = "okay";

 switch: switch@0 {
  compatible = "microchip,ksz9563";
  reg = <0>;

  reset-gpios = <&gpiog 0 GPIO_ACTIVE_LOW>;
  spi-max-frequency = <44000000>;

  interrupt-parent = <&gpioa>;
  interrupts = <6 IRQ_TYPE_EDGE_RISING>;

  /* Reduce RGMII EMI emissions by reducing drive strength */
  microchip,hi-drive-strength-microamp = <2000>;
  microchip,lo-drive-strength-microamp = <8000>;

  ports {
   #address-cells = <1>;
   #size-cells = <0>;
   port_dut: port@0 {
    reg = <0>;
    label = "dut";
   };

   port_uplink: port@1 {
    reg = <1>;
    label = "uplink";
   };

   port_cpu: port@2 {
    reg = <2>;
    label = "cpu";

    ethernet = <ðernet0>;

    phy-mode = "rgmii-id";
    rx-internal-delay-ps = <2000>;
    tx-internal-delay-ps = <2000>;

    fixed-link {
     speed = <1000>;
     full-duplex;
    };
   };
  };
 };
};

&timers2 {
 /* spare dmas for other usage */
 /delete-property/dmas;
 /delete-property/dma-names;

 status = "okay";

 timer@1 {
  status = "okay";
 };
};

&timers3 {
 /* spare dmas for other usage */
 /delete-property/dmas;
 /delete-property/dma-names;

 status = "okay";

 timer@2 {
  status = "okay";
 };
};

&timers4 {
 /* spare dmas for other usage */
 /delete-property/dmas;
 /delete-property/dma-names;

 status = "okay";

 timer@3 {
  status = "okay";
 };
};

&uart4 {
 label = "debug";

 pinctrl-names = "default";
 pinctrl-0 = <&uart4_pins_a>;

 /* spare dmas for other usage */
 /delete-property/dmas;
 /delete-property/dma-names;

 status = "okay";
};

&usart3 {
 label = "dut";
 uart-has-rtscts;

 pinctrl-names = "default";
 pinctrl-0 = <&usart3_pins_f>;

 /* spare dmas for other usage */
 /delete-property/dmas;
 /delete-property/dma-names;

 status = "okay";
};

&usbh_ehci {
 status = "okay";
};

&usbotg_hs {
 phys = <&usbphyc_port1 0>;
 phy-names = "usb2-phy";

 vusb_d-supply = <&vdd_usb>;
 vusb_a-supply = <®18>;

 g-rx-fifo-size = <512>;
 g-np-tx-fifo-size = <32>;
 g-tx-fifo-size = <128 128 64 16 16 16 16 16>;

 dr_mode = "peripheral";

 status = "okay";
};

&usbphyc {
 status = "okay";
};

&vrefbuf {
 regulator-min-microvolt = <2500000>;
 regulator-max-microvolt = <2500000>;
 vdda-supply = <&vdda>;

 status = "okay";
};

[ Dauer der Verarbeitung: 0.22 Sekunden  (vorverarbeitet)  ]