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


Quelle  imx28-tx28.dts   Sprache: unbekannt

 
// SPDX-License-Identifier: GPL-2.0 OR MIT
/*
 * Copyright 2012 Shawn Guo <shawn.guo@linaro.org>
 * Copyright 2013-2017 Lothar Waßmann <LW@KARO-electronics.de>
 */

/dts-v1/;
#include "imx28.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/irq.h>

/ {
 model = "Ka-Ro electronics TX28 module";
 compatible = "karo,tx28", "fsl,imx28";

 aliases {
  can0 = &can0;
  can1 = &can1;
  display = &display0;
  ds1339 = &ds1339;
  gpio5 = &gpio5;
  lcdif = &lcdif;
  lcdif_23bit_pins = &tx28_lcdif_23bit_pins;
  lcdif_24bit_pins = &lcdif_24bit_pins_a;
  reg_can_xcvr = ®_can_xcvr;
  spi_gpio = &spi_gpio;
  spi_mxs = &ssp3;
  stk5led = &user_led;
  usbotg = &usb0;
 };

 memory@40000000 {
  device_type = "memory";
  reg = <0x40000000 0>; /* will be filled in by U-Boot */
 };

 onewire {
  compatible = "w1-gpio";
  gpios = <&gpio2 7 GPIO_ACTIVE_HIGH>;
  status = "disabled";
 };

 reg_usb0_vbus: regulator-usb0-vbus {
  compatible = "regulator-fixed";
  regulator-name = "usb0_vbus";
  regulator-min-microvolt = <5000000>;
  regulator-max-microvolt = <5000000>;
  gpio = <&gpio0 18 GPIO_ACTIVE_HIGH>;
  enable-active-high;
 };

 reg_usb1_vbus: regulator-usb1-vbus {
  compatible = "regulator-fixed";
  regulator-name = "usb1_vbus";
  regulator-min-microvolt = <5000000>;
  regulator-max-microvolt = <5000000>;
  gpio = <&gpio3 27 GPIO_ACTIVE_HIGH>;
  enable-active-high;
 };

 reg_2p5v: regulator-2p5v {
  compatible = "regulator-fixed";
  regulator-name = "2P5V";
  regulator-min-microvolt = <2500000>;
  regulator-max-microvolt = <2500000>;
  regulator-always-on;
 };

 reg_3p3v: regulator-3p3v {
  compatible = "regulator-fixed";
  regulator-name = "3P3V";
  regulator-min-microvolt = <3300000>;
  regulator-max-microvolt = <3300000>;
  regulator-always-on;
 };

 reg_can_xcvr: regulator-can-xcvr {
  compatible = "regulator-fixed";
  regulator-name = "CAN XCVR";
  regulator-min-microvolt = <3300000>;
  regulator-max-microvolt = <3300000>;
  gpio = <&gpio1 0 GPIO_ACTIVE_HIGH>;
  pinctrl-names = "default";
  pinctrl-0 = <&tx28_flexcan_xcvr_pins>;
 };

 reg_lcd: regulator-lcd-power {
  compatible = "regulator-fixed";
  regulator-name = "LCD POWER";
  regulator-min-microvolt = <3300000>;
  regulator-max-microvolt = <3300000>;
  gpio = <&gpio1 31 GPIO_ACTIVE_HIGH>;
  enable-active-high;
 };

 reg_lcd_reset: regulator-lcd-reset {
  compatible = "regulator-fixed";
  regulator-name = "LCD RESET";
  regulator-min-microvolt = <3300000>;
  regulator-max-microvolt = <3300000>;
  gpio = <&gpio3 30 GPIO_ACTIVE_HIGH>;
  startup-delay-us = <300000>;
  enable-active-high;
  regulator-always-on;
  regulator-boot-on;
 };

 mclk: clock-mclk {
  compatible = "fixed-clock";
  #clock-cells = <0>;
  clock-frequency = <26000000>;
 };

 sound {
  compatible = "fsl,imx28-tx28-sgtl5000",
        "fsl,mxs-audio-sgtl5000";
  model = "imx28-tx28-sgtl5000";
  saif-controllers = <&saif0 &saif1>;
  audio-codec = <&sgtl5000>;
 };

 leds {
  compatible = "gpio-leds";

  user_led: user {
   label = "Heartbeat";
   gpios = <&gpio4 10 GPIO_ACTIVE_HIGH>;
   linux,default-trigger = "heartbeat";
  };
 };

 backlight {
  compatible = "pwm-backlight";
  pwms = <&pwm 0 500000 0>;
  /*
   * a silly way to create a 1:1 relationship between the
   * PWM value and the actual duty cycle
   */
  brightness-levels = < 0  1  2  3  4  5  6  7  8  9
         10 11 12 13 14 15 16 17 18 19
         20 21 22 23 24 25 26 27 28 29
         30 31 32 33 34 35 36 37 38 39
         40 41 42 43 44 45 46 47 48 49
         50 51 52 53 54 55 56 57 58 59
         60 61 62 63 64 65 66 67 68 69
         70 71 72 73 74 75 76 77 78 79
         80 81 82 83 84 85 86 87 88 89
         90 91 92 93 94 95 96 97 98 99
        100>;
  default-brightness-level = <50>;
 };

 matrix_keypad: matrix-keypad {
  compatible = "gpio-matrix-keypad";
  col-gpios = <
   &gpio5 0 GPIO_ACTIVE_HIGH
   &gpio5 1 GPIO_ACTIVE_HIGH
   &gpio5 2 GPIO_ACTIVE_HIGH
   &gpio5 3 GPIO_ACTIVE_HIGH
  >;
  row-gpios = <
   &gpio5 4 GPIO_ACTIVE_HIGH
   &gpio5 5 GPIO_ACTIVE_HIGH
   &gpio5 6 GPIO_ACTIVE_HIGH
   &gpio5 7 GPIO_ACTIVE_HIGH
  >;
  /* sample keymap */
  linux,keymap = <
   0x00000074 /* row 0, col 0, KEY_POWER */
   0x00010052 /* row 0, col 1, KEY_KP0 */
   0x0002004f /* row 0, col 2, KEY_KP1 */
   0x00030050 /* row 0, col 3, KEY_KP2 */
   0x01000051 /* row 1, col 0, KEY_KP3 */
   0x0101004b /* row 1, col 1, KEY_KP4 */
   0x0102004c /* row 1, col 2, KEY_KP5 */
   0x0103004d /* row 1, col 3, KEY_KP6 */
   0x02000047 /* row 2, col 0, KEY_KP7 */
   0x02010048 /* row 2, col 1, KEY_KP8 */
   0x02020049 /* row 2, col 2, KEY_KP9 */
  >;
  gpio-activelow;
  wakeup-source;
  debounce-delay-ms = <100>;
  col-scan-delay-us = <5000>;
  linux,no-autorepeat;
 };

 spi_gpio: spi {
  compatible = "spi-gpio";
  #address-cells = <1>;
  #size-cells = <0>;
  pinctrl-names = "default";
  pinctrl-0 = <&tx28_spi_gpio_pins>;

  sck-gpios = <&gpio2 24 GPIO_ACTIVE_HIGH>;
  mosi-gpios = <&gpio2 25 GPIO_ACTIVE_HIGH>;
  miso-gpios = <&gpio2 26 GPIO_ACTIVE_HIGH>;
  num-chipselects = <3>;
  cs-gpios = <
   &gpio2 27 GPIO_ACTIVE_LOW
   &gpio3 8 GPIO_ACTIVE_LOW
   &gpio3 9 GPIO_ACTIVE_LOW
  >;
  /* enable this and disable ssp3 below, if you need full duplex SPI transfer */
  status = "disabled";
 };
};

