The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/device-tree/src/arm64/rockchip/rk3399-sapphire.dtsi

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
    2 /*
    3  * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd.
    4  */
    5 
    6 #include "dt-bindings/pwm/pwm.h"
    7 #include "dt-bindings/input/input.h"
    8 #include "rk3399.dtsi"
    9 #include "rk3399-opp.dtsi"
   10 
   11 / {
   12         compatible = "rockchip,rk3399-sapphire", "rockchip,rk3399";
   13 
   14         aliases {
   15                 mmc0 = &sdmmc;
   16                 mmc1 = &sdhci;
   17         };
   18 
   19         chosen {
   20                 stdout-path = "serial2:1500000n8";
   21         };
   22 
   23         clkin_gmac: external-gmac-clock {
   24                 compatible = "fixed-clock";
   25                 clock-frequency = <125000000>;
   26                 clock-output-names = "clkin_gmac";
   27                 #clock-cells = <0>;
   28         };
   29 
   30         dc_12v: dc-12v {
   31                 compatible = "regulator-fixed";
   32                 regulator-name = "dc_12v";
   33                 regulator-always-on;
   34                 regulator-boot-on;
   35                 regulator-min-microvolt = <12000000>;
   36                 regulator-max-microvolt = <12000000>;
   37         };
   38 
   39         /*
   40          * The fan power supply comes from the baseboard.
   41          * For the standalone Sapphire one option is to connect a wire
   42          * from  R90030 DNP R0805 pin2  to  C90002 10uF C0805 pin1 (vcc_sys).
   43          */
   44         fan0: gpio-fan {
   45                 #cooling-cells = <2>;
   46                 compatible = "gpio-fan";
   47                 gpio-fan,speed-map = <0 0 3000 1>;
   48                 gpios = <&gpio1 RK_PC2 GPIO_ACTIVE_HIGH>;
   49                 status = "okay";
   50         };
   51 
   52         keys: gpio-keys {
   53                 compatible = "gpio-keys";
   54                 autorepeat;
   55 
   56                 key-power {
   57                         debounce-interval = <100>;
   58                         gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
   59                         label = "GPIO Power";
   60                         linux,code = <KEY_POWER>;
   61                         linux,input-type = <1>;
   62                         pinctrl-names = "default";
   63                         pinctrl-0 = <&pwr_btn>;
   64                         wakeup-source;
   65                 };
   66         };
   67 
   68         /* switched by pmic_sleep */
   69         vcc1v8_s3: vcca1v8_s3: vcc1v8-s3 {
   70                 compatible = "regulator-fixed";
   71                 regulator-name = "vcc1v8_s3";
   72                 regulator-always-on;
   73                 regulator-boot-on;
   74                 regulator-min-microvolt = <1800000>;
   75                 regulator-max-microvolt = <1800000>;
   76                 vin-supply = <&vcc_1v8>;
   77         };
   78 
   79         vcc3v0_sd: vcc3v0-sd {
   80                 compatible = "regulator-fixed";
   81                 enable-active-high;
   82                 gpio = <&gpio0 RK_PA1 GPIO_ACTIVE_HIGH>;
   83                 pinctrl-names = "default";
   84                 pinctrl-0 = <&sdmmc0_pwr_h>;
   85                 regulator-always-on;
   86                 regulator-max-microvolt = <3000000>;
   87                 regulator-min-microvolt = <3000000>;
   88                 regulator-name = "vcc3v0_sd";
   89                 vin-supply = <&vcc3v3_sys>;
   90         };
   91 
   92         vcc3v3_sys: vcc3v3-sys {
   93                 compatible = "regulator-fixed";
   94                 regulator-name = "vcc3v3_sys";
   95                 regulator-always-on;
   96                 regulator-boot-on;
   97                 regulator-min-microvolt = <3300000>;
   98                 regulator-max-microvolt = <3300000>;
   99                 vin-supply = <&vcc_sys>;
  100         };
  101 
  102         vcc5v0_host: vcc5v0-host-regulator {
  103                 compatible = "regulator-fixed";
  104                 enable-active-high;
  105                 gpio = <&gpio4 RK_PD1 GPIO_ACTIVE_HIGH>;
  106                 pinctrl-names = "default";
  107                 pinctrl-0 = <&vcc5v0_host_en>;
  108                 regulator-name = "vcc5v0_host";
  109                 regulator-always-on;
  110                 vin-supply = <&vcc_sys>;
  111         };
  112 
  113         vcc5v0_typec0: vcc5v0-typec0-regulator {
  114                 compatible = "regulator-fixed";
  115                 enable-active-high;
  116                 gpio = <&gpio2 RK_PA0 GPIO_ACTIVE_HIGH>;
  117                 pinctrl-names = "default";
  118                 pinctrl-0 = <&vcc5v0_typec0_en>;
  119                 regulator-name = "vcc5v0_typec0";
  120                 vin-supply = <&vcc_sys>;
  121         };
  122 
  123         vcc_sys: vcc-sys {
  124                 compatible = "regulator-fixed";
  125                 regulator-name = "vcc_sys";
  126                 regulator-always-on;
  127                 regulator-boot-on;
  128                 regulator-min-microvolt = <5000000>;
  129                 regulator-max-microvolt = <5000000>;
  130                 vin-supply = <&dc_12v>;
  131         };
  132 
  133         vdd_log: vdd-log {
  134                 compatible = "pwm-regulator";
  135                 pwms = <&pwm2 0 25000 1>;
  136                 pwm-supply = <&vcc_sys>;
  137                 regulator-name = "vdd_log";
  138                 regulator-always-on;
  139                 regulator-boot-on;
  140                 regulator-min-microvolt = <800000>;
  141                 regulator-max-microvolt = <1400000>;
  142         };
  143 };
  144 
  145 &cpu_l0 {
  146         cpu-supply = <&vdd_cpu_l>;
  147 };
  148 
  149 &cpu_l1 {
  150         cpu-supply = <&vdd_cpu_l>;
  151 };
  152 
  153 &cpu_l2 {
  154         cpu-supply = <&vdd_cpu_l>;
  155 };
  156 
  157 &cpu_l3 {
  158         cpu-supply = <&vdd_cpu_l>;
  159 };
  160 
  161 &cpu_b0 {
  162         cpu-supply = <&vdd_cpu_b>;
  163 };
  164 
  165 &cpu_b1 {
  166         cpu-supply = <&vdd_cpu_b>;
  167 };
  168 
  169 &cpu_thermal {
  170         trips {
  171                 cpu_hot: cpu_hot {
  172                         hysteresis = <10000>;
  173                         temperature = <55000>;
  174                         type = "active";
  175                 };
  176         };
  177 
  178         cooling-maps {
  179                 map2 {
  180                         cooling-device =
  181                                 <&fan0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
  182                         trip = <&cpu_hot>;
  183                 };
  184         };
  185 };
  186 
  187 &emmc_phy {
  188         status = "okay";
  189 };
  190 
  191 &gmac {
  192         assigned-clocks = <&cru SCLK_RMII_SRC>;
  193         assigned-clock-parents = <&clkin_gmac>;
  194         clock_in_out = "input";
  195         phy-supply = <&vcc_lan>;
  196         phy-mode = "rgmii";
  197         pinctrl-names = "default";
  198         pinctrl-0 = <&rgmii_pins>;
  199         snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
  200         snps,reset-active-low;
  201         snps,reset-delays-us = <0 10000 50000>;
  202         tx_delay = <0x28>;
  203         rx_delay = <0x11>;
  204         status = "okay";
  205 };
  206 
  207 &gpu {
  208         mali-supply = <&vdd_gpu>;
  209         status = "okay";
  210 };
  211 
  212 &hdmi {
  213         ddc-i2c-bus = <&i2c3>;
  214         status = "okay";
  215 };
  216 
  217 &hdmi_sound {
  218         status = "okay";
  219 };
  220 
  221 &i2c0 {
  222         clock-frequency = <400000>;
  223         i2c-scl-rising-time-ns = <168>;
  224         i2c-scl-falling-time-ns = <4>;
  225         status = "okay";
  226 
  227         rk808: pmic@1b {
  228                 compatible = "rockchip,rk808";
  229                 reg = <0x1b>;
  230                 interrupt-parent = <&gpio1>;
  231                 interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
  232                 #clock-cells = <1>;
  233                 clock-output-names = "xin32k", "rk808-clkout2";
  234                 pinctrl-names = "default";
  235                 pinctrl-0 = <&pmic_int_l>;
  236                 rockchip,system-power-controller;
  237                 wakeup-source;
  238 
  239                 vcc1-supply = <&vcc_sys>;
  240                 vcc2-supply = <&vcc_sys>;
  241                 vcc3-supply = <&vcc_sys>;
  242                 vcc4-supply = <&vcc_sys>;
  243                 vcc6-supply = <&vcc_sys>;
  244                 vcc7-supply = <&vcc_sys>;
  245                 vcc8-supply = <&vcc3v3_sys>;
  246                 vcc9-supply = <&vcc_sys>;
  247                 vcc10-supply = <&vcc_sys>;
  248                 vcc11-supply = <&vcc_sys>;
  249                 vcc12-supply = <&vcc3v3_sys>;
  250                 vddio-supply = <&vcc1v8_pmu>;
  251 
  252                 regulators {
  253                         vdd_center: DCDC_REG1 {
  254                                 regulator-name = "vdd_center";
  255                                 regulator-always-on;
  256                                 regulator-boot-on;
  257                                 regulator-min-microvolt = <750000>;
  258                                 regulator-max-microvolt = <1350000>;
  259                                 regulator-ramp-delay = <6001>;
  260                                 regulator-state-mem {
  261                                         regulator-off-in-suspend;
  262                                 };
  263                         };
  264 
  265                         vdd_cpu_l: DCDC_REG2 {
  266                                 regulator-name = "vdd_cpu_l";
  267                                 regulator-always-on;
  268                                 regulator-boot-on;
  269                                 regulator-min-microvolt = <750000>;
  270                                 regulator-max-microvolt = <1350000>;
  271                                 regulator-ramp-delay = <6001>;
  272                                 regulator-state-mem {
  273                                         regulator-off-in-suspend;
  274                                 };
  275                         };
  276 
  277                         vcc_ddr: DCDC_REG3 {
  278                                 regulator-name = "vcc_ddr";
  279                                 regulator-always-on;
  280                                 regulator-boot-on;
  281                                 regulator-state-mem {
  282                                         regulator-on-in-suspend;
  283                                 };
  284                         };
  285 
  286                         vcc_1v8: DCDC_REG4 {
  287                                 regulator-name = "vcc_1v8";
  288                                 regulator-always-on;
  289                                 regulator-boot-on;
  290                                 regulator-min-microvolt = <1800000>;
  291                                 regulator-max-microvolt = <1800000>;
  292                                 regulator-state-mem {
  293                                         regulator-on-in-suspend;
  294                                         regulator-suspend-microvolt = <1800000>;
  295                                 };
  296                         };
  297 
  298                         vcc1v8_dvp: LDO_REG1 {
  299                                 regulator-name = "vcc1v8_dvp";
  300                                 regulator-always-on;
  301                                 regulator-boot-on;
  302                                 regulator-min-microvolt = <1800000>;
  303                                 regulator-max-microvolt = <1800000>;
  304                                 regulator-state-mem {
  305                                         regulator-off-in-suspend;
  306                                 };
  307                         };
  308 
  309                         vcc3v0_tp: LDO_REG2 {
  310                                 regulator-name = "vcc3v0_tp";
  311                                 regulator-always-on;
  312                                 regulator-boot-on;
  313                                 regulator-min-microvolt = <3000000>;
  314                                 regulator-max-microvolt = <3000000>;
  315                                 regulator-state-mem {
  316                                         regulator-off-in-suspend;
  317                                 };
  318                         };
  319 
  320                         vcc1v8_pmu: LDO_REG3 {
  321                                 regulator-name = "vcc1v8_pmu";
  322                                 regulator-always-on;
  323                                 regulator-boot-on;
  324                                 regulator-min-microvolt = <1800000>;
  325                                 regulator-max-microvolt = <1800000>;
  326                                 regulator-state-mem {
  327                                         regulator-on-in-suspend;
  328                                         regulator-suspend-microvolt = <1800000>;
  329                                 };
  330                         };
  331 
  332                         vcc_sdio: LDO_REG4 {
  333                                 regulator-name = "vcc_sdio";
  334                                 regulator-always-on;
  335                                 regulator-boot-on;
  336                                 regulator-min-microvolt = <1800000>;
  337                                 regulator-max-microvolt = <3300000>;
  338                                 regulator-state-mem {
  339                                         regulator-on-in-suspend;
  340                                         regulator-suspend-microvolt = <3000000>;
  341                                 };
  342                         };
  343 
  344                         vcca3v0_codec: LDO_REG5 {
  345                                 regulator-name = "vcca3v0_codec";
  346                                 regulator-always-on;
  347                                 regulator-boot-on;
  348                                 regulator-min-microvolt = <3000000>;
  349                                 regulator-max-microvolt = <3000000>;
  350                                 regulator-state-mem {
  351                                         regulator-off-in-suspend;
  352                                 };
  353                         };
  354 
  355                         vcc_1v5: LDO_REG6 {
  356                                 regulator-name = "vcc_1v5";
  357                                 regulator-always-on;
  358                                 regulator-boot-on;
  359                                 regulator-min-microvolt = <1500000>;
  360                                 regulator-max-microvolt = <1500000>;
  361                                 regulator-state-mem {
  362                                         regulator-on-in-suspend;
  363                                         regulator-suspend-microvolt = <1500000>;
  364                                 };
  365                         };
  366 
  367                         vcca1v8_codec: LDO_REG7 {
  368                                 regulator-name = "vcca1v8_codec";
  369                                 regulator-always-on;
  370                                 regulator-boot-on;
  371                                 regulator-min-microvolt = <1800000>;
  372                                 regulator-max-microvolt = <1800000>;
  373                                 regulator-state-mem {
  374                                         regulator-off-in-suspend;
  375                                 };
  376                         };
  377 
  378                         vcc_3v0: LDO_REG8 {
  379                                 regulator-name = "vcc_3v0";
  380                                 regulator-always-on;
  381                                 regulator-boot-on;
  382                                 regulator-min-microvolt = <3000000>;
  383                                 regulator-max-microvolt = <3000000>;
  384                                 regulator-state-mem {
  385                                         regulator-on-in-suspend;
  386                                         regulator-suspend-microvolt = <3000000>;
  387                                 };
  388                         };
  389 
  390                         vcc3v3_s3: vcc_lan: SWITCH_REG1 {
  391                                 regulator-name = "vcc3v3_s3";
  392                                 regulator-always-on;
  393                                 regulator-boot-on;
  394                                 regulator-state-mem {
  395                                         regulator-off-in-suspend;
  396                                 };
  397                         };
  398 
  399                         vcc3v3_s0: SWITCH_REG2 {
  400                                 regulator-name = "vcc3v3_s0";
  401                                 regulator-always-on;
  402                                 regulator-boot-on;
  403                                 regulator-state-mem {
  404                                         regulator-off-in-suspend;
  405                                 };
  406                         };
  407                 };
  408         };
  409 
  410         vdd_cpu_b: regulator@40 {
  411                 compatible = "silergy,syr827";
  412                 reg = <0x40>;
  413                 fcs,suspend-voltage-selector = <1>;
  414                 regulator-name = "vdd_cpu_b";
  415                 regulator-min-microvolt = <712500>;
  416                 regulator-max-microvolt = <1500000>;
  417                 regulator-ramp-delay = <1000>;
  418                 regulator-always-on;
  419                 regulator-boot-on;
  420                 vin-supply = <&vcc_sys>;
  421 
  422                 regulator-state-mem {
  423                         regulator-off-in-suspend;
  424                 };
  425         };
  426 
  427         vdd_gpu: regulator@41 {
  428                 compatible = "silergy,syr828";
  429                 reg = <0x41>;
  430                 fcs,suspend-voltage-selector = <1>;
  431                 regulator-name = "vdd_gpu";
  432                 regulator-min-microvolt = <712500>;
  433                 regulator-max-microvolt = <1500000>;
  434                 regulator-ramp-delay = <1000>;
  435                 regulator-always-on;
  436                 regulator-boot-on;
  437                 vin-supply = <&vcc_sys>;
  438 
  439                 regulator-state-mem {
  440                         regulator-off-in-suspend;
  441                 };
  442         };
  443 };
  444 
  445 &i2c3 {
  446         i2c-scl-rising-time-ns = <450>;
  447         i2c-scl-falling-time-ns = <15>;
  448         status = "okay";
  449 };
  450 
  451 &i2s2 {
  452         status = "okay";
  453 };
  454 
  455 &io_domains {
  456         status = "okay";
  457 
  458         bt656-supply = <&vcc_3v0>;
  459         audio-supply = <&vcca1v8_codec>;
  460         sdmmc-supply = <&vcc_sdio>;
  461         gpio1830-supply = <&vcc_3v0>;
  462 };
  463 
  464 &pmu_io_domains {
  465         pmu1830-supply = <&vcc_3v0>;
  466         status = "okay";
  467 };
  468 
  469 &pinctrl {
  470         buttons {
  471                 pwr_btn: pwr-btn {
  472                         rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
  473                 };
  474         };
  475 
  476         fan {
  477                 motor_pwr: motor-pwr {
  478                         rockchip,pins =
  479                                 <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
  480                 };
  481         };
  482 
  483         pmic {
  484                 pmic_int_l: pmic-int-l {
  485                         rockchip,pins =
  486                                 <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
  487                 };
  488 
  489                 vsel1_pin: vsel1-pin {
  490                         rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>;
  491                 };
  492 
  493                 vsel2_pin: vsel2-pin {
  494                         rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
  495                 };
  496         };
  497 
  498         sd {
  499                 sdmmc0_pwr_h: sdmmc0-pwr-h {
  500                         rockchip,pins =
  501                                 <0 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;
  502                 };
  503         };
  504 
  505         usb2 {
  506                 vcc5v0_host_en: vcc5v0-host-en {
  507                         rockchip,pins =
  508                                 <4 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>;
  509                 };
  510                 vcc5v0_typec0_en: vcc5v0-typec0-en {
  511                         rockchip,pins =
  512                                 <2 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
  513                 };
  514         };
  515 };
  516 
  517 &pwm0 {
  518         status = "okay";
  519 };
  520 
  521 &pwm2 {
  522         status = "okay";
  523 };
  524 
  525 &saradc {
  526         vref-supply = <&vcca1v8_s3>;
  527         status = "okay";
  528 };
  529 
  530 &sdhci {
  531         bus-width = <8>;
  532         mmc-hs400-1_8v;
  533         mmc-hs400-enhanced-strobe;
  534         non-removable;
  535         status = "okay";
  536 };
  537 
  538 &sdmmc {
  539         broken-cd;
  540         bus-width = <4>;
  541         cap-mmc-highspeed;
  542         cap-sd-highspeed;
  543         clock-frequency = <150000000>;
  544         disable-wp;
  545         max-frequency = <150000000>;
  546         pinctrl-names = "default";
  547         pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
  548         vmmc-supply = <&vcc3v0_sd>;
  549         vqmmc-supply = <&vcc_sdio>;
  550         status = "okay";
  551 };
  552 
  553 &tcphy0 {
  554         status = "okay";
  555 };
  556 
  557 &tcphy1 {
  558         status = "okay";
  559 };
  560 
  561 &tsadc {
  562         /* tshut mode 0:CRU 1:GPIO */
  563         rockchip,hw-tshut-mode = <1>;
  564         /* tshut polarity 0:LOW 1:HIGH */
  565         rockchip,hw-tshut-polarity = <1>;
  566         status = "okay";
  567 };
  568 
  569 &u2phy0 {
  570         status = "okay";
  571 
  572         u2phy0_otg: otg-port {
  573                 status = "okay";
  574         };
  575 
  576         u2phy0_host: host-port {
  577                 phy-supply = <&vcc5v0_typec0>;
  578                 status = "okay";
  579         };
  580 };
  581 
  582 &u2phy1 {
  583         status = "okay";
  584 
  585         u2phy1_otg: otg-port {
  586                 status = "okay";
  587         };
  588 
  589         u2phy1_host: host-port {
  590                 phy-supply = <&vcc5v0_host>;
  591                 status = "okay";
  592         };
  593 };
  594 
  595 &uart0 {
  596         pinctrl-names = "default";
  597         pinctrl-0 = <&uart0_xfer &uart0_cts>;
  598         status = "okay";
  599 };
  600 
  601 &uart2 {
  602         status = "okay";
  603 };
  604 
  605 &usb_host0_ehci {
  606         status = "okay";
  607 };
  608 
  609 &usb_host0_ohci {
  610         status = "okay";
  611 };
  612 
  613 &usb_host1_ehci {
  614         status = "okay";
  615 };
  616 
  617 &usb_host1_ohci {
  618         status = "okay";
  619 };
  620 
  621 &usbdrd3_0 {
  622         status = "okay";
  623 };
  624 
  625 &usbdrd_dwc3_0 {
  626         status = "okay";
  627         dr_mode = "host";
  628 };
  629 
  630 &usbdrd3_1 {
  631         status = "okay";
  632 };
  633 
  634 &usbdrd_dwc3_1 {
  635         status = "okay";
  636         dr_mode = "host";
  637 };
  638 
  639 &vopb {
  640         status = "okay";
  641 };
  642 
  643 &vopb_mmu {
  644         status = "okay";
  645 };
  646 
  647 &vopl {
  648         status = "okay";
  649 };
  650 
  651 &vopl_mmu {
  652         status = "okay";
  653 };

Cache object: 1bccdaad7da06358aa6c54d4345acd7b


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.