Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  k3-am62-verdin-ivy.dtsi   Sprache: unbekannt

 
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/*
 * Copyright 2024 Toradex
 *
 * Common dtsi for Verdin AM62 SoM on Ivy carrier board
 *
 * https://www.toradex.com/computer-on-modules/verdin-arm-family/ti-am62
 * https://www.toradex.com/products/carrier-board/ivy-carrier-board
 */

#include <dt-bindings/mux/mux.h>
#include <dt-bindings/leds/common.h>
#include <dt-bindings/net/ti-dp83867.h>

/ {
 /* AIN1 Voltage w/o AIN1_MODE gpio control */
 ain1_voltage_unmanaged: voltage-divider-ain1 {
  compatible = "voltage-divider";
  #io-channel-cells = <1>;
  io-channels = <&ivy_adc1 0>;
  full-ohms = <19>;
  output-ohms = <1>;
 };

 /* AIN1 Current w/o AIN1_MODE gpio control */
 ain1_current_unmanaged: current-sense-shunt-ain1 {
  compatible = "current-sense-shunt";
  #io-channel-cells = <0>;
  io-channels = <&ivy_adc1 1>;
  shunt-resistor-micro-ohms = <100000000>;
 };

 /* AIN1_MODE - SODIMM 216 */
 ain1_mode_mux_ctrl: mux-controller-0 {
  compatible = "gpio-mux";
  pinctrl-names = "default";
  pinctrl-0 = <&pinctrl_gpio_5>;
  #mux-control-cells = <0>;
  mux-gpios = <&main_gpio0 40 GPIO_ACTIVE_HIGH>;
 };

 ain1-voltage {
  compatible = "io-channel-mux";
  channels = "ain1_voltage", "";
  io-channels = <&ain1_voltage_unmanaged 0>;
  io-channel-names = "parent";
  mux-controls = <&ain1_mode_mux_ctrl>;
  settle-time-us = <1000>;
 };

 ain1-current {
  compatible = "io-channel-mux";
  channels = "", "ain1_current";
  io-channels = <&ain1_current_unmanaged>;
  io-channel-names = "parent";
  mux-controls = <&ain1_mode_mux_ctrl>;
  settle-time-us = <1000>;
 };

 /* AIN2 Voltage w/o AIN2_MODE gpio control */
 ain2_voltage_unmanaged: voltage-divider-ain2 {
  compatible = "voltage-divider";
  #io-channel-cells = <1>;
  io-channels = <&ivy_adc2 0>;
  full-ohms = <19>;
  output-ohms = <1>;
 };

 /* AIN2 Current w/o AIN2_MODE gpio control */
 ain2_current_unmanaged: current-sense-shunt-ain2 {
  compatible = "current-sense-shunt";
  #io-channel-cells = <0>;
  io-channels = <&ivy_adc2 1>;
  shunt-resistor-micro-ohms = <100000000>;
 };

 /* AIN2_MODE - SODIMM 218 */
 ain2_mode_mux_ctrl: mux-controller-1 {
  compatible = "gpio-mux";
  pinctrl-names = "default";
  pinctrl-0 = <&pinctrl_gpio_6>;
  #mux-control-cells = <0>;
  mux-gpios = <&main_gpio0 36 GPIO_ACTIVE_HIGH>;
 };

 ain2-voltage {
  compatible = "io-channel-mux";
  channels = "ain2_voltage", "";
  io-channels = <&ain2_voltage_unmanaged 0>;
  io-channel-names = "parent";
  mux-controls = <&ain2_mode_mux_ctrl>;
  settle-time-us = <1000>;
 };

 ain2-current {
  compatible = "io-channel-mux";
  channels = "", "ain2_current";
  io-channels = <&ain2_current_unmanaged>;
  io-channel-names = "parent";
  mux-controls = <&ain2_mode_mux_ctrl>;
  settle-time-us = <1000>;
 };

 leds {
  compatible = "gpio-leds";
  pinctrl-names = "default";
  pinctrl-0 = <&pinctrl_ivy_leds>;

  /* D7 Blue - SODIMM 30 - LEDs.GPIO1 */
  led-0 {
   color = <LED_COLOR_ID_BLUE>;
   default-state = "off";
   function = LED_FUNCTION_STATUS;
   function-enumerator = <1>;
   gpios = <&main_gpio1 11 GPIO_ACTIVE_HIGH>;
  };

  /* D7 Green - SODIMM 32 - LEDs.GPIO2 */
  led-1 {
   color = <LED_COLOR_ID_GREEN>;
   default-state = "off";
   function = LED_FUNCTION_STATUS;
   function-enumerator = <1>;
   gpios = <&main_gpio1 12 GPIO_ACTIVE_HIGH>;
  };

  /* D7 Red - SODIMM 34 - LEDs.GPIO3 */
  led-2 {
   color = <LED_COLOR_ID_RED>;
   default-state = "off";
   function = LED_FUNCTION_STATUS;
   function-enumerator = <1>;
   gpios = <&main_gpio1 10 GPIO_ACTIVE_HIGH>;
  };

  /* D8 Blue - SODIMM 36 - LEDs.GPIO4 */
  led-3 {
   color = <LED_COLOR_ID_BLUE>;
   default-state = "off";
   function = LED_FUNCTION_STATUS;
   function-enumerator = <2>;
   gpios = <&main_gpio1 9 GPIO_ACTIVE_HIGH>;
  };

  /* D8 Green - SODIMM 54 - LEDs.GPIO5 */
  led-4 {
   color = <LED_COLOR_ID_GREEN>;
   default-state = "off";
   function = LED_FUNCTION_STATUS;
   function-enumerator = <2>;
   gpios = <&main_gpio0 11 GPIO_ACTIVE_HIGH>;
  };

  /* D8 Red - SODIMM 44 - LEDs.GPIO6 */
  led-5 {
   color = <LED_COLOR_ID_RED>;
   default-state = "off";
   function = LED_FUNCTION_STATUS;
   function-enumerator = <2>;
   gpios = <&main_gpio0 37 GPIO_ACTIVE_HIGH>;
  };

  /* D9 Blue - SODIMM 46 - LEDs.GPIO7 */
  led-6 {
   color = <LED_COLOR_ID_BLUE>;
   default-state = "off";
   function = LED_FUNCTION_STATUS;
   function-enumerator = <3>;
   gpios = <&main_gpio0 34 GPIO_ACTIVE_HIGH>;
  };

  /* D9 Red - SODIMM 48 - LEDs.GPIO8 */
  led-7 {
   color = <LED_COLOR_ID_RED>;
   default-state = "off";
   function = LED_FUNCTION_STATUS;
   function-enumerator = <3>;
   gpios = <&main_gpio0 33 GPIO_ACTIVE_HIGH>;
  };
 };

 reg_3v2_ain1: regulator-3v2-ain1 {
  compatible = "regulator-fixed";
  regulator-max-microvolt = <3200000>;
  regulator-min-microvolt = <3200000>;
  regulator-name = "+3V2_AIN1";
 };

 reg_3v2_ain2: regulator-3v2-ain2 {
  compatible = "regulator-fixed";
  regulator-max-microvolt = <3200000>;
  regulator-min-microvolt = <3200000>;
  regulator-name = "+3V2_AIN2";
 };

 /* Ivy Power Supply Input Voltage */
 ivy-input-voltage {
  compatible = "voltage-divider";
  /* Verdin ADC_1 */
  io-channels = <&verdin_som_adc 7>;
  full-ohms = <204700>; /* 200K + 4.7K */
  output-ohms = <4700>;
 };

 ivy-5v-voltage {
  compatible = "voltage-divider";
  /* Verdin ADC_2 */
  io-channels = <&verdin_som_adc 6>;
  full-ohms = <39000>; /* 27K + 12K */
  output-ohms = <12000>;
 };

 ivy-3v3-voltage {
  compatible = "voltage-divider";
  /* Verdin ADC_3 */
  io-channels = <&verdin_som_adc 5>;
  full-ohms = <54000>; /* 27K + 27K */
  output-ohms = <27000>;
 };

 ivy-1v8-voltage {
  compatible = "voltage-divider";
  /* Verdin ADC_4 */
  io-channels = <&verdin_som_adc 4>;
  full-ohms = <39000>; /* 12K + 27K */
  output-ohms = <27000>;
 };
};

