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

Quelle  at91-sama5d2_icp.dts   Sprache: unbekannt

 
Spracherkennung für: .dts vermutete Sprache: Unknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]

// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * at91-sama5d2_icp.dts - Device Tree file for SAMA5D2-ICP board
 *
 *  Copyright (C) 2019 Microchip Technology Inc. and its subsidiaries
 *
 * Author: Radu Pirea & Razvan Stefanescu,
 *  Codrin Ciubotariu <codrin.ciubotariu@microchip.com>,
 *  Cristian Birsan <cristian.birsan@microchip.com>
 */
/dts-v1/;
#include "sama5d2.dtsi"
#include "sama5d2-pinfunc.h"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/mfd/atmel-flexcom.h>

/ {
 model = "Microchip SAMA5D2-ICP";
 compatible = "microchip,sama5d2-icp", "atmel,sama5d27", "atmel,sama5d2", "atmel,sama5";

 aliases {
  serial0 = &uart0; /* debug uart0 + mikro BUS 1 */
  serial1 = &uart1; /* mikro BUS 3 */
  serial3 = &uart3; /* mikro BUS 2 */
  serial5 = &uart7; /* flx2 */
  i2c0 = &i2c0;
  i2c1 = &i2c1;
 };

 chosen {
  stdout-path = "serial0:115200n8";
 };

 clocks {
  slow_xtal {
   clock-frequency = <32768>;
  };

  main_xtal {
   clock-frequency = <12000000>;
  };
 };

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

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

  button-1 {
   label = "USER_PB1";
   gpios = <&pioA PIN_PD0 GPIO_ACTIVE_LOW>;
   linux,code = <KEY_PROG1>;
   wakeup-source;
  };
 };

 leds {
  compatible = "gpio-leds";
  pinctrl-names = "default";
  pinctrl-0 = <&pinctrl_led_gpio_default>;
  status = "okay"; /* conflict with pwm0 */

  led-red {
   label = "red";
   gpios = <&pioA PIN_PB0 GPIO_ACTIVE_HIGH>;
  };

  led-green {
   label = "green";
   gpios = <&pioA PIN_PB1 GPIO_ACTIVE_HIGH>;
  };

  led-blue {
   label = "blue";
   gpios = <&pioA PIN_PA31 GPIO_ACTIVE_HIGH>;
   linux,default-trigger = "heartbeat";
  };
 };

 reg_5v: regulator-5v {
  compatible = "regulator-fixed";
  regulator-name = "VDD_MAIN_5V";
  regulator-min-microvolt = <5000000>;
  regulator-max-microvolt = <5000000>;
  regulator-always-on;
 };
};

&adc {
 vddana-supply = <&vdd_io_reg>;
 vref-supply = <&vdd_io_reg>;
 pinctrl-names = "default";
 pinctrl-0 = <&pinctrl_adc_default &pinctrl_adtrg_default>;
 status = "okay";
};

&can0 {
 pinctrl-names = "default";
 pinctrl-0 = <&pinctrl_can0_default>;
 status = "okay";
};

&can1 {
 pinctrl-names = "default";
 pinctrl-0 = <&pinctrl_can1_default>;
 status = "okay";
};

&flx0 { /* mikrobus2 spi */
 atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_SPI>;
 status = "okay";

 spi2: spi@400 {
  dmas = <0>, <0>;
  cs-gpios = <&pioA PIN_PC0 GPIO_ACTIVE_LOW>;
  pinctrl-names = "default";
  pinctrl-0 = <&pinctrl_mikrobus2_spi &pinctrl_ksz_spi_cs>;
  status = "okay";
  #address-cells = <1>;
  #size-cells = <0>;

  switch0: ksz8563@0 {
   compatible = "microchip,ksz8563";
   reg = <0>;
   reset-gpios = <&pioA PIN_PD4 GPIO_ACTIVE_LOW>;

   spi-max-frequency = <500000>;
   spi-cpha;
   spi-cpol;

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

    port@1 {
     reg = <1>;
     label = "lan2";
    };

    port@2 {
     reg = <2>;
     label = "cpu";
     ethernet = <&macb0>;
     phy-mode = "mii";
     fixed-link {
      speed = <100>;
      full-duplex;
     };
    };
   };
  };
 };
};

