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

Quelle  ci20.dts   Sprache: unbekannt

 
// SPDX-License-Identifier: GPL-2.0
/dts-v1/;

#include "jz4780.dtsi"
#include <dt-bindings/clock/ingenic,tcu.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/regulator/active-semi,8865-regulator.h>

/ {
 compatible = "img,ci20", "ingenic,jz4780";

 aliases {
  serial0 = &uart0;
  serial1 = &uart1;
  serial3 = &uart3;
  serial4 = &uart4;
 };

 chosen {
  stdout-path = &uart4;
 };

 memory {
  device_type = "memory";
  reg = <0x0 0x10000000
         0x30000000 0x30000000>;
 };

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

  switch {
   label = "ci20:sw1";
   linux,code = <KEY_F13>;
   gpios = <&gpd 17 GPIO_ACTIVE_HIGH>;
   wakeup-source;
  };
 };

 leds {
  compatible = "gpio-leds";

  led-0 {
   label = "ci20:red:led0";
   gpios = <&gpc 3 GPIO_ACTIVE_HIGH>;
   linux,default-trigger = "none";
  };

  led-1 {
   label = "ci20:red:led1";
   gpios = <&gpc 2 GPIO_ACTIVE_HIGH>;
   linux,default-trigger = "nand-disk";
  };

  led-2 {
   label = "ci20:red:led2";
   gpios = <&gpc 1 GPIO_ACTIVE_HIGH>;
   linux,default-trigger = "cpu1";
  };

  led-3 {
   label = "ci20:red:led3";
   gpios = <&gpc 0 GPIO_ACTIVE_HIGH>;
   linux,default-trigger = "cpu0";
  };
 };

 eth0_power: fixedregulator-0 {
  compatible = "regulator-fixed";

  regulator-name = "eth0_power";
  regulator-min-microvolt = <3300000>;
  regulator-max-microvolt = <3300000>;

  gpio = <&gpb 25 0>;
  enable-active-high;
 };

 hdmi_out: connector {
  compatible = "hdmi-connector";
  label = "HDMI OUT";
  type = "a";

  ddc-en-gpios = <&gpa 25 GPIO_ACTIVE_HIGH>;

  port {
   hdmi_con: endpoint {
    remote-endpoint = <&dw_hdmi_out>;
   };
  };
 };

 ir: ir {
  compatible = "gpio-ir-receiver";
  gpios = <&gpe 3 GPIO_ACTIVE_LOW>;
 };

 bt_power: fixedregulator-1 {
  compatible = "regulator-fixed";

  regulator-name = "bt_power";
  regulator-min-microvolt = <3300000>;
  regulator-max-microvolt = <3300000>;
  regulator-settling-time-us = <1400>;

  vin-supply = <&vcc_50>;

  gpio = <&gpb 19 0>;
  enable-active-high;
 };

 otg_power: fixedregulator-2 {
  compatible = "regulator-fixed";

  regulator-name = "otg_power";
  regulator-min-microvolt = <5000000>;
  regulator-max-microvolt = <5000000>;

  gpio = <&gpf 15 0>;
  enable-active-high;
 };

 wifi_power: fixedregulator-4 {
  compatible = "regulator-fixed";

  regulator-name = "wifi_power";

  /*
   * Technically it's 5V, the WiFi chip has its own internal
   * regulators; but the MMC/SD subsystem won't accept such a
   * value.
   */
  regulator-min-microvolt = <3300000>;
  regulator-max-microvolt = <3300000>;
  regulator-settling-time-us = <150000>;

  vin-supply = <&bt_power>;
 };

 vcc_33v: fixedregulator-5 {
  compatible = "regulator-fixed";

  regulator-name = "vcc_33v";
  regulator-min-microvolt = <3300000>;
  regulator-max-microvolt = <3300000>;
  regulator-always-on;
 };

 wifi_pwrseq: pwrseq {
  compatible = "mmc-pwrseq-simple";
  reset-gpios = <&gpf 7 GPIO_ACTIVE_LOW>;

  clocks = <&rtc_dev>;
  clock-names = "ext_clock";
 };
};