&main_pmx0 {
 pinctrl_ivy_leds: ivy-leds-default-pins {
  pinctrl-single,pins =
   <AM62X_IOPAD(0x019c, PIN_INPUT, 7)>, /* (B18) MCASP0_AXR1.GPIO1_9    */ /* SODIMM 36 */
   <AM62X_IOPAD(0x01a0, PIN_INPUT, 7)>, /* (B20) MCASP0_AXR0.GPIO1_10   */ /* SODIMM 34 */
   <AM62X_IOPAD(0x01a4, PIN_INPUT, 7)>, /* (A19) MCASP0_ACLKX.GPIO1_11  */ /* SODIMM 30 */
   <AM62X_IOPAD(0x01a8, PIN_INPUT, 7)>, /* (A20) MCASP0_AFSX.GPIO1_12   */ /* SODIMM 32 */
   <AM62X_IOPAD(0x0088, PIN_INPUT, 7)>, /* (L17) GPMC0_OEn_REn.GPIO0_33 */ /* SODIMM 48 */
   <AM62X_IOPAD(0x0098, PIN_INPUT, 7)>, /* (R18) GPMC0_WAIT0.GPIO0_37   */ /* SODIMM 44 */
   <AM62X_IOPAD(0x008c, PIN_INPUT, 7)>, /* (L25) GPMC0_WEn.GPIO0_34     */ /* SODIMM 46 */
   <AM62X_IOPAD(0x002c, PIN_INPUT, 7)>; /* (F23) OSPI0_CSn0.GPIO0_11    */ /* SODIMM 54 */
 };
};