/* 2nd TX-Std UART - (A)UART1  */
&auart1 {
 pinctrl-names = "default";
 pinctrl-0 = <&auart1_pins_a>;
 status = "okay";
};

/* 3rd TX-Std UART - (A)UART3  */
&auart3 {
 pinctrl-names = "default";
 pinctrl-0 = <&auart3_pins_a>;
 status = "okay";
};

&can0 {
 pinctrl-names = "default";
 pinctrl-0 = <&can0_pins_a>;
 xceiver-supply = <®_can_xcvr>;
 status = "okay";
};

&can1 {
 pinctrl-names = "default";
 pinctrl-0 = <&can1_pins_a>;
 xceiver-supply = <®_can_xcvr>;
 status = "okay";
};

&digctl {
 status = "okay";
};

/* 1st TX-Std UART - (D)UART */
&duart {
 pinctrl-names = "default";
 pinctrl-0 = <&duart_4pins_a>;
 status = "okay";
};

&gpmi {
 pinctrl-0 = <&gpmi_pins_a &gpmi_status_cfg>;
 nand-on-flash-bbt;
 status = "okay";
};

&i2c0 {
 pinctrl-names = "default";
 pinctrl-0 = <&i2c0_pins_a>;
 clock-frequency = <400000>;
 status = "okay";

 sgtl5000: sgtl5000@a {
  compatible = "fsl,sgtl5000";
  reg = <0x0a>;
  #sound-dai-cells = <0>;
  VDDA-supply = <®_2p5v>;
  VDDIO-supply = <®_3p3v>;
  clocks = <&mclk>;
 };

 gpio5: pca953x@20 {
  compatible = "nxp,pca9554";
  reg = <0x20>;
  pinctrl-names = "default";
  pinctrl-0 = <&tx28_pca9554_pins>;
  interrupt-parent = <&gpio3>;
  interrupts = <28 IRQ_TYPE_NONE>;
  gpio-controller;
  #gpio-cells = <2>;
  interrupt-controller;
  #interrupt-cells = <2>;
 };

 polytouch: edt-ft5x06@38 {
  compatible = "edt,edt-ft5x06";
  reg = <0x38>;
  pinctrl-names = "default";
  pinctrl-0 = <&tx28_edt_ft5x06_pins>;
  interrupt-parent = <&gpio2>;
  interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
  reset-gpios = <&gpio2 6 GPIO_ACTIVE_LOW>;
  wake-gpios = <&gpio4 9 GPIO_ACTIVE_HIGH>;
  wakeup-source;
 };

 touchscreen: tsc2007@48 {
  compatible = "ti,tsc2007";
  reg = <0x48>;
  pinctrl-names = "default";
  pinctrl-0 = <&tx28_tsc2007_pins>;
  interrupt-parent = <&gpio3>;
  interrupts = <20 IRQ_TYPE_EDGE_FALLING>;
  pendown-gpio = <&gpio3 20 GPIO_ACTIVE_LOW>;
  ti,x-plate-ohms = /bits/ 16 <660>;
 };

 ds1339: rtc@68 {
  compatible = "dallas,ds1339";
  reg = <0x68>;
  trickle-resistor-ohms = <250>;
  trickle-diode-disable;
 };
};