&ext {
 clock-frequency = <48000000>;
};

&cgu {
 /*
  * Use the 32.768 kHz oscillator as the parent of the RTC for a higher
  * precision.
  */
 assigned-clocks = <&cgu JZ4780_CLK_OTGPHY>, <&cgu JZ4780_CLK_RTC>,
     <&cgu JZ4780_CLK_SSIPLL>, <&cgu JZ4780_CLK_SSI>,
     <&cgu JZ4780_CLK_HDMI>, <&cgu JZ4780_CLK_MSCMUX>;
 assigned-clock-parents = <0>, <&cgu JZ4780_CLK_RTCLK>,
     <&cgu JZ4780_CLK_MPLL>,
     <&cgu JZ4780_CLK_SSIPLL>,
     <0>, <&cgu JZ4780_CLK_MPLL>;
 assigned-clock-rates = <48000000>, <0>, <54000000>, <0>, <27000000>;
};

&tcu {
 /*
  * 750 kHz for the system timers and clocksource,
  * use channel #0 and #1 for the per cpu system timers,
  * and use channel #2 for the clocksource.
  *
  * 3000 kHz for the OST timer to provide a higher
  * precision clocksource.
  */
 assigned-clocks = <&tcu TCU_CLK_TIMER0>, <&tcu TCU_CLK_TIMER1>,
       <&tcu TCU_CLK_TIMER2>, <&tcu TCU_CLK_OST>;
 assigned-clock-rates = <750000>, <750000>, <750000>, <3000000>;
};

&mmc0 {
 status = "okay";

 bus-width = <4>;
 max-frequency = <50000000>;

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

 cd-gpios = <&gpf 20 GPIO_ACTIVE_LOW>;
 vmmc-supply = <&vcc_33v>;
 vqmmc-supply = <&vcc_33v>;
};

&mmc1 {
 status = "okay";

 bus-width = <4>;
 max-frequency = <25000000>;
 mmc-pwrseq = <&wifi_pwrseq>;
 vmmc-supply = <&wifi_power>;
 vqmmc-supply = <&wifi_io>;
 non-removable;

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

 #address-cells = <1>;
 #size-cells = <0>;

 wifi@1 {
  compatible = "brcm,bcm4329-fmac";
  reg = <1>;

  interrupt-parent = <&gpd>;
  interrupts = <9 IRQ_TYPE_EDGE_FALLING>;
  interrupt-names = "host-wake";
 };
};

&uart0 {
 status = "okay";

 pinctrl-names = "default";
 pinctrl-0 = <&pins_uart0>;
};

&uart1 {
 status = "okay";

 pinctrl-names = "default";
 pinctrl-0 = <&pins_uart1>;
};

&uart2 {
 status = "okay";

 pinctrl-names = "default";
 pinctrl-0 = <&pins_uart2>;
 uart-has-rtscts;

 bluetooth {
  compatible = "brcm,bcm4330-bt";

  vbat-supply = <&bt_power>;
  vddio-supply = <&wifi_io>;

  interrupt-parent = <&gpf>;
  interrupts = <6 IRQ_TYPE_EDGE_RISING>;
  interrupt-names = "host-wakeup";

  clocks = <&rtc_dev>;
  clock-names = "lpo";

  reset-gpios = <&gpf 8 GPIO_ACTIVE_LOW>;
  device-wakeup-gpios = <&gpf 5 GPIO_ACTIVE_HIGH>;
  shutdown-gpios = <&gpf 4 GPIO_ACTIVE_HIGH>;
 };
};

&uart3 {
 status = "okay";

 pinctrl-names = "default";
 pinctrl-0 = <&pins_uart3>;
};

&uart4 {
 status = "okay";

 pinctrl-names = "default";
 pinctrl-0 = <&pins_uart4>;
};

