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-g12a-sei510.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) 2019 BayLibre SAS. All rights reserved.
    4  */
    5 
    6 /dts-v1/;
    7 
    8 #include "meson-g12a.dtsi"
    9 #include <dt-bindings/gpio/gpio.h>
   10 #include <dt-bindings/input/input.h>
   11 #include <dt-bindings/gpio/meson-g12a-gpio.h>
   12 #include <dt-bindings/sound/meson-g12a-tohdmitx.h>
   13 
   14 / {
   15         compatible = "seirobotics,sei510", "amlogic,g12a";
   16         model = "SEI Robotics SEI510";
   17 
   18         adc_keys {
   19                 compatible = "adc-keys";
   20                 io-channels = <&saradc 0>;
   21                 io-channel-names = "buttons";
   22                 keyup-threshold-microvolt = <1800000>;
   23 
   24                 button-onoff {
   25                         label = "On/Off";
   26                         linux,code = <KEY_POWER>;
   27                         press-threshold-microvolt = <1700000>;
   28                 };
   29         };
   30 
   31         aliases {
   32                 serial0 = &uart_AO;
   33                 ethernet0 = &ethmac;
   34         };
   35 
   36         mono_dac: audio-codec-0 {
   37                 compatible = "maxim,max98357a";
   38                 #sound-dai-cells = <0>;
   39                 sound-name-prefix = "U16";
   40                 sdmode-gpios = <&gpio GPIOX_8 GPIO_ACTIVE_HIGH>;
   41         };
   42 
   43         dmics: audio-codec-1 {
   44                 #sound-dai-cells = <0>;
   45                 compatible = "dmic-codec";
   46                 num-channels = <2>;
   47                 wakeup-delay-ms = <50>;
   48                 status = "okay";
   49                 sound-name-prefix = "MIC";
   50         };
   51 
   52         chosen {
   53                 stdout-path = "serial0:115200n8";
   54         };
   55 
   56         cvbs-connector {
   57                 compatible = "composite-video-connector";
   58 
   59                 port {
   60                         cvbs_connector_in: endpoint {
   61                                 remote-endpoint = <&cvbs_vdac_out>;
   62                         };
   63                 };
   64         };
   65 
   66         emmc_pwrseq: emmc-pwrseq {
   67                 compatible = "mmc-pwrseq-emmc";
   68                 reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>;
   69         };
   70 
   71         hdmi-connector {
   72                 compatible = "hdmi-connector";
   73                 type = "a";
   74 
   75                 port {
   76                         hdmi_connector_in: endpoint {
   77                                 remote-endpoint = <&hdmi_tx_tmds_out>;
   78                         };
   79                 };
   80         };
   81 
   82         memory@0 {
   83                 device_type = "memory";
   84                 reg = <0x0 0x0 0x0 0x40000000>;
   85         };
   86 
   87         ao_5v: regulator-ao_5v {
   88                 compatible = "regulator-fixed";
   89                 regulator-name = "AO_5V";
   90                 regulator-min-microvolt = <5000000>;
   91                 regulator-max-microvolt = <5000000>;
   92                 vin-supply = <&dc_in>;
   93                 regulator-always-on;
   94         };
   95 
   96         dc_in: regulator-dc_in {
   97                 compatible = "regulator-fixed";
   98                 regulator-name = "DC_IN";
   99                 regulator-min-microvolt = <5000000>;
  100                 regulator-max-microvolt = <5000000>;
  101                 regulator-always-on;
  102         };
  103 
  104         emmc_1v8: regulator-emmc_1v8 {
  105                 compatible = "regulator-fixed";
  106                 regulator-name = "EMMC_1V8";
  107                 regulator-min-microvolt = <1800000>;
  108                 regulator-max-microvolt = <1800000>;
  109                 vin-supply = <&vddao_3v3>;
  110                 regulator-always-on;
  111         };
  112 
  113         vddao_3v3: regulator-vddao_3v3 {
  114                 compatible = "regulator-fixed";
  115                 regulator-name = "VDDAO_3V3";
  116                 regulator-min-microvolt = <3300000>;
  117                 regulator-max-microvolt = <3300000>;
  118                 vin-supply = <&dc_in>;
  119                 regulator-always-on;
  120         };
  121 
  122         vddao_3v3_t: regultor-vddao_3v3_t {
  123                 compatible = "regulator-fixed";
  124                 regulator-name = "VDDAO_3V3_T";
  125                 regulator-min-microvolt = <3300000>;
  126                 regulator-max-microvolt = <3300000>;
  127                 vin-supply = <&vddao_3v3>;
  128                 gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>;
  129                 enable-active-high;
  130         };
  131 
  132         vddcpu: regulator-vddcpu {
  133                 /*
  134                  * SY8120B1ABC DC/DC Regulator.
  135                  */
  136                 compatible = "pwm-regulator";
  137 
  138                 regulator-name = "VDDCPU";
  139                 regulator-min-microvolt = <721000>;
  140                 regulator-max-microvolt = <1022000>;
  141 
  142                 pwm-supply = <&dc_in>;
  143 
  144                 pwms = <&pwm_AO_cd 1 1250 0>;
  145                 pwm-dutycycle-range = <100 0>;
  146 
  147                 regulator-boot-on;
  148                 regulator-always-on;
  149         };
  150 
  151         vddio_ao1v8: regulator-vddio_ao1v8 {
  152                 compatible = "regulator-fixed";
  153                 regulator-name = "VDDIO_AO1V8";
  154                 regulator-min-microvolt = <1800000>;
  155                 regulator-max-microvolt = <1800000>;
  156                 vin-supply = <&vddao_3v3>;
  157                 regulator-always-on;
  158         };
  159 
  160         sdio_pwrseq: sdio-pwrseq {
  161                 compatible = "mmc-pwrseq-simple";
  162                 reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
  163                 clocks = <&wifi32k>;
  164                 clock-names = "ext_clock";
  165         };
  166 
  167         wifi32k: wifi32k {
  168                 compatible = "pwm-clock";
  169                 #clock-cells = <0>;
  170                 clock-frequency = <32768>;
  171                 pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
  172         };
  173 
  174         sound {
  175                 compatible = "amlogic,axg-sound-card";
  176                 model = "SEI510";
  177                 audio-aux-devs = <&tdmout_a>, <&tdmout_b>,
  178                                  <&tdmin_a>, <&tdmin_b>;
  179                 audio-routing = "TDMOUT_A IN 0", "FRDDR_A OUT 0",
  180                                 "TDMOUT_A IN 1", "FRDDR_B OUT 0",
  181                                 "TDMOUT_A IN 2", "FRDDR_C OUT 0",
  182                                 "TDM_A Playback", "TDMOUT_A OUT",
  183                                 "TDMOUT_B IN 0", "FRDDR_A OUT 1",
  184                                 "TDMOUT_B IN 1", "FRDDR_B OUT 1",
  185                                 "TDMOUT_B IN 2", "FRDDR_C OUT 1",
  186                                 "TDM_B Playback", "TDMOUT_B OUT",
  187                                 "TODDR_A IN 4", "PDM Capture",
  188                                 "TODDR_B IN 4", "PDM Capture",
  189                                 "TODDR_C IN 4", "PDM Capture",
  190                                 "TDMIN_A IN 0", "TDM_A Capture",
  191                                 "TDMIN_A IN 3", "TDM_A Loopback",
  192                                 "TDMIN_B IN 0", "TDM_A Capture",
  193                                 "TDMIN_B IN 3", "TDM_A Loopback",
  194                                 "TDMIN_A IN 1", "TDM_B Capture",
  195                                 "TDMIN_A IN 4", "TDM_B Loopback",
  196                                 "TDMIN_B IN 1", "TDM_B Capture",
  197                                 "TDMIN_B IN 4", "TDM_B Loopback",
  198                                 "TODDR_A IN 0", "TDMIN_A OUT",
  199                                 "TODDR_B IN 0", "TDMIN_A OUT",
  200                                 "TODDR_C IN 0", "TDMIN_A OUT",
  201                                 "TODDR_A IN 1", "TDMIN_B OUT",
  202                                 "TODDR_B IN 1", "TDMIN_B OUT",
  203                                 "TODDR_C IN 1", "TDMIN_B OUT";
  204 
  205                 assigned-clocks = <&clkc CLKID_MPLL2>,
  206                                   <&clkc CLKID_MPLL0>,
  207                                   <&clkc CLKID_MPLL1>;
  208                 assigned-clock-parents = <0>, <0>, <0>;
  209                 assigned-clock-rates = <294912000>,
  210                                        <270950400>,
  211                                        <393216000>;
  212                 status = "okay";
  213 
  214                 dai-link-0 {
  215                         sound-dai = <&frddr_a>;
  216                 };
  217 
  218                 dai-link-1 {
  219                         sound-dai = <&frddr_b>;
  220                 };
  221 
  222                 dai-link-2 {
  223                         sound-dai = <&frddr_c>;
  224                 };
  225 
  226                 dai-link-3 {
  227                         sound-dai = <&toddr_a>;
  228                 };
  229 
  230                 dai-link-4 {
  231                         sound-dai = <&toddr_b>;
  232                 };
  233 
  234                 dai-link-5 {
  235                         sound-dai = <&toddr_c>;
  236                 };
  237 
  238                 /* internal speaker interface */
  239                 dai-link-6 {
  240                         sound-dai = <&tdmif_a>;
  241                         dai-format = "i2s";
  242                         dai-tdm-slot-tx-mask-0 = <1 1>;
  243                         mclk-fs = <256>;
  244 
  245                         codec-0 {
  246                                 sound-dai = <&mono_dac>;
  247                         };
  248 
  249                         codec-1 {
  250                                 sound-dai = <&tohdmitx TOHDMITX_I2S_IN_A>;
  251                         };
  252                 };
  253 
  254                 /* 8ch hdmi interface */
  255                 dai-link-7 {
  256                         sound-dai = <&tdmif_b>;
  257                         dai-format = "i2s";
  258                         dai-tdm-slot-tx-mask-0 = <1 1>;
  259                         dai-tdm-slot-tx-mask-1 = <1 1>;
  260                         dai-tdm-slot-tx-mask-2 = <1 1>;
  261                         dai-tdm-slot-tx-mask-3 = <1 1>;
  262                         mclk-fs = <256>;
  263 
  264                         codec {
  265                                 sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>;
  266                         };
  267                 };
  268 
  269                 /* internal digital mics */
  270                 dai-link-8 {
  271                         sound-dai = <&pdm>;
  272 
  273                         codec {
  274                                 sound-dai = <&dmics>;
  275                         };
  276                 };
  277 
  278                 /* hdmi glue */
  279                 dai-link-9 {
  280                         sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>;
  281 
  282                         codec {
  283                                 sound-dai = <&hdmi_tx>;
  284                         };
  285                 };
  286         };
  287 };
  288 
  289 &arb {
  290         status = "okay";
  291 };
  292 
  293 &cec_AO {
  294         pinctrl-0 = <&cec_ao_a_h_pins>;
  295         pinctrl-names = "default";
  296         status = "disabled";
  297         hdmi-phandle = <&hdmi_tx>;
  298 };
  299 
  300 &cecb_AO {
  301         pinctrl-0 = <&cec_ao_b_h_pins>;
  302         pinctrl-names = "default";
  303         status = "okay";
  304         hdmi-phandle = <&hdmi_tx>;
  305 };
  306 
  307 &clkc_audio {
  308         status = "okay";
  309 };
  310 
  311 &cpu0 {
  312         cpu-supply = <&vddcpu>;
  313         operating-points-v2 = <&cpu_opp_table>;
  314         clocks = <&clkc CLKID_CPU_CLK>;
  315         clock-latency = <50000>;
  316 };
  317 
  318 &cpu1 {
  319         cpu-supply = <&vddcpu>;
  320         operating-points-v2 = <&cpu_opp_table>;
  321         clocks = <&clkc CLKID_CPU_CLK>;
  322         clock-latency = <50000>;
  323 };
  324 
  325 &cpu2 {
  326         cpu-supply = <&vddcpu>;
  327         operating-points-v2 = <&cpu_opp_table>;
  328         clocks = <&clkc CLKID_CPU_CLK>;
  329         clock-latency = <50000>;
  330 };
  331 
  332 &cpu3 {
  333         cpu-supply = <&vddcpu>;
  334         operating-points-v2 = <&cpu_opp_table>;
  335         clocks = <&clkc CLKID_CPU_CLK>;
  336         clock-latency = <50000>;
  337 };
  338 
  339 &cvbs_vdac_port {
  340         cvbs_vdac_out: endpoint {
  341                 remote-endpoint = <&cvbs_connector_in>;
  342         };
  343 };
  344 
  345 &ethmac {
  346         status = "okay";
  347         phy-handle = <&internal_ephy>;
  348         phy-mode = "rmii";
  349 };
  350 
  351 &frddr_a {
  352         status = "okay";
  353 };
  354 
  355 &frddr_b {
  356         status = "okay";
  357 };
  358 
  359 &frddr_c {
  360         status = "okay";
  361 };
  362 
  363 &hdmi_tx {
  364         status = "okay";
  365         pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>;
  366         pinctrl-names = "default";
  367 };
  368 
  369 &hdmi_tx_tmds_port {
  370         hdmi_tx_tmds_out: endpoint {
  371                 remote-endpoint = <&hdmi_connector_in>;
  372         };
  373 };
  374 
  375 &i2c3 {
  376         status = "okay";
  377         pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3_sck_a_pins>;
  378         pinctrl-names = "default";
  379 };
  380 
  381 &ir {
  382         status = "okay";
  383         pinctrl-0 = <&remote_input_ao_pins>;
  384         pinctrl-names = "default";
  385 };
  386 
  387 &pwm_AO_cd {
  388         pinctrl-0 = <&pwm_ao_d_e_pins>;
  389         pinctrl-names = "default";
  390         clocks = <&xtal>;
  391         clock-names = "clkin1";
  392         status = "okay";
  393 };
  394 
  395 &pwm_ef {
  396         status = "okay";
  397         pinctrl-0 = <&pwm_e_pins>;
  398         pinctrl-names = "default";
  399         clocks = <&xtal>;
  400         clock-names = "clkin0";
  401 };
  402 
  403 &pdm {
  404         pinctrl-0 = <&pdm_din0_z_pins>, <&pdm_din1_z_pins>,
  405                     <&pdm_din2_z_pins>, <&pdm_din3_z_pins>,
  406                     <&pdm_dclk_z_pins>;
  407         pinctrl-names = "default";
  408         status = "okay";
  409 };
  410 
  411 &saradc {
  412         status = "okay";
  413         vref-supply = <&vddio_ao1v8>;
  414 };
  415 
  416 /* SDIO */
  417 &sd_emmc_a {
  418         status = "okay";
  419         pinctrl-0 = <&sdio_pins>;
  420         pinctrl-1 = <&sdio_clk_gate_pins>;
  421         pinctrl-names = "default", "clk-gate";
  422         #address-cells = <1>;
  423         #size-cells = <0>;
  424 
  425         bus-width = <4>;
  426         cap-sd-highspeed;
  427         sd-uhs-sdr50;
  428         max-frequency = <100000000>;
  429 
  430         non-removable;
  431         disable-wp;
  432 
  433         /* WiFi firmware requires power to be kept while in suspend */
  434         keep-power-in-suspend;
  435 
  436         mmc-pwrseq = <&sdio_pwrseq>;
  437 
  438         vmmc-supply = <&vddao_3v3>;
  439         vqmmc-supply = <&vddio_ao1v8>;
  440 
  441         brcmf: wifi@1 {
  442                 reg = <1>;
  443                 compatible = "brcm,bcm4329-fmac";
  444         };
  445 };
  446 
  447 /* SD card */
  448 &sd_emmc_b {
  449         status = "okay";
  450         pinctrl-0 = <&sdcard_c_pins>;
  451         pinctrl-1 = <&sdcard_clk_gate_c_pins>;
  452         pinctrl-names = "default", "clk-gate";
  453 
  454         bus-width = <4>;
  455         cap-sd-highspeed;
  456         max-frequency = <50000000>;
  457         disable-wp;
  458 
  459         cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>;
  460         vmmc-supply = <&vddao_3v3>;
  461         vqmmc-supply = <&vddao_3v3>;
  462 };
  463 
  464 /* eMMC */
  465 &sd_emmc_c {
  466         status = "okay";
  467         pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>;
  468         pinctrl-1 = <&emmc_clk_gate_pins>;
  469         pinctrl-names = "default", "clk-gate";
  470 
  471         bus-width = <8>;
  472         cap-mmc-highspeed;
  473         mmc-ddr-1_8v;
  474         mmc-hs200-1_8v;
  475         max-frequency = <200000000>;
  476         non-removable;
  477         disable-wp;
  478 
  479         mmc-pwrseq = <&emmc_pwrseq>;
  480         vmmc-supply = <&vddao_3v3>;
  481         vqmmc-supply = <&emmc_1v8>;
  482 };
  483 
  484 &tdmif_a {
  485         pinctrl-0 = <&tdm_a_dout0_pins>, <&tdm_a_fs_pins>, <&tdm_a_sclk_pins>;
  486         pinctrl-names = "default";
  487         status = "okay";
  488 
  489         assigned-clocks = <&clkc_audio AUD_CLKID_TDM_SCLK_PAD0>,
  490                           <&clkc_audio AUD_CLKID_TDM_LRCLK_PAD0>;
  491         assigned-clock-parents = <&clkc_audio AUD_CLKID_MST_A_SCLK>,
  492                                  <&clkc_audio AUD_CLKID_MST_A_LRCLK>;
  493         assigned-clock-rates = <0>, <0>;
  494 };
  495 
  496 &tdmif_b {
  497         status = "okay";
  498 };
  499 
  500 &tdmin_a {
  501         status = "okay";
  502 };
  503 
  504 &tdmin_b {
  505         status = "okay";
  506 };
  507 
  508 &tdmout_a {
  509         status = "okay";
  510 };
  511 
  512 &tdmout_b {
  513         status = "okay";
  514 };
  515 
  516 &toddr_a {
  517         status = "okay";
  518 };
  519 
  520 &toddr_b {
  521         status = "okay";
  522 };
  523 
  524 &toddr_c {
  525         status = "okay";
  526 };
  527 
  528 &tohdmitx {
  529         status = "okay";
  530 };
  531 
  532 &uart_A {
  533         status = "okay";
  534         pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
  535         pinctrl-names = "default";
  536         uart-has-rtscts;
  537 
  538         bluetooth {
  539                 compatible = "brcm,bcm43438-bt";
  540                 shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
  541                 max-speed = <2000000>;
  542                 clocks = <&wifi32k>;
  543                 clock-names = "lpo";
  544                 vbat-supply = <&vddao_3v3>;
  545                 vddio-supply = <&vddio_ao1v8>;
  546         };
  547 };
  548 
  549 &uart_AO {
  550         status = "okay";
  551         pinctrl-0 = <&uart_ao_a_pins>;
  552         pinctrl-names = "default";
  553 };
  554 
  555 &usb {
  556         status = "okay";
  557         dr_mode = "host";
  558 };

Cache object: 5beb65eedbe5f872339996106090d6c8


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