/* Verdin ETH */
&cpsw3g {
 status = "okay";
};

/* MDIO, shared by Verdin ETH_1 (On-module PHY) and Verdin ETH_2_RGMII */
&cpsw3g_mdio {
 status = "okay";

 cpsw3g_phy1: ethernet-phy@2 {
  reg = <2>;
  pinctrl-names = "default";
  pinctrl-0 = <&pinctrl_eth2_rgmii_int>;
  interrupt-parent = <&main_gpio0>;
  interrupts = <38 IRQ_TYPE_EDGE_FALLING>;
  ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
 };
};

/* Verdin ETH_1*/
&cpsw_port1 {
 status = "okay";
};

/* Verdin ETH_2_RGMII */
&cpsw_port2 {
 phy-handle = <&cpsw3g_phy1>;
 phy-mode = "rgmii-rxid";
 status = "okay";
};

&main_gpio0 {
 pinctrl-names = "default";
 pinctrl-0 = <&pinctrl_ctrl_sleep_moci>,
      <&pinctrl_qspi1_cs2_gpio>,
      <&pinctrl_qspi1_io0_gpio>,
      <&pinctrl_qspi1_io1_gpio>,
      <&pinctrl_qspi1_io2_gpio>,
      <&pinctrl_qspi1_io3_gpio>;
 gpio-line-names =
  "", /* 0 */
  "",
  "",
  "DIGI_1", /* SODIMM 56 */
  "DIGI_2", /* SODIMM 58 */
  "REL1",   /* SODIMM 60 */
  "REL2",   /* SODIMM 62 */
  "",
  "",
  "",
  "", /* 10 */
  "",
  "REL3", /* SODIMM 64 */
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "", /* 20 */
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "", /* 30 */
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "", /* 40 */
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "", /* 50 */
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "", /* 60 */
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "", /* 70 */
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "", /* 80 */
  "",
  "",
  "",
  "",
  "",
  "";
};

&main_gpio1 {
 pinctrl-names = "default";
 pinctrl-0 = <&pinctrl_qspi1_dqs_gpio>;
 gpio-line-names =
  "", /* 0 */
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "", /* 10 */
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "REL4", /* SODIMM 66 */
  "",
  "", /* 20 */
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "", /* 30 */
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "", /* 40 */
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "", /* 50 */
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "", /* 60 */
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "", /* 70 */
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "", /* 80 */
  "",
  "",
  "",
  "",
  "",
  "",
  "";
};

/* Verdin I2C_1 */
&main_i2c1 {
 status = "okay";

 temperature-sensor@4f {
  compatible = "ti,tmp1075";
  reg = <0x4f>;
 };

 eeprom@57 {
  compatible = "st,24c02", "atmel,24c02";
  reg = <0x57>;
  pagesize = <16>;
 };
};