&i2c0 {
 status = "okay";

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

 clock-frequency = <400000>;

 act8600: act8600@5a {
  compatible = "active-semi,act8600";
  reg = <0x5a>;

  regulators {
   vddcore: DCDC1 {
    regulator-min-microvolt = <1125000>;
    regulator-max-microvolt = <1125000>;
    vp1-supply = <&vcc_33v>;
    regulator-always-on;
   };
   vddmem: DCDC2 {
    regulator-min-microvolt = <1500000>;
    regulator-max-microvolt = <1500000>;
    vp2-supply = <&vcc_33v>;
    regulator-always-on;
   };
   vcc_33: DCDC3 {
    regulator-min-microvolt = <3300000>;
    regulator-max-microvolt = <3300000>;
    vp3-supply = <&vcc_33v>;
    regulator-always-on;
   };
   vcc_50: SUDCDC_REG4 {
    regulator-min-microvolt = <5000000>;
    regulator-max-microvolt = <5000000>;
    regulator-always-on;
   };
   vcc_25: LDO5 {
    regulator-min-microvolt = <2500000>;
    regulator-max-microvolt = <2500000>;
    inl-supply = <&vcc_33v>;
    regulator-always-on;
   };
   wifi_io: LDO6 {
    regulator-min-microvolt = <1800000>;
    regulator-max-microvolt = <1800000>;
    regulator-settling-time-us = <150000>;
    inl-supply = <&vcc_33v>;
   };
   cim_io_28: LDO7 {
    regulator-min-microvolt = <2800000>;
    regulator-max-microvolt = <2800000>;
    inl-supply = <&vcc_33v>;
   };
   cim_io_15: LDO8 {
    regulator-min-microvolt = <1500000>;
    regulator-max-microvolt = <1500000>;
    inl-supply = <&vcc_33v>;
   };
   vrtc_18: LDO_REG9 {
    /* Despite the datasheet stating 3.3V
     * for REG9 and the driver expecting that,
     * REG9 outputs 1.8V.
     * Likely the CI20 uses a proprietary
     * factory programmed chip variant.
     * Since this is a simple on/off LDO the
     * exact values do not matter.
     */
    regulator-min-microvolt = <3300000>;
    regulator-max-microvolt = <3300000>;
    regulator-always-on;
   };
   vcc_11: LDO_REG10 {
    regulator-min-microvolt = <1200000>;
    regulator-max-microvolt = <1200000>;
    regulator-always-on;
   };
  };
 };
};

&i2c1 {
 status = "okay";

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

};

&i2c2 {
 status = "okay";

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

};

&i2c3 {
 status = "okay";

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

};

&i2c4 {
 status = "okay";

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

 clock-frequency = <400000>;

  rtc@51 {
   compatible = "nxp,pcf8563";
   reg = <0x51>;

   interrupt-parent = <&gpf>;
   interrupts = <30 IRQ_TYPE_LEVEL_LOW>;
  };
};

&nemc {
 status = "okay";

 nandc: nand-controller@1 {
  compatible = "ingenic,jz4780-nand";
  reg = <1 0 0x1000000>;

  #address-cells = <1>;
  #size-cells = <0>;

  ecc-engine = <&bch>;

  ingenic,nemc-tAS = <10>;
  ingenic,nemc-tAH = <5>;
  ingenic,nemc-tBP = <10>;
  ingenic,nemc-tAW = <15>;
  ingenic,nemc-tSTRV = <100>;

  /*
   * Only CLE/ALE are needed for the devices that are connected, rather
   * than the full address line set.
   */
  pinctrl-names = "default";
  pinctrl-0 = <&pins_nemc>;

  nand@1 {
   reg = <1>;

   nand-ecc-step-size = <1024>;
   nand-ecc-strength = <24>;
   nand-ecc-mode = "hw";
   nand-on-flash-bbt;

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

   partitions {
    compatible = "fixed-partitions";
    #address-cells = <2>;
    #size-cells = <2>;

    partition@0 {
     label = "u-boot-spl";
     reg = <0x0 0x0 0x0 0x800000>;
    };

    partition@800000 {
     label = "u-boot";
     reg = <0x0 0x800000 0x0 0x200000>;
    };

    partition@a00000 {
     label = "u-boot-env";
     reg = <0x0 0xa00000 0x0 0x200000>;
    };

    partition@c00000 {
     label = "boot";
     reg = <0x0 0xc00000 0x0 0x4000000>;
    };

    partition@4c00000 {
     label = "system";
     reg = <0x0 0x4c00000 0x1 0xfb400000>;
    };
   };
  };
 };

 dm9000@6 {
  compatible = "davicom,dm9000";
  davicom,no-eeprom;

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

  reg = <6 0 1>, /* addr */
        <6 2 1>; /* data */

  ingenic,nemc-tAS = <15>;
  ingenic,nemc-tAH = <10>;
  ingenic,nemc-tBP = <20>;
  ingenic,nemc-tAW = <50>;
  ingenic,nemc-tSTRV = <100>;

  reset-gpios = <&gpf 12 GPIO_ACTIVE_LOW>;
  vcc-supply = <ð0_power>;

  interrupt-parent = <&gpe>;
  interrupts = <19 IRQ_TYPE_EDGE_RISING>;

  nvmem-cells = <ð0_addr>;
  nvmem-cell-names = "mac-address";
 };
};

