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/arm/meson8b-ec100.dts

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) 2018 Martin Blumenstingl <martin.blumenstingl@googlemail.com>.
    4  */
    5 
    6 /dts-v1/;
    7 
    8 #include <dt-bindings/gpio/gpio.h>
    9 #include <dt-bindings/input/input.h>
   10 
   11 #include "meson8b.dtsi"
   12 
   13 / {
   14         model = "Endless Computers Endless Mini";
   15         compatible = "endless,ec100", "amlogic,meson8b";
   16 
   17         aliases {
   18                 serial0 = &uart_AO;
   19         };
   20 
   21         chosen {
   22                 stdout-path = "serial0:115200n8";
   23         };
   24 
   25         memory {
   26                 device_type = "memory";
   27                 reg = <0x40000000 0x40000000>;
   28         };
   29 
   30         emmc_pwrseq: emmc-pwrseq {
   31                 compatible = "mmc-pwrseq-emmc";
   32                 reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
   33         };
   34 
   35         gpio-keys {
   36                 compatible = "gpio-keys-polled";
   37                 #address-cells = <1>;
   38                 #size-cells = <0>;
   39                 poll-interval = <100>;
   40 
   41                 pal-switch {
   42                         label = "pal";
   43                         linux,input-type = <EV_SW>;
   44                         linux,code = <KEY_SWITCHVIDEOMODE>;
   45                         gpios = <&gpio GPIOH_7 GPIO_ACTIVE_LOW>;
   46                 };
   47 
   48                 ntsc-switch {
   49                         label = "ntsc";
   50                         linux,input-type = <EV_SW>;
   51                         linux,code = <KEY_SWITCHVIDEOMODE>;
   52                         gpios = <&gpio GPIOH_8 GPIO_ACTIVE_HIGH>;
   53                 };
   54 
   55                 power-button {
   56                         label = "power";
   57                         linux,code = <KEY_POWER>;
   58                         gpios = <&gpio GPIOH_9 GPIO_ACTIVE_LOW>;
   59                 };
   60         };
   61 
   62         gpio-poweroff {
   63                 compatible = "gpio-poweroff";
   64                 /*
   65                  * shutdown is managed by the EC (embedded micro-controller)
   66                  * which is configured through GPIOAO_2 (poweroff GPIO) and
   67                  * GPIOAO_7 (power LED, which has to go LOW as well).
   68                  */
   69                 gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>;
   70                 timeout-ms = <20000>;
   71         };
   72 
   73         leds {
   74                 compatible = "gpio-leds";
   75 
   76                 power {
   77                         label = "ec100:red:power";
   78                         /*
   79                          * Needs to go LOW (together with the poweroff GPIO)
   80                          * during shutdown to allow the EC (embedded
   81                          * micro-controller) to shutdown the system. Setting
   82                          * the output to LOW signals the EC to start a
   83                          * "breathing"/pulsing effect until the power is fully
   84                          * turned off.
   85                          */
   86                         gpios = <&gpio_ao GPIOAO_7 GPIO_ACTIVE_HIGH>;
   87                         default-state = "on";
   88                 };
   89         };
   90 
   91         rtc32k_xtal: rtc32k-xtal-clk {
   92                 /* X2 in the schematics */
   93                 compatible = "fixed-clock";
   94                 clock-frequency = <32768>;
   95                 clock-output-names = "RTC32K";
   96                 #clock-cells = <0>;
   97         };
   98 
   99         sound {
  100                 compatible = "amlogic,gx-sound-card";
  101                 model = "M8B-EC100";
  102 
  103                 assigned-clocks = <&clkc CLKID_MPLL0>,
  104                                   <&clkc CLKID_MPLL1>,
  105                                   <&clkc CLKID_MPLL2>;
  106                 assigned-clock-rates = <270950400>,
  107                                        <294912000>,
  108                                        <393216000>;
  109 
  110                 dai-link-0 {
  111                         sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>;
  112                 };
  113 
  114                 dai-link-1 {
  115                         sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>;
  116                         dai-format = "i2s";
  117                         mclk-fs = <256>;
  118 
  119                         codec-0 {
  120                                 sound-dai = <&rt5640>;
  121                         };
  122                 };
  123         };
  124 
  125         usb_vbus: regulator-usb-vbus {
  126                 /*
  127                  * Silergy SY6288CCAC-GP 2A Power Distribution Switch.
  128                  */
  129                 compatible = "regulator-fixed";
  130 
  131                 regulator-name = "USB_VBUS";
  132 
  133                 regulator-min-microvolt = <5000000>;
  134                 regulator-max-microvolt = <5000000>;
  135 
  136                 vin-supply = <&vcc_5v>;
  137 
  138                 /*
  139                  * signal name from the schematics: USB_PWR_EN
  140                  */
  141                 gpio = <&gpio_ao GPIOAO_5 GPIO_ACTIVE_HIGH>;
  142                 enable-active-high;
  143         };
  144 
  145         vcc_5v: regulator-vcc5v {
  146                 /*
  147                  * supplied by the main power input which called PWR_5V_STB
  148                  * in the schematics
  149                  */
  150                 compatible = "regulator-fixed";
  151 
  152                 regulator-name = "VCC5V";
  153 
  154                 regulator-min-microvolt = <5000000>;
  155                 regulator-max-microvolt = <5000000>;
  156 
  157                 /*
  158                  * signal name from the schematics: 3V3_5V_EN
  159                  */
  160                 gpio = <&gpio GPIODV_29 GPIO_ACTIVE_LOW>;
  161 
  162                 regulator-boot-on;
  163                 regulator-always-on;
  164         };
  165 
  166         vcck: regulator-vcck {
  167                 /*
  168                  * Silergy SY8089AAC-GP 2A continuous, 3A peak, 1MHz
  169                  * Synchronous Step Down Regulator.
  170                  */
  171                 compatible = "pwm-regulator";
  172 
  173                 regulator-name = "VCCK";
  174                 regulator-min-microvolt = <860000>;
  175                 regulator-max-microvolt = <1140000>;
  176 
  177                 pwm-supply = <&vcc_5v>;
  178 
  179                 pwms = <&pwm_cd 0 1148 0>;
  180                 pwm-dutycycle-range = <100 0>;
  181 
  182                 regulator-boot-on;
  183                 regulator-always-on;
  184         };
  185 
  186         vcc_1v8: regulator-vcc1v8 {
  187                 /*
  188                  * ABLIC S-1339D18-M5001-GP
  189                  */
  190                 compatible = "regulator-fixed";
  191 
  192                 regulator-name = "VCC1V8";
  193                 regulator-min-microvolt = <1800000>;
  194                 regulator-max-microvolt = <1800000>;
  195 
  196                 vin-supply = <&vcc_3v3>;
  197         };
  198 
  199         vcc_3v3: regulator-vcc3v3 {
  200                 /*
  201                  * Silergy SY8089AAC-GP 2A continuous, 3A peak, 1MHz
  202                  * Synchronous Step Down Regulator. Also called
  203                  * VDDIO_AO3.3V in the schematics.
  204                  */
  205                 compatible = "regulator-fixed";
  206 
  207                 regulator-name = "VCC3V3";
  208                 regulator-min-microvolt = <3300000>;
  209                 regulator-max-microvolt = <3300000>;
  210 
  211                 vin-supply = <&vcc_5v>;
  212         };
  213 
  214         vcc_ddr3: regulator-vcc-ddr3 {
  215                 /*
  216                  * Silergy SY8089AAC-GP 2A continuous, 3A peak, 1MHz
  217                  * Synchronous Step Down Regulator. Also called
  218                  * DDR3_1.5V in the schematics.
  219                  */
  220                 compatible = "regulator-fixed";
  221 
  222                 regulator-name = "VCC_DDR3_1V5";
  223                 regulator-min-microvolt = <1500000>;
  224                 regulator-max-microvolt = <1500000>;
  225 
  226                 vin-supply = <&vcc_5v>;
  227 
  228                 regulator-boot-on;
  229                 regulator-always-on;
  230         };
  231 
  232         vcc_rtc: regulator-vcc-rtc {
  233                 /*
  234                  * Global Mixed-mode Technology Inc. G918T12U-GP
  235                  */
  236                 compatible = "regulator-fixed";
  237 
  238                 regulator-name = "VCC_RTC";
  239                 regulator-min-microvolt = <900000>;
  240                 regulator-max-microvolt = <900000>;
  241 
  242                 /*
  243                  * When the board is powered then the input is VCC3V3,
  244                  * otherwise power is taken from the coin cell battery.
  245                  */
  246                 vin-supply = <&vcc_3v3>;
  247         };
  248 
  249         vddee: regulator-vddee {
  250                 /*
  251                  * Silergy SY8089AAC-GP 2A continuous, 3A peak, 1MHz
  252                  * Synchronous Step Down Regulator. Also called VDDAO
  253                  * in a part of the schematics.
  254                  */
  255                 compatible = "pwm-regulator";
  256 
  257                 regulator-name = "VDDEE";
  258                 regulator-min-microvolt = <860000>;
  259                 regulator-max-microvolt = <1140000>;
  260 
  261                 pwm-supply = <&vcc_5v>;
  262 
  263                 pwms = <&pwm_cd 1 1148 0>;
  264                 pwm-dutycycle-range = <100 0>;
  265 
  266                 regulator-boot-on;
  267                 regulator-always-on;
  268         };
  269 };
  270 
  271 &aiu {
  272         status = "okay";
  273 
  274         pinctrl-0 = <&i2s_am_clk_pins>, <&i2s_out_ao_clk_pins>,
  275                     <&i2s_out_lr_clk_pins>, <&i2s_out_ch01_ao_pins>;
  276         pinctrl-names = "default";
  277 };
  278 
  279 &cpu0 {
  280         cpu-supply = <&vcck>;
  281 };
  282 
  283 &ethmac {
  284         status = "okay";
  285 
  286         pinctrl-0 = <&eth_rmii_pins>;
  287         pinctrl-names = "default";
  288 
  289         phy-handle = <&eth_phy0>;
  290         phy-mode = "rmii";
  291 
  292         mdio {
  293                 compatible = "snps,dwmac-mdio";
  294                 #address-cells = <1>;
  295                 #size-cells = <0>;
  296 
  297                 eth_phy0: ethernet-phy@0 {
  298                         /* IC Plus IP101A/G (0x02430c54) */
  299                         reg = <0>;
  300 
  301                         reset-assert-us = <10000>;
  302                         reset-deassert-us = <10000>;
  303                         reset-gpios = <&gpio GPIOH_4 GPIO_ACTIVE_LOW>;
  304 
  305                         icplus,select-interrupt;
  306                         interrupt-parent = <&gpio_intc>;
  307                         /* GPIOH_3 */
  308                         interrupts = <17 IRQ_TYPE_LEVEL_LOW>;
  309                 };
  310         };
  311 };
  312 
  313 &i2c_A {
  314         status = "okay";
  315         pinctrl-0 = <&i2c_a_pins>;
  316         pinctrl-names = "default";
  317 
  318         rt5640: codec@1c {
  319                 compatible = "realtek,rt5640";
  320 
  321                 reg = <0x1c>;
  322 
  323                 #sound-dai-cells = <0>;
  324 
  325                 interrupt-parent = <&gpio_intc>;
  326                 interrupts = <13 IRQ_TYPE_EDGE_BOTH>; /* GPIOAO_13 */
  327 
  328                 /*
  329                  * TODO: realtek,ldo1-en-gpios is connected to GPIO_BSD_EN.
  330                  * We currently cannot configure this pin correctly.
  331                  * Luckily for us it's in the "right" state by default.
  332                  */
  333                 realtek,in1-differential;
  334         };
  335 };
  336 
  337 &mali {
  338         mali-supply = <&vddee>;
  339 };
  340 
  341 &saradc {
  342         status = "okay";
  343         vref-supply = <&vcc_1v8>;
  344 };
  345 
  346 &sdhc {
  347         status = "okay";
  348 
  349         pinctrl-0 = <&sdxc_c_pins>;
  350         pinctrl-names = "default";
  351 
  352         bus-width = <8>;
  353         max-frequency = <50000000>;
  354 
  355         cap-mmc-highspeed;
  356         disable-wp;
  357         non-removable;
  358         no-sdio;
  359 
  360         mmc-pwrseq = <&emmc_pwrseq>;
  361 
  362         vmmc-supply = <&vcc_3v3>;
  363         vqmmc-supply = <&vcc_3v3>;
  364 };
  365 
  366 &sdio {
  367         status = "okay";
  368 
  369         pinctrl-0 = <&sd_b_pins>;
  370         pinctrl-names = "default";
  371 
  372         /* SD card */
  373         sd_card_slot: slot@1 {
  374                 compatible = "mmc-slot";
  375                 reg = <1>;
  376                 status = "okay";
  377 
  378                 bus-width = <4>;
  379                 no-sdio;
  380                 cap-mmc-highspeed;
  381                 cap-sd-highspeed;
  382                 disable-wp;
  383 
  384                 cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>;
  385 
  386                 vmmc-supply = <&vcc_3v3>;
  387         };
  388 };
  389 
  390 &gpio_ao {
  391         gpio-line-names = "Linux_TX", "Linux_RX",
  392                           "SLP_S5_N", "USB2_OC_FLAG#",
  393                           "HUB_RST", "USB_PWR_EN",
  394                           "I2S_IN", "SLP_S1_N",
  395                           "TCK", "TMS", "TDI", "TDO",
  396                           "HDMI_CEC", "5640_IRQ",
  397                           "MUTE", "S805_TEST#";
  398 };
  399 
  400 &gpio {
  401         gpio-line-names = /* Bank GPIOX */
  402                           "WIFI_SD_D0", "WIFI_SD_D1", "WIFI_SD_D2",
  403                           "WIFI_SD_D3", "BTPCM_DOUT", "BTPCM_DIN",
  404                           "BTPCM_SYNC", "BTPCM_CLK", "WIFI_SD_CLK",
  405                           "WIFI_SD_CMD", "WIFI_32K", "WIFI_PWREN",
  406                           "UART_B_TX", "UART_B_RX", "UART_B_CTS_N",
  407                           "UART_B_RTS_N", "BT_EN", "WIFI_WAKE_HOST",
  408                           /* Bank GPIOY */
  409                           "", "", "", "", "", "", "", "", "", "",
  410                           "", "",
  411                           /* Bank GPIODV */
  412                           "VCCK_PWM_C", "I2C_SDA_A", "I2C_SCL_A",
  413                           "I2C_SDA_B", "I2C_SCL_B", "VDDEE_PWM_D",
  414                           "VDDEE_PWM 3V3_5V_EN",
  415                           /* Bank GPIOH */
  416                           "HDMI_HPD", "HDMI_I2C_SDA", "HDMI_I2C_SCL",
  417                           "RMII_IRQ", "RMII_RST#", "RMII_TXD1",
  418                           "RMII_TXD0", "AV_select_1", "AV_select_2",
  419                           "MCU_Control_S",
  420                           /* Bank CARD */
  421                           "SD_D1_B", "SD_D0_B", "SD_CLK_8726MX",
  422                           "SD_CMD_8726MX", "SD_D3_B", "SD_D2_B",
  423                           "CARD_EN_DET (CARD_DET)",
  424                           /* Bank BOOT */
  425                           "NAND_D0 (EMMC)", "NAND_D1 (EMMC)",
  426                           "NAND_D2 (EMMC)", "NAND_D3 (EMMC)",
  427                           "NAND_D4 (EMMC)", "NAND_D5 (EMMC)",
  428                           "NAND_D6 (EMMC)", "NAND_D7 (EMMC)",
  429                           "NAND_CS1 (EMMC)", "NAND_CS2 iNAND_RS1 (EMMC)",
  430                           "NAND_nR/B iNAND_CMD (EMMC)", "NAND_ALE (EMMC)",
  431                           "NAND_CLE (EMMC)", "nRE_S1 NAND_nRE (EMMC)",
  432                           "nWE_S1 NAND_nWE (EMMC)",  "", "", "SPI_CS",
  433                           /* Bank DIF */
  434                           "RMII_RXD1", "RMII_RXD0", "RMII_CRS_DV",
  435                           "RMII_50M_IN", "GPIODIF_4", "GPIODIF_5",
  436                           "RMII_TXEN", "CPUETH_25MOUT", "RMII_MDC",
  437                           "RMII_MDIO";
  438 };
  439 
  440 &pwm_cd {
  441         status = "okay";
  442         pinctrl-0 = <&pwm_c1_pins>, <&pwm_d_pins>;
  443         pinctrl-names = "default";
  444         clocks = <&xtal>, <&xtal>;
  445         clock-names = "clkin0", "clkin1";
  446 };
  447 
  448 &rtc {
  449         status = "okay";
  450         clocks = <&rtc32k_xtal>;
  451         vdd-supply = <&vcc_rtc>;
  452 };
  453 
  454 /* exposed through the pin headers labeled "URDUG1" on the top of the PCB */
  455 &uart_AO {
  456         status = "okay";
  457         pinctrl-0 = <&uart_ao_a_pins>;
  458         pinctrl-names = "default";
  459 };
  460 
  461 /*
  462  * connected to the Bluetooth part of the RTL8723BS SDIO wifi / Bluetooth
  463  * combo chip. This is only available on the variant with 2GB RAM.
  464  */
  465 &uart_B {
  466         status = "okay";
  467         pinctrl-0 = <&uart_b0_pins>, <&uart_b0_cts_rts_pins>;
  468         pinctrl-names = "default";
  469         uart-has-rtscts;
  470 };
  471 
  472 &usb1 {
  473         status = "okay";
  474         vbus-supply = <&usb_vbus>;
  475 };
  476 
  477 &usb1_phy {
  478         status = "okay";
  479 };

Cache object: d7df520f25f53fa1cfa096cb59f84560


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