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


Quelle  rk3399-puma.dtsi   Sprache: unbekannt

 
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Copyright (c) 2017 Theobroma Systems Design und Consulting GmbH
 */

#include <dt-bindings/pwm/pwm.h>
#include "rk3399.dtsi"

/ {
 aliases {
  ethernet0 = &gmac;
  i2c10 = &i2c10;
  mmc0 = &sdhci;
 };

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

  module_led: led-0 {
   label = "module_led";
   gpios = <&gpio2 RK_PD1 GPIO_ACTIVE_HIGH>;
   linux,default-trigger = "heartbeat";
   panic-indicator;
  };
 };

 extcon_usb3: extcon-usb3 {
  compatible = "linux,extcon-usb-gpio";
  id-gpios = <&gpio1 RK_PC2 GPIO_ACTIVE_HIGH>;
  pinctrl-names = "default";
  pinctrl-0 = <&usb3_id>;
 };

 clkin_gmac: external-gmac-clock {
  compatible = "fixed-clock";
  clock-frequency = <125000000>;
  clock-output-names = "clkin_gmac";
  #clock-cells = <0>;
 };

 vcc1v2_phy: regulator-vcc1v2-phy {
  compatible = "regulator-fixed";
  regulator-name = "vcc1v2_phy";
  regulator-always-on;
  regulator-boot-on;
  regulator-min-microvolt = <1200000>;
  regulator-max-microvolt = <1200000>;
  vin-supply = <&vcc5v0_sys>;
 };

 vcc3v3_sys: regulator-vcc3v3-sys {
  compatible = "regulator-fixed";
  regulator-name = "vcc3v3_sys";
  regulator-always-on;
  regulator-boot-on;
  regulator-min-microvolt = <3300000>;
  regulator-max-microvolt = <3300000>;
  vin-supply = <&vcc5v0_sys>;
 };

 vcc5v0_sys: regulator-vcc5v0-sys {
  compatible = "regulator-fixed";
  regulator-name = "vcc5v0_sys";
  regulator-always-on;
  regulator-boot-on;
  regulator-min-microvolt = <5000000>;
  regulator-max-microvolt = <5000000>;
 };

 vcca_0v9: regulator-vcca-0v9 {
  compatible = "regulator-fixed";
  regulator-name = "vcca_0v9";
  regulator-always-on;
  regulator-boot-on;
  regulator-min-microvolt = <900000>;
  regulator-max-microvolt = <900000>;
  vin-supply = <&vcc_1v8>;
 };

 vcca_1v8: regulator-vcca-1v8 {
  compatible = "regulator-fixed";
  regulator-name = "vcca_1v8";
  regulator-always-on;
  regulator-boot-on;
  regulator-min-microvolt = <1800000>;
  regulator-max-microvolt = <1800000>;
  vin-supply = <&vcc3v3_sys>;
 };

 vdd_log: regulator-vdd-log {
  compatible = "pwm-regulator";
  pwms = <&pwm2 0 25000 1>;
  pwm-supply = <&vcc5v0_sys>;
  regulator-name = "vdd_log";
  regulator-min-microvolt = <800000>;
  regulator-max-microvolt = <1400000>;
  regulator-always-on;
  regulator-boot-on;
 };
};

&cpu_b0 {
 cpu-supply = <&vdd_cpu_b>;
};

&cpu_b1 {
 cpu-supply = <&vdd_cpu_b>;
};

&cpu_l0 {
 cpu-supply = <&vdd_cpu_l>;
};

&cpu_l1 {
 cpu-supply = <&vdd_cpu_l>;
};

&cpu_l2 {
 cpu-supply = <&vdd_cpu_l>;
};

&cpu_l3 {
 cpu-supply = <&vdd_cpu_l>;
};

&emmc_phy {
 status = "okay";
 drive-impedance-ohm = <33>;
};

&gpio0 {
 /*
  * The BIOS_DISABLE hog is a feedback pin for the actual status of the
  * signal. This usually represents the state of a switch on the baseboard.
  * The pin has a 10k pull-up resistor connected, so no pull-up setting is needed.
  */
 bios-disable-hog {
  gpios = <RK_PB0 GPIO_ACTIVE_HIGH>;
  gpio-hog;
  input;
  line-name = "bios_disable";
 };
};

