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/amlogic/meson-sm1-odroid.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) 2020 Dongjin Kim <tobetter@gmail.com>
    4  */
    5 
    6 #include "meson-sm1.dtsi"
    7 #include <dt-bindings/gpio/meson-g12a-gpio.h>
    8 #include <dt-bindings/leds/common.h>
    9 #include <dt-bindings/sound/meson-g12a-tohdmitx.h>
   10 
   11 / {
   12         aliases {
   13                 serial0 = &uart_AO;
   14                 ethernet0 = &ethmac;
   15         };
   16 
   17         chosen {
   18                 stdout-path = "serial0:115200n8";
   19         };
   20 
   21         memory@0 {
   22                 device_type = "memory";
   23                 reg = <0x0 0x0 0x0 0x40000000>;
   24         };
   25 
   26         emmc_pwrseq: emmc-pwrseq {
   27                 compatible = "mmc-pwrseq-emmc";
   28                 reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>;
   29         };
   30 
   31         tflash_vdd: regulator-tflash_vdd {
   32                 compatible = "regulator-fixed";
   33 
   34                 regulator-name = "TFLASH_VDD";
   35                 regulator-min-microvolt = <3300000>;
   36                 regulator-max-microvolt = <3300000>;
   37 
   38                 gpio = <&gpio_ao GPIOAO_3 GPIO_OPEN_DRAIN>;
   39                 enable-active-high;
   40                 regulator-always-on;
   41         };
   42 
   43         tf_io: gpio-regulator-tf_io {
   44                 compatible = "regulator-gpio";
   45 
   46                 regulator-name = "TF_IO";
   47                 regulator-min-microvolt = <1800000>;
   48                 regulator-max-microvolt = <3300000>;
   49                 vin-supply = <&vcc_5v>;
   50 
   51                 enable-gpio = <&gpio_ao GPIOE_2 GPIO_OPEN_DRAIN>;
   52                 enable-active-high;
   53                 regulator-always-on;
   54 
   55                 gpios = <&gpio_ao GPIOAO_6 GPIO_OPEN_SOURCE>;
   56                 gpios-states = <0>;
   57 
   58                 states = <3300000 0>,
   59                          <1800000 1>;
   60         };
   61 
   62         flash_1v8: regulator-flash_1v8 {
   63                 compatible = "regulator-fixed";
   64                 regulator-name = "FLASH_1V8";
   65                 regulator-min-microvolt = <1800000>;
   66                 regulator-max-microvolt = <1800000>;
   67                 vin-supply = <&vcc_3v3>;
   68                 regulator-always-on;
   69         };
   70 
   71         main_12v: regulator-main_12v {
   72                 compatible = "regulator-fixed";
   73                 regulator-name = "12V";
   74                 regulator-min-microvolt = <12000000>;
   75                 regulator-max-microvolt = <12000000>;
   76                 regulator-always-on;
   77         };
   78 
   79         vcc_5v: regulator-vcc_5v {
   80                 compatible = "regulator-fixed";
   81                 regulator-name = "5V";
   82                 regulator-min-microvolt = <5000000>;
   83                 regulator-max-microvolt = <5000000>;
   84                 regulator-always-on;
   85                 vin-supply = <&main_12v>;
   86                 gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>;
   87                 enable-active-high;
   88         };
   89 
   90         vcc_1v8: regulator-vcc_1v8 {
   91                 compatible = "regulator-fixed";
   92                 regulator-name = "VCC_1V8";
   93                 regulator-min-microvolt = <1800000>;
   94                 regulator-max-microvolt = <1800000>;
   95                 vin-supply = <&vcc_3v3>;
   96                 regulator-always-on;
   97         };
   98 
   99         vcc_3v3: regulator-vcc_3v3 {
  100                 compatible = "regulator-fixed";
  101                 regulator-name = "VCC_3V3";
  102                 regulator-min-microvolt = <3300000>;
  103                 regulator-max-microvolt = <3300000>;
  104                 vin-supply = <&vddao_3v3>;
  105                 regulator-always-on;
  106                 /* FIXME: actually controlled by VDDCPU_B_EN */
  107         };
  108 
  109         vddcpu: regulator-vddcpu {
  110                 /*
  111                  * MP8756GD Regulator.
  112                  */
  113                 compatible = "pwm-regulator";
  114 
  115                 regulator-name = "VDDCPU";
  116                 regulator-min-microvolt = <721000>;
  117                 regulator-max-microvolt = <1022000>;
  118 
  119                 pwm-supply = <&main_12v>;
  120 
  121                 pwms = <&pwm_AO_cd 1 1250 0>;
  122                 pwm-dutycycle-range = <100 0>;
  123 
  124                 regulator-boot-on;
  125                 regulator-always-on;
  126         };
  127 
  128         usb_pwr_en: regulator-usb_pwr_en {
  129                 compatible = "regulator-fixed";
  130                 regulator-name = "USB_PWR_EN";
  131                 regulator-min-microvolt = <5000000>;
  132                 regulator-max-microvolt = <5000000>;
  133                 vin-supply = <&vcc_5v>;
  134 
  135                 /* Connected to the microUSB port power enable */
  136                 gpio = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_HIGH>;
  137                 enable-active-high;
  138         };
  139 
  140         vddao_1v8: regulator-vddao_1v8 {
  141                 compatible = "regulator-fixed";
  142                 regulator-name = "VDDAO_1V8";
  143                 regulator-min-microvolt = <1800000>;
  144                 regulator-max-microvolt = <1800000>;
  145                 vin-supply = <&vddao_3v3>;
  146                 regulator-always-on;
  147         };
  148 
  149         vddao_3v3: regulator-vddao_3v3 {
  150                 compatible = "regulator-fixed";
  151                 regulator-name = "VDDAO_3V3";
  152                 regulator-min-microvolt = <3300000>;
  153                 regulator-max-microvolt = <3300000>;
  154                 vin-supply = <&main_12v>;
  155                 regulator-always-on;
  156         };
  157 
  158         hdmi-connector {
  159                 compatible = "hdmi-connector";
  160                 type = "a";
  161 
  162                 port {
  163                         hdmi_connector_in: endpoint {
  164                                 remote-endpoint = <&hdmi_tx_tmds_out>;
  165                         };
  166                 };
  167         };
  168 
  169         sound {
  170                 compatible = "amlogic,axg-sound-card";
  171                 audio-aux-devs = <&tdmout_b>;
  172                 audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1",
  173                                 "TDMOUT_B IN 1", "FRDDR_B OUT 1",
  174                                 "TDMOUT_B IN 2", "FRDDR_C OUT 1",
  175                                 "TDM_B Playback", "TDMOUT_B OUT";
  176 
  177                 assigned-clocks = <&clkc CLKID_MPLL2>,
  178                                   <&clkc CLKID_MPLL0>,
  179                                   <&clkc CLKID_MPLL1>;
  180                 assigned-clock-parents = <0>, <0>, <0>;
  181                 assigned-clock-rates = <294912000>,
  182                                        <270950400>,
  183                                        <393216000>;
  184                 status = "okay";
  185 
  186                 dai-link-0 {
  187                         sound-dai = <&frddr_a>;
  188                 };
  189 
  190                 dai-link-1 {
  191                         sound-dai = <&frddr_b>;
  192                 };
  193 
  194                 dai-link-2 {
  195                         sound-dai = <&frddr_c>;
  196                 };
  197 
  198                 /* 8ch hdmi interface */
  199                 dai-link-3 {
  200                         sound-dai = <&tdmif_b>;
  201                         dai-format = "i2s";
  202                         dai-tdm-slot-tx-mask-0 = <1 1>;
  203                         dai-tdm-slot-tx-mask-1 = <1 1>;
  204                         dai-tdm-slot-tx-mask-2 = <1 1>;
  205                         dai-tdm-slot-tx-mask-3 = <1 1>;
  206                         mclk-fs = <256>;
  207 
  208                         codec {
  209                                 sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>;
  210                         };
  211                 };
  212 
  213                 /* hdmi glue */
  214                 dai-link-4 {
  215                         sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>;
  216 
  217                         codec {
  218                                 sound-dai = <&hdmi_tx>;
  219                         };
  220                 };
  221         };
  222 };
  223 
  224 &arb {
  225         status = "okay";
  226 };
  227 
  228 &cec_AO {
  229         pinctrl-0 = <&cec_ao_a_h_pins>;
  230         pinctrl-names = "default";
  231         status = "disabled";
  232         hdmi-phandle = <&hdmi_tx>;
  233 };
  234 
  235 &cecb_AO {
  236         pinctrl-0 = <&cec_ao_b_h_pins>;
  237         pinctrl-names = "default";
  238         status = "okay";
  239         hdmi-phandle = <&hdmi_tx>;
  240 };
  241 
  242 &clkc_audio {
  243         status = "okay";
  244 };
  245 
  246 &cpu0 {
  247         cpu-supply = <&vddcpu>;
  248         operating-points-v2 = <&cpu_opp_table>;
  249         clocks = <&clkc CLKID_CPU_CLK>;
  250         clock-latency = <50000>;
  251 };
  252 
  253 &cpu1 {
  254         cpu-supply = <&vddcpu>;
  255         operating-points-v2 = <&cpu_opp_table>;
  256         clocks = <&clkc CLKID_CPU1_CLK>;
  257         clock-latency = <50000>;
  258 };
  259 
  260 &cpu2 {
  261         cpu-supply = <&vddcpu>;
  262         operating-points-v2 = <&cpu_opp_table>;
  263         clocks = <&clkc CLKID_CPU2_CLK>;
  264         clock-latency = <50000>;
  265 };
  266 
  267 &cpu3 {
  268         cpu-supply = <&vddcpu>;
  269         operating-points-v2 = <&cpu_opp_table>;
  270         clocks = <&clkc CLKID_CPU3_CLK>;
  271         clock-latency = <50000>;
  272 };
  273 
  274 &ext_mdio {
  275         external_phy: ethernet-phy@0 {
  276                 /* Realtek RTL8211F (0x001cc916) */
  277                 reg = <0>;
  278                 max-speed = <1000>;
  279 
  280                 reset-assert-us = <10000>;
  281                 reset-deassert-us = <80000>;
  282                 reset-gpios = <&gpio GPIOZ_15 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>;
  283 
  284                 interrupt-parent = <&gpio_intc>;
  285                 /* MAC_INTR on GPIOZ_14 */
  286                 interrupts = <26 IRQ_TYPE_LEVEL_LOW>;
  287         };
  288 };
  289 
  290 &ethmac {
  291         pinctrl-0 = <&eth_pins>, <&eth_rgmii_pins>;
  292         pinctrl-names = "default";
  293         status = "okay";
  294         phy-mode = "rgmii";
  295         phy-handle = <&external_phy>;
  296         amlogic,tx-delay-ns = <2>;
  297 };
  298 
  299 &frddr_a {
  300         status = "okay";
  301 };
  302 
  303 &frddr_b {
  304         status = "okay";
  305 };
  306 
  307 &frddr_c {
  308         status = "okay";
  309 };
  310 
  311 &gpio {
  312         gpio-line-names =
  313                 /* GPIOZ */
  314                 "", "", "", "", "", "", "", "",
  315                 "", "", "", "", "", "", "", "",
  316                 /* GPIOH */
  317                 "", "", "", "", "",
  318                 "PIN_36", /* GPIOH_5 */
  319                 "PIN_26", /* GPIOH_6 */
  320                 "PIN_32", /* GPIOH_7 */
  321                 "",
  322                 /* BOOT */
  323                 "", "", "", "", "", "", "", "",
  324                 "", "", "", "", "", "", "", "",
  325                 /* GPIOC */
  326                 "", "", "", "", "", "", "", "",
  327                 /* GPIOA */
  328                 "", "", "", "", "", "", "", "",
  329                 "", "", "", "", "", "",
  330                 "PIN_27", /* GPIOA_14 */
  331                 "PIN_28", /* GPIOA_15 */
  332                 /* GPIOX */
  333                 "PIN_16", /* GPIOX_0 */
  334                 "PIN_18", /* GPIOX_1 */
  335                 "PIN_22", /* GPIOX_2 */
  336                 "PIN_11", /* GPIOX_3 */
  337                 "PIN_13", /* GPIOX_4 */
  338                 "PIN_7",  /* GPIOX_5 */
  339                 "PIN_33", /* GPIOX_6 */
  340                 "PIN_15", /* GPIOX_7 */
  341                 "PIN_19", /* GPIOX_8 */
  342                 "PIN_21", /* GPIOX_9 */
  343                 "PIN_24", /* GPIOX_10 */
  344                 "PIN_23", /* GPIOX_11 */
  345                 "PIN_8",  /* GPIOX_12 */
  346                 "PIN_10", /* GPIOX_13 */
  347                 "PIN_29", /* GPIOX_14 */
  348                 "PIN_31", /* GPIOX_15 */
  349                 "PIN_12", /* GPIOX_16 */
  350                 "PIN_3",  /* GPIOX_17 */
  351                 "PIN_5",  /* GPIOX_18 */
  352                 "PIN_35"; /* GPIOX_19 */
  353 };
  354 
  355 &gpio_ao {
  356         gpio-line-names =
  357                 /* GPIOAO */
  358                 "", "", "", "",
  359                 "PIN_47", /* GPIOAO_4 */
  360                 "", "",
  361                 "PIN_45", /* GPIOAO_7 */
  362                 "PIN_46", /* GPIOAO_8 */
  363                 "PIN_44", /* GPIOAO_9 */
  364                 "PIN_42", /* GPIOAO_10 */
  365                 "",
  366                 /* GPIOE */
  367                 "", "", "";
  368 };
  369 
  370 &hdmi_tx {
  371         status = "okay";
  372         pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>;
  373         pinctrl-names = "default";
  374         hdmi-supply = <&vcc_5v>;
  375 };
  376 
  377 &hdmi_tx_tmds_port {
  378         hdmi_tx_tmds_out: endpoint {
  379                 remote-endpoint = <&hdmi_connector_in>;
  380         };
  381 };
  382 
  383 &ir {
  384         status = "okay";
  385         pinctrl-0 = <&remote_input_ao_pins>;
  386         pinctrl-names = "default";
  387 };
  388 
  389 &pwm_AO_cd {
  390         pinctrl-0 = <&pwm_ao_d_e_pins>;
  391         pinctrl-names = "default";
  392         clocks = <&xtal>;
  393         clock-names = "clkin1";
  394         status = "okay";
  395 };
  396 
  397 &saradc {
  398         status = "okay";
  399 };
  400 
  401 /* SD card */
  402 &sd_emmc_b {
  403         status = "okay";
  404         pinctrl-0 = <&sdcard_c_pins>;
  405         pinctrl-1 = <&sdcard_clk_gate_c_pins>;
  406         pinctrl-names = "default", "clk-gate";
  407 
  408         bus-width = <4>;
  409         cap-sd-highspeed;
  410         max-frequency = <200000000>;
  411         sd-uhs-sdr12;
  412         sd-uhs-sdr25;
  413         sd-uhs-sdr50;
  414         sd-uhs-sdr104;
  415         disable-wp;
  416 
  417         cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>;
  418         vmmc-supply = <&tflash_vdd>;
  419         vqmmc-supply = <&tf_io>;
  420 };
  421 
  422 /* eMMC */
  423 &sd_emmc_c {
  424         status = "okay";
  425         pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>;
  426         pinctrl-1 = <&emmc_clk_gate_pins>;
  427         pinctrl-names = "default", "clk-gate";
  428 
  429         bus-width = <8>;
  430         cap-mmc-highspeed;
  431         mmc-ddr-1_8v;
  432         mmc-hs200-1_8v;
  433         max-frequency = <200000000>;
  434         disable-wp;
  435 
  436         mmc-pwrseq = <&emmc_pwrseq>;
  437         vmmc-supply = <&vcc_3v3>;
  438         vqmmc-supply = <&flash_1v8>;
  439 };
  440 
  441 &tdmif_b {
  442         status = "okay";
  443 };
  444 
  445 &tdmout_b {
  446         status = "okay";
  447 };
  448 
  449 &tohdmitx {
  450         status = "okay";
  451 };
  452 
  453 &uart_AO {
  454         status = "okay";
  455         pinctrl-0 = <&uart_ao_a_pins>;
  456         pinctrl-names = "default";
  457 };
  458 
  459 &usb {
  460         status = "okay";
  461         vbus-supply = <&usb_pwr_en>;
  462 };
  463 
  464 &usb2_phy0 {
  465         phy-supply = <&vcc_5v>;
  466 };
  467 

Cache object: 5011cb3126c54d8c6745b533e0dcb851


[ 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.