&lcdif {
 pinctrl-names = "default";
 pinctrl-0 = <&lcdif_24bit_pins_a &lcdif_sync_pins_a &tx28_lcdif_ctrl_pins>;
 lcd-supply = <®_lcd>;
 display = <&display0>;
 status = "okay";

 display0: display0 {
  bits-per-pixel = <32>;
  bus-width = <24>;
  display-timings {
   native-mode = <&timing5>;
   timing0: timing0 {
    clock-frequency = <25175000>;
    hactive = <640>;
    vactive = <480>;
    hback-porch = <48>;
    hsync-len = <96>;
    hfront-porch = <16>;
    vback-porch = <33>;
    vsync-len = <2>;
    vfront-porch = <10>;
    hsync-active = <0>;
    vsync-active = <0>;
    de-active = <1>;
    pixelclk-active = <1>;
   };

   timing1: timing1 {
    clock-frequency = <25175000>;
    hactive = <640>;
    vactive = <480>;
    hback-porch = <114>;
    hsync-len = <30>;
    hfront-porch = <16>;
    vback-porch = <32>;
    vsync-len = <3>;
    vfront-porch = <10>;
    hsync-active = <0>;
    vsync-active = <0>;
    de-active = <1>;
    pixelclk-active = <1>;
   };

   timing2: timing2 {
    clock-frequency = <6500000>;
    hactive = <320>;
    vactive = <240>;
    hback-porch = <34>;
    hsync-len = <34>;
    hfront-porch = <20>;
    vback-porch = <15>;
    vsync-len = <3>;
    vfront-porch = <4>;
    hsync-active = <0>;
    vsync-active = <0>;
    de-active = <1>;
    pixelclk-active = <1>;
   };

   timing3: timing3 {
    clock-frequency = <9000000>;
    hactive = <480>;
    vactive = <272>;
    hback-porch = <2>;
    hsync-len = <41>;
    hfront-porch = <2>;
    vback-porch = <2>;
    vsync-len = <10>;
    vfront-porch = <2>;
    hsync-active = <0>;
    vsync-active = <0>;
    de-active = <1>;
    pixelclk-active = <1>;
   };

   timing4: timing4 {
    clock-frequency = <33260000>;
    hactive = <800>;
    vactive = <480>;
    hback-porch = <88>;
    hsync-len = <128>;
    hfront-porch = <40>;
    vback-porch = <33>;
    vsync-len = <2>;
    vfront-porch = <10>;
    hsync-active = <0>;
    vsync-active = <0>;
    de-active = <1>;
    pixelclk-active = <1>;
   };

   timing5: timing5 {
    clock-frequency = <6400000>;
    hactive = <320>;
    vactive = <240>;
    hback-porch = <38>;
    hsync-len = <30>;
    hfront-porch = <30>;
    vback-porch = <16>;
    vsync-len = <3>;
    vfront-porch = <4>;
    hsync-active = <0>;
    vsync-active = <0>;
    de-active = <1>;
    pixelclk-active = <1>;
   };
  };
 };
};