&flx2 {
 atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_USART>;
 status = "okay";

 uart7: serial@200 {
  pinctrl-0 = <&pinctrl_flx2_default>;
  pinctrl-names = "default";
  atmel,use-dma-rx;
  atmel,use-dma-tx;
  status = "okay"; /* Conflict w/ qspi1. */
 };
};

&flx3 { /* mikrobus1 spi */
 atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_SPI>;
 status = "okay";

 spi5: spi@400 {
  dmas = <0>, <0>;
  pinctrl-names = "default";
  pinctrl-0 = <&pinctrl_mikrobus1_spi &pinctrl_mikrobus1_spi_cs>;
  status = "okay";
 };
};

&flx4 {
 atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_TWI>;
 status = "okay";

 i2c6: i2c@600 {
  dmas = <0>, <0>;
  pinctrl-names = "default";
  pinctrl-0 = <&pinctrl_flx4_default>;
  i2c-digital-filter;
  i2c-digital-filter-width-ns = <35>;
  status = "okay";

  power-monitor@10 {
   compatible = "microchip,pac1934";
   reg = <0x10>;
   #address-cells = <1>;
   #size-cells = <0>;

   channel@1 {
    reg = <0x1>;
    shunt-resistor-micro-ohms = <10000>;
    label = "VDD3V3_1";
   };

   channel@2 {
    reg = <0x2>;
    shunt-resistor-micro-ohms = <10000>;
    label = "VDD3V3_2";
   };

   channel@3 {
    reg = <0x3>;
    shunt-resistor-micro-ohms = <10000>;
    label = "VDDCORE";
   };

   channel@4 {
    reg = <0x4>;
    shunt-resistor-micro-ohms = <10000>;
    label = "VDDIODDR";
   };
  };

  pmic@5b {
   compatible = "microchip,mcp16502";
   reg = <0x5b>;
   lvin-supply = <®_5v>;
   pvin1-supply = <®_5v>;
   pvin2-supply = <®_5v>;
   pvin3-supply = <®_5v>;
   pvin4-supply = <®_5v>;
   status = "okay";
   lpm-gpios = <&pioBU 7 GPIO_ACTIVE_LOW>;

   regulators {
    vdd_io_reg: VDD_IO {
     regulator-name = "VDD_IO";
     regulator-min-microvolt = <3300000>;
     regulator-max-microvolt = <3300000>;
     regulator-initial-mode = <2>;
     regulator-allowed-modes = <2>, <4>;
     regulator-always-on;

     regulator-state-standby {
      regulator-on-in-suspend;
      regulator-mode = <4>;
     };

     regulator-state-mem {
      regulator-off-in-suspend;
      regulator-mode = <4>;
     };
    };

    VDD_DDR {
     regulator-name = "VDD_DDR";
     regulator-min-microvolt = <1350000>;
     regulator-max-microvolt = <1350000>;
     regulator-initial-mode = <2>;
     regulator-allowed-modes = <2>, <4>;
     regulator-always-on;

     regulator-state-standby {
      regulator-on-in-suspend;
      regulator-mode = <4>;
     };

     regulator-state-mem {
      regulator-on-in-suspend;
      regulator-mode = <4>;
     };
    };

    VDD_CORE {
     regulator-name = "VDD_CORE";
     regulator-min-microvolt = <1250000>;
     regulator-max-microvolt = <1250000>;
     regulator-initial-mode = <2>;
     regulator-allowed-modes = <2>, <4>;
     regulator-always-on;

     regulator-state-standby {
      regulator-on-in-suspend;
      regulator-mode = <4>;
     };

     regulator-state-mem {
      regulator-off-in-suspend;
      regulator-mode = <4>;
     };
    };

    VDD_OTHER {
     regulator-name = "VDD_OTHER";
     regulator-min-microvolt = <600000>;
     regulator-max-microvolt = <1850000>;
     regulator-initial-mode = <2>;
     regulator-allowed-modes = <2>, <4>;

     regulator-state-standby {
      regulator-on-in-suspend;
      regulator-mode = <4>;
     };

     regulator-state-mem {
      regulator-off-in-suspend;
      regulator-mode = <4>;
     };
    };

    LDO1 {
     regulator-name = "LDO1";
     regulator-min-microvolt = <2500000>;
     regulator-max-microvolt = <2500000>;
     regulator-always-on;

     regulator-state-standby {
      regulator-on-in-suspend;
     };

     regulator-state-mem {
      regulator-off-in-suspend;
     };
    };

    LDO2 {
     regulator-name = "LDO2";
     regulator-min-microvolt = <3300000>;
     regulator-max-microvolt = <3300000>;
     regulator-always-on;

     regulator-state-standby {
      regulator-on-in-suspend;
     };

     regulator-state-mem {
      regulator-off-in-suspend;
     };
    };

   };
  };
 };
};