&bch {
 status = "okay";
};

&otg_phy {
 status = "okay";

 vcc-supply = <&otg_power>;
};

&otg {
 status = "okay";
};

&pinctrl {
 pins_uart0: uart0 {
  function = "uart0";
  groups = "uart0-data";
  bias-disable;
 };

 pins_uart1: uart1 {
  function = "uart1";
  groups = "uart1-data";
  bias-disable;
 };

 pins_uart2: uart2 {
  function = "uart2";
  groups = "uart2-data", "uart2-hwflow";
  bias-disable;
 };

 pins_uart3: uart3 {
  function = "uart3";
  groups = "uart3-data", "uart3-hwflow";
  bias-disable;
 };

 pins_uart4: uart4 {
  function = "uart4";
  groups = "uart4-data";
  bias-disable;
 };

 pins_i2c0: i2c0 {
  function = "i2c0";
  groups = "i2c0-data";
  bias-disable;
 };

 pins_i2c1: i2c1 {
  function = "i2c1";
  groups = "i2c1-data";
  bias-disable;
 };

 pins_i2c2: i2c2 {
  function = "i2c2";
  groups = "i2c2-data";
  bias-disable;
 };

 pins_i2c3: i2c3 {
  function = "i2c3";
  groups = "i2c3-data";
  bias-disable;
 };

 pins_i2c4: i2c4 {
  function = "i2c4";
  groups = "i2c4-data-e";
  bias-disable;
 };

 pins_hdmi_ddc: hdmi_ddc {
  function = "hdmi-ddc";
  groups = "hdmi-ddc";
  bias-disable;
 };

 pins_nemc: nemc {
  function = "nemc";
  groups = "nemc-data", "nemc-cle-ale", "nemc-rd-we", "nemc-frd-fwe";
  bias-disable;
 };

 pins_nemc_cs1: nemc-cs1 {
  function = "nemc-cs1";
  groups = "nemc-cs1";
  bias-disable;
 };

 pins_nemc_cs6: nemc-cs6 {
  function = "nemc-cs6";
  groups = "nemc-cs6";
  bias-disable;
 };

 pins_mmc0: mmc0 {
  function = "mmc0";
  groups = "mmc0-1bit-e", "mmc0-4bit-e";
  bias-disable;
 };

 pins_mmc1: mmc1 {
  function = "mmc1";
  groups = "mmc1-1bit-d", "mmc1-4bit-d";
  bias-disable;
 };
};

&hdmi {
 status = "okay";

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

 ports {
  #address-cells = <1>;
  #size-cells = <0>;

  port@0 {
   reg = <0>;
   dw_hdmi_in: endpoint {
    remote-endpoint = <&lcd_out>;
   };
  };

  port@1 {
   reg = <1>;
   dw_hdmi_out: endpoint {
    remote-endpoint = <&hdmi_con>;
   };
  };
 };
};

&lcdc0 {
 status = "okay";

 port {
  lcd_out: endpoint {
   remote-endpoint = <&dw_hdmi_in>;
  };
 };
};

[ Dauer der Verarbeitung: 0.12 Sekunden  (vorverarbeitet)  ]