&gpio3 {
 /*
  * The Qseven BIOS_DISABLE signal on the RK3399-Q7 keeps the on-module
  * eMMC and SPI flash powered-down initially (in fact it keeps the
  * reset signal asserted). BIOS_DISABLE_OVERRIDE pin allows to override
  * that signal so that eMMC and SPI can be used regardless of the state
  * of the signal.
  */
 bios-disable-override-hog {
  gpios = <RK_PD5 GPIO_ACTIVE_LOW>;
  gpio-hog;
  line-name = "bios_disable_override";
  output-high;
 };
};

&gmac {
 assigned-clocks = <&cru SCLK_RMII_SRC>;
 assigned-clock-parents = <&clkin_gmac>;
 clock_in_out = "input";
 phy-supply = <&vcc1v2_phy>;
 phy-mode = "rgmii";
 pinctrl-names = "default";
 pinctrl-0 = <&rgmii_pins>;
 snps,reset-gpio = <&gpio3 RK_PC0 GPIO_ACTIVE_LOW>;
 snps,reset-active-low;
 snps,reset-delays-us = <0 10000 50000>;
 tx_delay = <0x10>;
 rx_delay = <0x23>;
};

&gpu {
 mali-supply = <&vdd_gpu>;
 status = "okay";
};

&i2c0 {
 status = "okay";
 i2c-scl-rising-time-ns = <168>;
 i2c-scl-falling-time-ns = <4>;
 clock-frequency = <400000>;

 rk808: pmic@1b {
  compatible = "rockchip,rk808";
  reg = <0x1b>;
  interrupt-parent = <&gpio1>;
  interrupts = <22 IRQ_TYPE_LEVEL_LOW>;
  #clock-cells = <1>;
  clock-output-names = "xin32k", "rk808-clkout2";
  pinctrl-names = "default";
  pinctrl-0 = <&pmic_int_l>;
  system-power-controller;
  wakeup-source;

  vcc1-supply = <&vcc5v0_sys>;
  vcc2-supply = <&vcc5v0_sys>;
  vcc3-supply = <&vcc5v0_sys>;
  vcc4-supply = <&vcc5v0_sys>;
  vcc6-supply = <&vcc5v0_sys>;
  vcc7-supply = <&vcc5v0_sys>;
  vcc8-supply = <&vcc3v3_sys>;
  vcc9-supply = <&vcc5v0_sys>;
  vcc10-supply = <&vcc5v0_sys>;
  vcc11-supply = <&vcc5v0_sys>;
  vcc12-supply = <&vcc3v3_sys>;
  vddio-supply = <&vcc1v8_pmu>;

  regulators {
   vdd_center: DCDC_REG1 {
    regulator-name = "vdd_center";
    regulator-min-microvolt = <750000>;
    regulator-max-microvolt = <1350000>;
    regulator-ramp-delay = <6001>;
    regulator-always-on;
    regulator-boot-on;
    regulator-state-mem {
     regulator-off-in-suspend;
    };
   };

   vdd_cpu_l: DCDC_REG2 {
    regulator-name = "vdd_cpu_l";
    regulator-min-microvolt = <750000>;
    regulator-max-microvolt = <1350000>;
    regulator-ramp-delay = <6001>;
    regulator-always-on;
    regulator-boot-on;
    regulator-state-mem {
     regulator-off-in-suspend;
    };
   };

   vcc_ddr: DCDC_REG3 {
    regulator-name = "vcc_ddr";
    regulator-always-on;
    regulator-boot-on;
    regulator-state-mem {
     regulator-on-in-suspend;
    };
   };

   vcc_1v8: DCDC_REG4 {
    regulator-name = "vcc_1v8";
    regulator-min-microvolt = <1800000>;
    regulator-max-microvolt = <1800000>;
    regulator-always-on;
    regulator-boot-on;
    regulator-state-mem {
     regulator-on-in-suspend;
     regulator-suspend-microvolt = <1800000>;
    };
   };

   vcc_ldo1: LDO_REG1 {
    regulator-name = "vcc_ldo1";
    regulator-min-microvolt = <1800000>;
    regulator-max-microvolt = <1800000>;
    regulator-boot-on;
    regulator-state-mem {
     regulator-off-in-suspend;
    };
   };

   vcc1v8_hdmi: LDO_REG2 {
    regulator-name = "vcc1v8_hdmi";
    regulator-min-microvolt = <1800000>;
    regulator-max-microvolt = <1800000>;
    regulator-always-on;
    regulator-boot-on;
    regulator-state-mem {
     regulator-off-in-suspend;
    };
   };

   vcc1v8_pmu: LDO_REG3 {
    regulator-name = "vcc1v8_pmu";
    regulator-min-microvolt = <1800000>;
    regulator-max-microvolt = <1800000>;
    regulator-always-on;
    regulator-boot-on;
    regulator-state-mem {
     regulator-on-in-suspend;
     regulator-suspend-microvolt = <1800000>;
    };
   };

   vcc_sd: LDO_REG4 {
    regulator-name = "vcc_sd";
    regulator-min-microvolt = <1800000>;
    regulator-max-microvolt = <3000000>;
    regulator-always-on;
    regulator-boot-on;
    regulator-state-mem {
     regulator-on-in-suspend;
     regulator-suspend-microvolt = <3000000>;
    };
   };

   vcc_ldo5: LDO_REG5 {
    regulator-name = "vcc_ldo5";
    regulator-min-microvolt = <3000000>;
    regulator-max-microvolt = <3000000>;
    regulator-boot-on;
    regulator-state-mem {
     regulator-off-in-suspend;
    };
   };

   vcc_ldo6: LDO_REG6 {
    regulator-name = "vcc_ldo6";
    regulator-min-microvolt = <1500000>;
    regulator-max-microvolt = <1500000>;
    regulator-boot-on;
    regulator-state-mem {
     regulator-off-in-suspend;
    };
   };

   vcc0v9_hdmi: LDO_REG7 {
    regulator-name = "vcc0v9_hdmi";
    regulator-min-microvolt = <900000>;
    regulator-max-microvolt = <900000>;
    regulator-always-on;
    regulator-boot-on;
    regulator-state-mem {
     regulator-off-in-suspend;
    };
   };

   vcc_efuse: LDO_REG8 {
    regulator-name = "vcc_efuse";
    regulator-min-microvolt = <1800000>;
    regulator-max-microvolt = <1800000>;
    regulator-always-on;
    regulator-boot-on;
    regulator-state-mem {
     regulator-off-in-suspend;
    };
   };

   vcc3v3_s3: SWITCH_REG1 {
    regulator-name = "vcc3v3_s3";
    regulator-always-on;
    regulator-boot-on;
    regulator-state-mem {
     regulator-off-in-suspend;
    };
   };

   vcc3v3_s0: SWITCH_REG2 {
    regulator-name = "vcc3v3_s0";
    regulator-always-on;
    regulator-boot-on;
    regulator-state-mem {
     regulator-off-in-suspend;
    };
   };
  };
 };

 vdd_gpu: regulator@60 {
  compatible = "fcs,fan53555";
  reg = <0x60>;
  fcs,suspend-voltage-selector = <1>;
  regulator-name = "vdd_gpu";
  regulator-min-microvolt = <600000>;
  regulator-max-microvolt = <1230000>;
  regulator-ramp-delay = <1000>;
  regulator-always-on;
  regulator-boot-on;
  vin-supply = <&vcc5v0_sys>;
 };
};