&lradc {
 fsl,lradc-touchscreen-wires = <4>;
 status = "okay";
};

&mac0 {
 phy-mode = "rmii";
 pinctrl-names = "default", "gpio_mode";
 pinctrl-0 = <&mac0_pins_a>;
 pinctrl-1 = <&tx28_mac0_pins_gpio>;
 status = "okay";
};

&mac1 {
 phy-mode = "rmii";
 pinctrl-names = "default";
 pinctrl-0 = <&mac1_pins_a>;
 /* not enabled by default */
};

&mxs_rtc {
 status = "okay";
};

&ocotp {
 status = "okay";
};

&pwm {
 pinctrl-names = "default";
 pinctrl-0 = <&pwm0_pins_a>;
 status = "okay";
};

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

 hog_pins_a: hog@0 {
  reg = <0>;
  fsl,pinmux-ids = <
   MX28_PAD_ENET0_RXD3__GPIO_4_10 /* module LED */
  >;
  fsl,drive-strength = <MXS_DRIVE_4mA>;
  fsl,voltage = <MXS_VOLTAGE_HIGH>;
  fsl,pull-up = <MXS_PULL_DISABLE>;
 };

 tx28_edt_ft5x06_pins: tx28-edt-ft5x06-pins@0 {
  reg = <0>;
  fsl,pinmux-ids = <
   MX28_PAD_SSP0_DATA6__GPIO_2_6 /* RESET */
   MX28_PAD_SSP0_DATA5__GPIO_2_5 /* IRQ */
   MX28_PAD_ENET0_RXD2__GPIO_4_9 /* WAKE */
  >;
  fsl,drive-strength = <MXS_DRIVE_4mA>;
  fsl,voltage = <MXS_VOLTAGE_HIGH>;
  fsl,pull-up = <MXS_PULL_DISABLE>;
 };

 tx28_flexcan_xcvr_pins: tx28-flexcan-xcvr-pins@0 {
  reg = <0>;
  fsl,pinmux-ids = <
   MX28_PAD_LCD_D00__GPIO_1_0
  >;
  fsl,drive-strength = <MXS_DRIVE_4mA>;
  fsl,voltage = <MXS_VOLTAGE_HIGH>;
  fsl,pull-up = <MXS_PULL_DISABLE>;
 };

 tx28_lcdif_23bit_pins: tx28-lcdif-23bit@0 {
  reg = <0>;
  fsl,pinmux-ids = <
   /* LCD_D00 may be used as Flexcan Transceiver Enable on STK5-V5 */
   MX28_PAD_LCD_D01__LCD_D1
   MX28_PAD_LCD_D02__LCD_D2
   MX28_PAD_LCD_D03__LCD_D3
   MX28_PAD_LCD_D04__LCD_D4
   MX28_PAD_LCD_D05__LCD_D5
   MX28_PAD_LCD_D06__LCD_D6
   MX28_PAD_LCD_D07__LCD_D7
   MX28_PAD_LCD_D08__LCD_D8
   MX28_PAD_LCD_D09__LCD_D9
   MX28_PAD_LCD_D10__LCD_D10
   MX28_PAD_LCD_D11__LCD_D11
   MX28_PAD_LCD_D12__LCD_D12
   MX28_PAD_LCD_D13__LCD_D13
   MX28_PAD_LCD_D14__LCD_D14
   MX28_PAD_LCD_D15__LCD_D15
   MX28_PAD_LCD_D16__LCD_D16
   MX28_PAD_LCD_D17__LCD_D17
   MX28_PAD_LCD_D18__LCD_D18
   MX28_PAD_LCD_D19__LCD_D19
   MX28_PAD_LCD_D20__LCD_D20
   MX28_PAD_LCD_D21__LCD_D21
   MX28_PAD_LCD_D22__LCD_D22
   MX28_PAD_LCD_D23__LCD_D23
  >;
  fsl,drive-strength = <MXS_DRIVE_4mA>;
  fsl,voltage = <MXS_VOLTAGE_HIGH>;
  fsl,pull-up = <MXS_PULL_DISABLE>;
 };

 tx28_lcdif_ctrl_pins: tx28-lcdif-ctrl@0 {
  reg = <0>;
  fsl,pinmux-ids = <
   MX28_PAD_LCD_ENABLE__GPIO_1_31 /* Enable */
   MX28_PAD_LCD_RESET__GPIO_3_30  /* Reset */
  >;
  fsl,drive-strength = <MXS_DRIVE_4mA>;
  fsl,voltage = <MXS_VOLTAGE_HIGH>;
  fsl,pull-up = <MXS_PULL_DISABLE>;
 };

 tx28_mac0_pins_gpio: tx28-mac0-gpio-pins@0 {
  reg = <0>;
  fsl,pinmux-ids = <
   MX28_PAD_ENET0_MDC__GPIO_4_0
   MX28_PAD_ENET0_MDIO__GPIO_4_1
   MX28_PAD_ENET0_RX_EN__GPIO_4_2
   MX28_PAD_ENET0_RXD0__GPIO_4_3
   MX28_PAD_ENET0_RXD1__GPIO_4_4
   MX28_PAD_ENET0_TX_EN__GPIO_4_6
   MX28_PAD_ENET0_TXD0__GPIO_4_7
   MX28_PAD_ENET0_TXD1__GPIO_4_8
   MX28_PAD_ENET_CLK__GPIO_4_16
  >;
  fsl,drive-strength = <MXS_DRIVE_4mA>;
  fsl,voltage = <MXS_VOLTAGE_HIGH>;
  fsl,pull-up = <MXS_PULL_DISABLE>;
 };

 tx28_pca9554_pins: tx28-pca9554-pins@0 {
  reg = <0>;
  fsl,pinmux-ids = <
   MX28_PAD_PWM3__GPIO_3_28
  >;
  fsl,drive-strength = <MXS_DRIVE_4mA>;
  fsl,voltage = <MXS_VOLTAGE_HIGH>;
  fsl,pull-up = <MXS_PULL_DISABLE>;
 };

 tx28_spi_gpio_pins: spi-gpiogrp@0 {
  reg = <0>;
  fsl,pinmux-ids = <
   MX28_PAD_AUART2_RX__GPIO_3_8
   MX28_PAD_AUART2_TX__GPIO_3_9
   MX28_PAD_SSP3_SCK__GPIO_2_24
   MX28_PAD_SSP3_MOSI__GPIO_2_25
   MX28_PAD_SSP3_MISO__GPIO_2_26
   MX28_PAD_SSP3_SS0__GPIO_2_27
  >;
  fsl,drive-strength = <MXS_DRIVE_8mA>;
  fsl,voltage = <MXS_VOLTAGE_HIGH>;
  fsl,pull-up = <MXS_PULL_DISABLE>;
 };

 tx28_tsc2007_pins: tx28-tsc2007-pins@0 {
  reg = <0>;
  fsl,pinmux-ids = <
   MX28_PAD_SAIF0_MCLK__GPIO_3_20 /* TSC2007 IRQ */
  >;
  fsl,drive-strength = <MXS_DRIVE_4mA>;
  fsl,voltage = <MXS_VOLTAGE_HIGH>;
  fsl,pull-up = <MXS_PULL_DISABLE>;
 };


 tx28_usbphy0_pins: tx28-usbphy0-pins@0 {
  reg = <0>;
  fsl,pinmux-ids = <
   MX28_PAD_GPMI_CE2N__GPIO_0_18 /* USBOTG_VBUSEN */
   MX28_PAD_GPMI_CE3N__GPIO_0_19 /* USBOTH_OC */
  >;
  fsl,drive-strength = <MXS_DRIVE_12mA>;
  fsl,voltage = <MXS_VOLTAGE_HIGH>;
  fsl,pull-up = <MXS_PULL_DISABLE>;
 };

 tx28_usbphy1_pins: tx28-usbphy1-pins@0 {
  reg = <0>;
  fsl,pinmux-ids = <
   MX28_PAD_SPDIF__GPIO_3_27 /* USBH_VBUSEN */
   MX28_PAD_JTAG_RTCK__GPIO_4_20 /* USBH_OC */
  >;
  fsl,drive-strength = <MXS_DRIVE_12mA>;
  fsl,voltage = <MXS_VOLTAGE_HIGH>;
  fsl,pull-up = <MXS_PULL_DISABLE>;
 };
};