&i2c0 { /* mikrobus i2c */
 pinctrl-names = "default", "gpio";
 pinctrl-0 = <&pinctrl_mikrobus_i2c>;
 pinctrl-1 = <&pinctrl_i2c0_gpio>;
 sda-gpios = <&pioA PIN_PD21 GPIO_ACTIVE_HIGH>;
 scl-gpios = <&pioA PIN_PD22 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
 i2c-digital-filter;
 i2c-digital-filter-width-ns = <35>;
 status = "okay";
};

&i2c1 {
 dmas = <0>, <0>;
 pinctrl-names = "default", "gpio";
 pinctrl-0 = <&pinctrl_i2c1_default>;
 pinctrl-1 = <&pinctrl_i2c1_gpio>;
 sda-gpios = <&pioA PIN_PD19 GPIO_ACTIVE_HIGH>;
 scl-gpios = <&pioA PIN_PD20 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
 i2c-digital-filter;
 i2c-digital-filter-width-ns = <35>;
 status = "okay";

 eeprom@50 {
  compatible = "atmel,24c02";
  reg = <0x50>;
  pagesize = <16>;
  status = "okay";
 };

 eeprom@52 {
  compatible = "atmel,24c02";
  reg = <0x52>;
  pagesize = <16>;
  status = "disabled";
 };

 eeprom@53 {
  compatible = "atmel,24c02";
  reg = <0x53>;
  pagesize = <16>;
  status = "disabled";
 };
};