&hdmi {
 ddc-i2c-bus = <&i2c3>;
};

&i2c6 {
 clock-frequency = <400000>;
};

&i2c7 {
 status = "okay";
 clock-frequency = <400000>;

 fan: fan@18 {
  compatible = "tsd,mule", "ti,amc6821";
  reg = <0x18>;

  i2c-mux {
   compatible = "tsd,mule-i2c-mux";
   #address-cells = <1>;
   #size-cells = <0>;

   i2c10: i2c@0 {
    reg = <0x0>;
    #address-cells = <1>;
    #size-cells = <0>;

    rtc_twi: rtc@6f {
     compatible = "isil,isl1208";
     reg = <0x6f>;
    };
   };
  };
 };
};

&i2c8 {
 status = "okay";
 clock-frequency = <400000>;

 vdd_cpu_b: regulator@60 {
  compatible = "fcs,fan53555";
  reg = <0x60>;
  vin-supply = <&vcc5v0_sys>;
  regulator-name = "vdd_cpu_b";
  regulator-min-microvolt = <600000>;
  regulator-max-microvolt = <1230000>;
  regulator-ramp-delay = <1000>;
  fcs,suspend-voltage-selector = <1>;
  regulator-always-on;
  regulator-boot-on;
 };
};

&i2s0 {
 pinctrl-0 = <&i2s0_2ch_bus>;
 pinctrl-1 = <&i2s0_2ch_bus_bclk_off>;
 rockchip,playback-channels = <2>;
 rockchip,capture-channels = <2>;
};

/*
 * As Q7 does not specify neither a global nor a RX clock for I2S these
 * signals are not used. Furthermore I2S0_LRCK_RX is used as GPIO.
 * Therefore we have to redefine the i2s0_2ch_bus and i2s0_2ch_bus_bclk_off
 * definitions to prevent conflicts.
 */