&saif0 {
 pinctrl-names = "default";
 pinctrl-0 = <&saif0_pins_b>;
 status = "okay";
};

&saif1 {
 pinctrl-names = "default";
 pinctrl-0 = <&saif1_pins_a>;
 fsl,saif-master = <&saif0>;
 status = "okay";
};

&ssp0 {
 compatible = "fsl,imx28-mmc";
 pinctrl-names = "default", "special";
 pinctrl-0 = <&mmc0_4bit_pins_a
       &mmc0_cd_cfg
       &mmc0_sck_cfg>;
 bus-width = <4>;
 status = "okay";
};

&ssp3 {
 compatible = "fsl,imx28-spi";
 pinctrl-names = "default";
 pinctrl-0 = <&spi3_pins_a>;
 clock-frequency = <57600000>;
 status = "okay";
};

&usb0 {
 vbus-supply = <®_usb0_vbus>;
 disable-over-current;
 dr_mode = "peripheral";
 phy_type = "utmi";
 status = "okay";
};

&usb1 {
 vbus-supply = <®_usb1_vbus>;
 disable-over-current;
 dr_mode = "host";
 phy_type = "utmi";
 status = "okay";
};

&usbphy0 {
 pinctrl-names = "default";
 pinctrl-0 = <&tx28_usbphy0_pins>;
 status = "okay";
};

&usbphy1 {
 pinctrl-names = "default";
 pinctrl-0 = <&tx28_usbphy1_pins>;
 status = "okay";
};

[ Dauer der Verarbeitung: 0.2 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