&macb0 {
 pinctrl-names = "default";
 pinctrl-0 = <&pinctrl_macb0_default &pinctrl_macb0_phy_irq &pinctrl_macb0_rst>;
 phy-mode = "mii";
 status = "okay";

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

&pioA {
 pinctrl_adc_default: adc_default {
  pinmux = <PIN_PD24__GPIO>,
    <PIN_PD25__GPIO>,
    <PIN_PD26__GPIO>;
  bias-disable;
 };

 /*
  * The ADTRG pin can work on any edge type.
  * In here it's being pulled up, so need to
  * connect it to ground to get an edge e.g.
  * Trigger can be configured on falling, rise
  * or any edge, and the pull-up can be changed
  * to pull-down or left floating according to
  * needs.
  */
 pinctrl_adtrg_default: adtrg_default {
  pinmux = <PIN_PD31__ADTRG>;
  bias-pull-up;
 };

 pinctrl_flx4_default: flx4_default {
  pinmux = <PIN_PC28__FLEXCOM4_IO0>,
    <PIN_PC29__FLEXCOM4_IO1>;
  bias-disable;
 };

 pinctrl_can0_default: can0_default {
  pinmux = <PIN_PC10__CANTX0>,
    <PIN_PC11__CANRX0>;
  bias-disable;
 };

 pinctrl_can1_default: can1_default {
  pinmux = <PIN_PC26__CANTX1>,
    <PIN_PC27__CANRX1>;
  bias-disable;
 };

 pinctrl_i2c1_default: i2c1_default {
  pinmux = <PIN_PD19__TWD1>,
    <PIN_PD20__TWCK1>;
  bias-disable;
 };

 pinctrl_i2c1_gpio: i2c1_gpio {
                pinmux = <PIN_PD19__GPIO>,
                         <PIN_PD20__GPIO>;
                bias-disable;
        };

 pinctrl_key_gpio_default: key_gpio_default {
  pinmux = <PIN_PD0__GPIO>;
  bias-pull-up;
 };

 pinctrl_led_gpio_default: led_gpio_default {
  pinmux = <PIN_PB0__GPIO>,
    <PIN_PB1__GPIO>,
    <PIN_PA31__GPIO>;
  bias-pull-up;
 };

 pinctrl_qspi1_default: qspi1_default {
  pinmux = <PIN_PA6__QSPI1_SCK>,
    <PIN_PA7__QSPI1_IO0>,
    <PIN_PA8__QSPI1_IO1>,
    <PIN_PA9__QSPI1_IO2>,
    <PIN_PA10__QSPI1_IO3>,
    <PIN_PA11__QSPI1_CS>;
  bias-disable;
 };

 pinctrl_sdmmc0_default: sdmmc0_default {
  cmd_data {
   pinmux = <PIN_PA1__SDMMC0_CMD>,
     <PIN_PA2__SDMMC0_DAT0>,
     <PIN_PA3__SDMMC0_DAT1>,
     <PIN_PA4__SDMMC0_DAT2>,
     <PIN_PA5__SDMMC0_DAT3>;
   bias-disable;
  };

  ck_cd {
   pinmux = <PIN_PA0__SDMMC0_CK>,
     <PIN_PA13__SDMMC0_CD>;
   bias-disable;
  };
 };

 pinctrl_sdmmc1_default: sdmmc1_default {
  cmd_data {
   pinmux = <PIN_PA18__SDMMC1_DAT0>,
     <PIN_PA19__SDMMC1_DAT1>,
     <PIN_PA20__SDMMC1_DAT2>,
     <PIN_PA21__SDMMC1_DAT3>;
   bias-disable;
  };

  ck_cd {
   pinmux = <PIN_PA22__SDMMC1_CK>,
     <PIN_PA28__SDMMC1_CMD>;
   bias-disable;
  };
 };

 pinctrl_mikrobus_i2c: mikrobus_i2c {
  pinmux = <PIN_PD22__TWCK0>,
    <PIN_PD21__TWD0>;
  bias-disable;
 };

 pinctrl_i2c0_gpio: i2c0_gpio {
  pinmux = <PIN_PD21__GPIO>,
    <PIN_PD22__GPIO>;
  bias-disable;
 };

 pinctrl_mikrobus1_an: mikrobus1_an {
  pinmux = <PIN_PD26__GPIO>;
  bias-disable;
 };

 pinctrl_mikrobus1_rst: mikrobus1_rst {
  pinmux = <PIN_PC5__GPIO>;
  bias-disable;
 };

 pinctrl_mikrobus1_spi_cs: mikrobus1_spi_cs {
  pinmux = <PIN_PC21__FLEXCOM3_IO3>;
  bias-disable;
 };

 pinctrl_mikrobus1_spi: mikrobus1_spi {
  pinmux = <PIN_PC20__FLEXCOM3_IO0>,
    <PIN_PC19__FLEXCOM3_IO1>,
    <PIN_PC18__FLEXCOM3_IO2>;
  bias-disable;
 };

 pinctrl_mikrobus1_pwm: mikrobus1_pwm {
  pinmux = <PIN_PC4__TIOB1>;
  bias-disable;
 };

 pinctrl_mikrobus1_int: mikrobus1_int {
  pinmux = <PIN_PC3__GPIO>;
  bias-disable;
 };

 pinctrl_mikrobus1_uart: mikrobus1_uart {
  pinmux = <PIN_PB26__URXD0>,
    <PIN_PB27__UTXD0>;
  bias-disable;
 };

 pinctrl_mikrobus2_an: mikrobus2_an {
  pinmux = <PIN_PD25__GPIO>;
  bias-disable;
 };

 pinctrl_mikrobus2_rst: mikrobus2_rst {
  pinmux = <PIN_PB24__GPIO>;
  bias-disable;
 };

 pinctrl_mikrobus2_spi_cs: mikrobus2_spi_cs {
  pinmux = <PIN_PB31__FLEXCOM0_IO3>;
  bias-disable;
 };

 pinctrl_mikrobus2_spi: mikrobus2_spi {
  pinmux = <PIN_PB28__FLEXCOM0_IO0>,
    <PIN_PB29__FLEXCOM0_IO1>,
    <PIN_PB30__FLEXCOM0_IO2>;
  bias-disable;
 };

 pinctrl_ksz_spi_cs: ksz_spi_cs {
  pinmux = <PIN_PC0__GPIO>;
  bias-disable;
 };

 pinctrl_mikrobus2_pwm: mikrobus2_pwm {
  pinmux = <PIN_PB23__TIOB2>;
  bias-disable;
 };

 pinctrl_mikrobus2_int: mikrobus2_int {
  pinmux = <PIN_PB22__GPIO>;
  bias-disable;
 };

 pinctrl_mikrobus2_uart: mikrobus2_uart {
  pinmux = <PIN_PC12__URXD3>,
    <PIN_PC13__UTXD3>;
  bias-disable;
 };

 pinctrl_mikrobus3_an: mikrobus3_an {
  pinmux = <PIN_PD24__GPIO>;
  bias-disable;
 };

 pinctrl_mikrobus3_rst: mikrobus3_rst {
  pinmux = <PIN_PB21__GPIO>;
  bias-disable;
 };

 pinctrl_mikrobus3_spi_cs: mikrobus3_spi_cs {
  pinmux = <PIN_PA17__SPI0_NPCS0>;
  bias-disable;
 };

 pinctrl_mikrobus3_spi: mikrobus3_spi {
  pinmux = <PIN_PA14__SPI0_SPCK>,
    <PIN_PA16__SPI0_MISO>,
    <PIN_PA15__SPI0_MOSI>;
  bias-disable;
 };

 pinctrl_mikrobus3_pwm: mikrobus3_pwm {
  pinmux = <PIN_PB20__TIOB3>;
  bias-disable;
 };

 pinctrl_mikrobus3_int: mikrobus3_int {
  pinmux = <PIN_PB18__GPIO>;
  bias-disable;
 };

 pinctrl_mikrobus3_uart: mikrobus3_uart {
  pinmux = <PIN_PC7__URXD1>,
    <PIN_PC8__UTXD1>;
  bias-disable;
 };

 pinctrl_usb_default: usb_default {
  pinmux = <PIN_PC17__GPIO>;
  bias-disable;
 };

 pinctrl_usba_vbus: usba_vbus {
  pinmux = <PIN_PD23__GPIO>;
  bias-disable;
 };

 pinctrl_pwm0_pwm2_default: pwm0_pwm2_default {
  pinmux = <PIN_PB5__PWMH2>,
    <PIN_PB6__PWML2>;
  bias-pull-up;
 };

 pinctrl_macb0_default: macb0_default {
  pinmux = <PIN_PD1__GRXCK>,
    <PIN_PD2__GTXER>,
    <PIN_PD5__GRX2>,
    <PIN_PD6__GRX3>,
    <PIN_PD7__GTX2>,
    <PIN_PD8__GTX3>,
    <PIN_PD9__GTXCK>,
    <PIN_PD10__GTXEN>,
    <PIN_PD11__GRXDV>,
    <PIN_PD12__GRXER>,
    <PIN_PD13__GRX0>,
    <PIN_PD14__GRX1>,
    <PIN_PD15__GTX0>,
    <PIN_PD16__GTX1>,
    <PIN_PD17__GMDC>,
    <PIN_PD18__GMDIO>;
  bias-disable;
 };

 pinctrl_macb0_phy_irq: macb0_phy_irq {
  pinmux = <PIN_PD3__GPIO>;
  bias-disable;
 };

 pinctrl_macb0_rst: macb0_sw_rst {
  pinmux = <PIN_PD4__GPIO>;
  bias-disable;
 };

 pinctrl_flx2_default: flx2_default {
  pinmux = <PIN_PA6__FLEXCOM2_IO0>,
    <PIN_PA7__FLEXCOM2_IO1>,
    <PIN_PA9__FLEXCOM2_IO3>,
    <PIN_PA10__FLEXCOM2_IO4>;
  bias-disable;
 };
};

&pwm0 {
 pinctrl-names = "default";
 pinctrl-0 = <&pinctrl_pwm0_pwm2_default>;
 status = "disabled"; /* conflict with leds, HSIC */
};

&qspi1 {
 pinctrl-names = "default";
 pinctrl-0 = <&pinctrl_qspi1_default>;
 status = "disabled"; /* Conflict with wilc_pwrseq, flx2 */

 flash@0 {
  #address-cells = <1>;
  #size-cells = <1>;
  compatible = "jedec,spi-nor";
  reg = <0>;
  spi-max-frequency = <104000000>;
  spi-cs-setup-delay-ns = <7>;
  spi-tx-bus-width = <4>;
  spi-rx-bus-width = <4>;
  m25p,fast-read;

  at91bootstrap@0 {
   label = "qspi: at91bootstrap";
   reg = <0x00000000 0x00040000>;
  };

  bootloader@40000 {
   label = "qspi: bootloader";
   reg = <0x00040000 0x000c0000>;
  };

  bootloaderenvred@100000 {
   label = "qspi: bootloader env redundant";
   reg = <0x00100000 0x00040000>;
  };

  bootloaderenv@140000 {
   label = "qspi: bootloader env";
   reg = <0x00140000 0x00040000>;
  };

  dtb@180000 {
   label = "qspi: device tree";
   reg = <0x00180000 0x00080000>;
  };

  kernel@200000 {
   label = "qspi: kernel";
   reg = <0x00200000 0x00600000>;
  };
 };
};

&sdmmc0 {
 no-1-8-v;
 bus-width = <4>;
 pinctrl-names = "default";
 pinctrl-0 = <&pinctrl_sdmmc0_default>;
 status = "okay";
};

&shutdown_controller {
 debounce-delay-us = <976>;
 atmel,wakeup-rtc-timer;

 input@0 {
  reg = <0>;
 };
};

&spi0 {  /* mikrobus3 spi */
 pinctrl-names = "default";
 pinctrl-0 = <&pinctrl_mikrobus3_spi &pinctrl_mikrobus3_spi_cs>;
 status = "okay";
};

&tcb0 {
 timer0: timer@0 {
  compatible = "atmel,tcb-timer";
  reg = <0>;
 };

 timer1: timer@1 {
  compatible = "atmel,tcb-timer";
  reg = <1>;
 };
};

&uart0 {
 pinctrl-names = "default";
 pinctrl-0 = <&pinctrl_mikrobus1_uart>;
 atmel,use-dma-rx;
 atmel,use-dma-tx;
 status = "okay";
};

&uart1 {
 pinctrl-names = "default";
 pinctrl-0 = <&pinctrl_mikrobus3_uart>;
 atmel,use-dma-rx;
 atmel,use-dma-tx;
 status = "okay";
};

&uart3 {
 pinctrl-names = "default";
 pinctrl-0 = <&pinctrl_mikrobus2_uart>;
 atmel,use-dma-rx;
 atmel,use-dma-tx;
 status = "okay";
};

&usb0 {
 atmel,vbus-gpio = <&pioA PIN_PD23 GPIO_ACTIVE_HIGH>;
 pinctrl-names = "default";
 pinctrl-0 = <&pinctrl_usba_vbus>;
 status = "okay";
};

&usb1 {
 num-ports = <3>;
 pinctrl-names = "default";
 pinctrl-0 = <&pinctrl_usb_default>;
 status = "okay";
};

&usb2 {
 phy_type = "hsic";
 status = "okay";
};

&watchdog {
 status = "okay";
};

[ Dauer der Verarbeitung: 0.36 Sekunden  ]