&i2s0_2ch_bus {
 rockchip,pins =
  <3 RK_PD0 1 &pcfg_pull_none>,
  <3 RK_PD2 1 &pcfg_pull_none>,
  <3 RK_PD3 1 &pcfg_pull_none>,
  <3 RK_PD7 1 &pcfg_pull_none>;
};

&i2s0_2ch_bus_bclk_off {
 rockchip,pins =
  <3 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>,
  <3 RK_PD2 1 &pcfg_pull_none>,
  <3 RK_PD3 1 &pcfg_pull_none>,
  <3 RK_PD7 1 &pcfg_pull_none>;
};

&io_domains {
 status = "okay";
 bt656-supply = <&vcc_1v8>;
 audio-supply = <&vcc_1v8>;
 sdmmc-supply = <&vcc_sd>;
 gpio1830-supply = <&vcc_1v8>;
};

&pcie0 {
 /* PCIe PHY supplies */
 vpcie0v9-supply = <&vcca_0v9>;
 vpcie1v8-supply = <&vcca_1v8>;
};

&pcie_clkreqn_cpm {
 rockchip,pins =
  <2 RK_PD2 RK_FUNC_GPIO &pcfg_pull_up>;
};

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

 gpios {
  bios_disable_override_hog_pin: bios-disable-override-hog-pin {
   rockchip,pins =
    <3 RK_PD5 RK_FUNC_GPIO &pcfg_pull_down>;
  };

  q7_thermal_pin: q7-thermal-pin {
   rockchip,pins =
    <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
  };
 };

 i2c8 {
  i2c8_xfer_a: i2c8-xfer {
   rockchip,pins =
     <1 RK_PC4 1 &pcfg_pull_up>,
     <1 RK_PC5 1 &pcfg_pull_up>;
  };
 };

 leds {
  module_led_pin: module-led-pin {
   rockchip,pins =
     <2 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>;
  };
 };

 pmic {
  pmic_int_l: pmic-int-l {
   rockchip,pins =
     <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_up>;
  };
 };

 usb {
  cy3304_reset: cy3304-reset {
   rockchip,pins =
     <4 RK_PA3 RK_FUNC_GPIO &pcfg_output_high>;
  };
 };

 usb3 {
  usb3_id: usb3-id {
   rockchip,pins =
     <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_up>;
  };
 };
};

&pmu_io_domains {
 status = "okay";
 pmu1830-supply = <&vcc_1v8>;
};

&pwm2 {
 status = "okay";
};

&sdhci {
 /*
  * Signal integrity isn't great at 200MHz but 100MHz has proven stable
  * enough.
  */
 max-frequency = <100000000>;

 bus-width = <8>;
 mmc-hs400-1_8v;
 mmc-hs400-enhanced-strobe;
 non-removable;
 status = "okay";
};

&sdmmc {
 vqmmc-supply = <&vcc_sd>;
};

&spi1 {
 status = "okay";

 norflash: flash@0 {
  compatible = "jedec,spi-nor";
  reg = <0>;
  spi-max-frequency = <50000000>;
 };
};

&tcphy1 {
 status = "okay";
};

&tsadc {
 rockchip,hw-tshut-mode = <1>;
 rockchip,hw-tshut-polarity = <1>;
 status = "okay";
};

&u2phy1 {
 status = "okay";

 u2phy1_otg: otg-port {
  status = "okay";
 };
};

&usbdrd3_1 {
 status = "okay";
};

&usbdrd_dwc3_1 {
 status = "okay";
 dr_mode = "host";
 pinctrl-names = "default";
 pinctrl-0 = <&cy3304_reset>;
 #address-cells = <1>;
 #size-cells = <0>;

 hub_2_0: hub@1 {
  compatible = "usb4b4,6502", "usb4b4,6506";
  reg = <1>;
  peer-hub = <&hub_3_0>;
  reset-gpios = <&gpio4 RK_PA3 GPIO_ACTIVE_HIGH>;
  vdd-supply = <&vcc1v2_phy>;
  vdd2-supply = <&vcc3v3_sys>;

 };

 hub_3_0: hub@2 {
  compatible = "usb4b4,6500", "usb4b4,6504";
  reg = <2>;
  peer-hub = <&hub_2_0>;
  reset-gpios = <&gpio4 RK_PA3 GPIO_ACTIVE_HIGH>;
  vdd-supply = <&vcc1v2_phy>;
  vdd2-supply = <&vcc3v3_sys>;
 };
};

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