/* Verdin I2C_4 CSI */
&main_i2c3 {
 status = "okay";

 ivy_adc1: adc@40 {
  compatible = "ti,ads1119";
  reg = <0x40>;
  pinctrl-names = "default";
  pinctrl-0 = <&pinctrl_gpio_7>;
  interrupt-parent = <&main_gpio0>;
  interrupts = <41 IRQ_TYPE_EDGE_FALLING>;
  avdd-supply = <®_3v2_ain1>;
  dvdd-supply = <®_3v2_ain1>;
  vref-supply = <®_3v2_ain1>;
  #address-cells = <1>;
  #io-channel-cells = <1>;
  #size-cells = <0>;

  /* AIN1 0-33V Voltage Input */
  channel@0 {
   reg = <0>;
   diff-channels = <0 1>;
  };

  /* AIN1 0-20mA Current Input */
  channel@1 {
   reg = <1>;
   diff-channels = <2 3>;
  };
 };

 ivy_adc2: adc@41 {
  compatible = "ti,ads1119";
  reg = <0x41>;
  pinctrl-names = "default";
  pinctrl-0 = <&pinctrl_gpio_8>;
  interrupt-parent = <&main_gpio0>;
  interrupts = <42 IRQ_TYPE_EDGE_FALLING>;
  avdd-supply = <®_3v2_ain2>;
  dvdd-supply = <®_3v2_ain2>;
  vref-supply = <®_3v2_ain2>;
  #address-cells = <1>;
  #io-channel-cells = <1>;
  #size-cells = <0>;

  /* AIN2 0-33V Voltage Input */
  channel@0 {
   reg = <0>;
   diff-channels = <0 1>;
  };

  /* AIN2 0-20mA Current Input */
  channel@1 {
   reg = <1>;
   diff-channels = <2 3>;
  };
 };
};

/* Verdin CAN_1 */
&main_mcan0 {
 status = "okay";
};

/* Verdin SPI_1 */
&main_spi1 {
 pinctrl-0 = <&pinctrl_spi1>,
      <&pinctrl_spi1_cs0>,
      <&pinctrl_gpio_1>,
      <&pinctrl_gpio_4>;
 cs-gpios = <0>,
     <&mcu_gpio0 1 GPIO_ACTIVE_LOW>,
     <&mcu_gpio0 4 GPIO_ACTIVE_LOW>;
 status = "okay";

 tpm@1 {
  compatible = "infineon,slb9670", "tcg,tpm_tis-spi";
  reg = <1>;
  spi-max-frequency = <18500000>;
 };

 fram@2 {
  compatible = "fujitsu,mb85rs256", "atmel,at25";
  reg = <2>;
  address-width = <16>;
  size = <32768>;
  spi-max-frequency = <33000000>;
  pagesize = <1>;
 };
};

/* Verdin UART_3 */
&main_uart0 {
 status = "okay";
};

/* Verdin UART_1 */
&main_uart1 {
 status = "okay";
};

&mcu_gpio0 {
 pinctrl-names = "default";
 pinctrl-0 = <&pinctrl_gpio_2>,
      <&pinctrl_gpio_3>,
      <&pinctrl_pcie_1_reset>;
 gpio-line-names =
  "",
  "",
  "GPIO2", /* Verdin GPIO_2 - SODIMM 208 */
  "GPIO3", /* Verdin GPIO_3 - SODIMM 210 */
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "",
  "";
};

/* Verdin CAN_2 */
&mcu_mcan0 {
 status = "okay";
};

/* Verdin SD_1 */
&sdhci1 {
 status = "okay";
};

/* Verdin USB_1*/
&usbss0 {
 status = "okay";
};

&usb0 {
 status = "okay";
};

/* Verdin USB_2 */
&usbss1 {
 status = "okay";
};

&usb1 {
 status = "okay";
};

/* Verdin PCIE_1_RESET# */
&verdin_pcie_1_reset_hog {
 status = "okay";
};

/* Verdin UART_2 */
&wkup_uart0 {
 linux,rs485-enabled-at-boot-time;
 rs485-rts-active-low;
 rs485-rx-during-tx;
 status = "okay";
};

[ Dauer der Verarbeitung: 0.4 Sekunden  (vorverarbeitet)  ]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge