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-g12b-w400.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) 2019 BayLibre, SAS
    4  * Author: Neil Armstrong <narmstrong@baylibre.com>
    5  * Copyright (c) 2019 Christian Hewitt <christianshewitt@gmail.com>
    6  */
    7 
    8 /dts-v1/;
    9 
   10 #include "meson-g12b.dtsi"
   11 #include "meson-g12b-s922x.dtsi"
   12 #include <dt-bindings/input/input.h>
   13 #include <dt-bindings/gpio/meson-g12a-gpio.h>
   14 
   15 / {
   16         aliases {
   17                 serial0 = &uart_AO;
   18                 ethernet0 = &ethmac;
   19         };
   20 
   21         chosen {
   22                 stdout-path = "serial0:115200n8";
   23         };
   24 
   25         memory@0 {
   26                 device_type = "memory";
   27                 reg = <0x0 0x0 0x0 0x40000000>;
   28         };
   29 
   30         emmc_pwrseq: emmc-pwrseq {
   31                 compatible = "mmc-pwrseq-emmc";
   32                 reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>;
   33         };
   34 
   35         sdio_pwrseq: sdio-pwrseq {
   36                 compatible = "mmc-pwrseq-simple";
   37                 reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
   38                 clocks = <&wifi32k>;
   39                 clock-names = "ext_clock";
   40         };
   41 
   42         flash_1v8: regulator-flash_1v8 {
   43                 compatible = "regulator-fixed";
   44                 regulator-name = "FLASH_1V8";
   45                 regulator-min-microvolt = <1800000>;
   46                 regulator-max-microvolt = <1800000>;
   47                 vin-supply = <&vcc_3v3>;
   48                 regulator-always-on;
   49         };
   50 
   51         main_12v: regulator-main_12v {
   52                 compatible = "regulator-fixed";
   53                 regulator-name = "12V";
   54                 regulator-min-microvolt = <12000000>;
   55                 regulator-max-microvolt = <12000000>;
   56                 regulator-always-on;
   57         };
   58 
   59         vcc_5v: regulator-vcc_5v {
   60                 compatible = "regulator-fixed";
   61                 regulator-name = "VCC_5V";
   62                 regulator-min-microvolt = <5000000>;
   63                 regulator-max-microvolt = <5000000>;
   64                 vin-supply = <&main_12v>;
   65 
   66                 gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>;
   67                 enable-active-high;
   68         };
   69 
   70         vcc_1v8: regulator-vcc_1v8 {
   71                 compatible = "regulator-fixed";
   72                 regulator-name = "VCC_1V8";
   73                 regulator-min-microvolt = <1800000>;
   74                 regulator-max-microvolt = <1800000>;
   75                 vin-supply = <&vcc_3v3>;
   76                 regulator-always-on;
   77         };
   78 
   79         vcc_3v3: regulator-vcc_3v3 {
   80                 compatible = "regulator-fixed";
   81                 regulator-name = "VCC_3V3";
   82                 regulator-min-microvolt = <3300000>;
   83                 regulator-max-microvolt = <3300000>;
   84                 vin-supply = <&vddao_3v3>;
   85                 regulator-always-on;
   86                 /* FIXME: actually controlled by VDDCPU_B_EN */
   87         };
   88 
   89         vddcpu_a: regulator-vddcpu-a {
   90                 /*
   91                  * MP1653 Regulator.
   92                  */
   93                 compatible = "pwm-regulator";
   94 
   95                 regulator-name = "VDDCPU_A";
   96                 regulator-min-microvolt = <721000>;
   97                 regulator-max-microvolt = <1022000>;
   98 
   99                 pwm-supply = <&main_12v>;
  100 
  101                 pwms = <&pwm_ab 0 1250 0>;
  102                 pwm-dutycycle-range = <100 0>;
  103 
  104                 regulator-boot-on;
  105                 regulator-always-on;
  106         };
  107 
  108         vddcpu_b: regulator-vddcpu-b {
  109                 /*
  110                  * MP1652 Regulator.
  111                  */
  112                 compatible = "pwm-regulator";
  113 
  114                 regulator-name = "VDDCPU_B";
  115                 regulator-min-microvolt = <721000>;
  116                 regulator-max-microvolt = <1022000>;
  117 
  118                 pwm-supply = <&main_12v>;
  119 
  120                 pwms = <&pwm_AO_cd 1 1250 0>;
  121                 pwm-dutycycle-range = <100 0>;
  122 
  123                 regulator-boot-on;
  124                 regulator-always-on;
  125         };
  126 
  127         usb1_pow: regulator-usb1-pow {
  128                 compatible = "regulator-fixed";
  129                 regulator-name = "USB1_POW";
  130                 regulator-min-microvolt = <5000000>;
  131                 regulator-max-microvolt = <5000000>;
  132                 vin-supply = <&vcc_5v>;
  133 
  134                 /* connected to SY6280A Power Switch */
  135                 gpio = <&gpio GPIOA_8 GPIO_ACTIVE_HIGH>;
  136                 enable-active-high;
  137         };
  138 
  139         usb_pwr_en: regulator-usb-pwr-en {
  140                 compatible = "regulator-fixed";
  141                 regulator-name = "USB_PWR_EN";
  142                 regulator-min-microvolt = <5000000>;
  143                 regulator-max-microvolt = <5000000>;
  144                 vin-supply = <&vcc_5v>;
  145 
  146                 /* Connected to USB3 Type-A Port power enable */
  147                 gpio = <&gpio GPIOAO_7 GPIO_ACTIVE_HIGH>;
  148                 enable-active-high;
  149         };
  150 
  151         vddao_1v8: regulator-vddao-1v8 {
  152                 compatible = "regulator-fixed";
  153                 regulator-name = "VDDAO_1V8";
  154                 regulator-min-microvolt = <1800000>;
  155                 regulator-max-microvolt = <1800000>;
  156                 vin-supply = <&vddao_3v3>;
  157                 regulator-always-on;
  158         };
  159 
  160         vddao_3v3: regulator-vddao-3v3 {
  161                 compatible = "regulator-fixed";
  162                 regulator-name = "VDDAO_3V3";
  163                 regulator-min-microvolt = <3300000>;
  164                 regulator-max-microvolt = <3300000>;
  165                 vin-supply = <&main_12v>;
  166                 regulator-always-on;
  167         };
  168 
  169         cvbs-connector {
  170                 compatible = "composite-video-connector";
  171 
  172                 port {
  173                         cvbs_connector_in: endpoint {
  174                                 remote-endpoint = <&cvbs_vdac_out>;
  175                         };
  176                 };
  177         };
  178 
  179         hdmi-connector {
  180                 compatible = "hdmi-connector";
  181                 type = "a";
  182 
  183                 port {
  184                         hdmi_connector_in: endpoint {
  185                                 remote-endpoint = <&hdmi_tx_tmds_out>;
  186                         };
  187                 };
  188         };
  189 
  190         wifi32k: wifi32k {
  191                 compatible = "pwm-clock";
  192                 #clock-cells = <0>;
  193                 clock-frequency = <32768>;
  194                 pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
  195         };
  196 };
  197 
  198 &cec_AO {
  199         pinctrl-0 = <&cec_ao_a_h_pins>;
  200         pinctrl-names = "default";
  201         status = "disabled";
  202         hdmi-phandle = <&hdmi_tx>;
  203 };
  204 
  205 &cecb_AO {
  206         pinctrl-0 = <&cec_ao_b_h_pins>;
  207         pinctrl-names = "default";
  208         status = "okay";
  209         hdmi-phandle = <&hdmi_tx>;
  210 };
  211 
  212 &cpu0 {
  213         cpu-supply = <&vddcpu_b>;
  214         operating-points-v2 = <&cpu_opp_table_0>;
  215         clocks = <&clkc CLKID_CPU_CLK>;
  216         clock-latency = <50000>;
  217 };
  218 
  219 &cpu1 {
  220         cpu-supply = <&vddcpu_b>;
  221         operating-points-v2 = <&cpu_opp_table_0>;
  222         clocks = <&clkc CLKID_CPU_CLK>;
  223         clock-latency = <50000>;
  224 };
  225 
  226 &cpu100 {
  227         cpu-supply = <&vddcpu_a>;
  228         operating-points-v2 = <&cpub_opp_table_1>;
  229         clocks = <&clkc CLKID_CPUB_CLK>;
  230         clock-latency = <50000>;
  231 };
  232 
  233 &cpu101 {
  234         cpu-supply = <&vddcpu_a>;
  235         operating-points-v2 = <&cpub_opp_table_1>;
  236         clocks = <&clkc CLKID_CPUB_CLK>;
  237         clock-latency = <50000>;
  238 };
  239 
  240 &cpu102 {
  241         cpu-supply = <&vddcpu_a>;
  242         operating-points-v2 = <&cpub_opp_table_1>;
  243         clocks = <&clkc CLKID_CPUB_CLK>;
  244         clock-latency = <50000>;
  245 };
  246 
  247 &cpu103 {
  248         cpu-supply = <&vddcpu_a>;
  249         operating-points-v2 = <&cpub_opp_table_1>;
  250         clocks = <&clkc CLKID_CPUB_CLK>;
  251         clock-latency = <50000>;
  252 };
  253 
  254 &cvbs_vdac_port {
  255         cvbs_vdac_out: endpoint {
  256                 remote-endpoint = <&cvbs_connector_in>;
  257         };
  258 };
  259 
  260 &ext_mdio {
  261         external_phy: ethernet-phy@0 {
  262                 /* Realtek RTL8211F (0x001cc916) */
  263                 reg = <0>;
  264                 max-speed = <1000>;
  265 
  266                 reset-assert-us = <10000>;
  267                 reset-deassert-us = <80000>;
  268                 reset-gpios = <&gpio GPIOZ_15 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>;
  269 
  270                 interrupt-parent = <&gpio_intc>;
  271                 /* MAC_INTR on GPIOZ_14 */
  272                 interrupts = <26 IRQ_TYPE_LEVEL_LOW>;
  273         };
  274 };
  275 
  276 &ethmac {
  277         pinctrl-0 = <&eth_pins>, <&eth_rgmii_pins>;
  278         pinctrl-names = "default";
  279         status = "okay";
  280         phy-mode = "rgmii";
  281         phy-handle = <&external_phy>;
  282         amlogic,tx-delay-ns = <2>;
  283 };
  284 
  285 &hdmi_tx {
  286         status = "okay";
  287         pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>;
  288         pinctrl-names = "default";
  289         hdmi-supply = <&vcc_5v>;
  290 };
  291 
  292 &hdmi_tx_tmds_port {
  293         hdmi_tx_tmds_out: endpoint {
  294                 remote-endpoint = <&hdmi_connector_in>;
  295         };
  296 };
  297 
  298 &ir {
  299         status = "okay";
  300         pinctrl-0 = <&remote_input_ao_pins>;
  301         pinctrl-names = "default";
  302 };
  303 
  304 &pwm_ab {
  305         pinctrl-0 = <&pwm_a_e_pins>;
  306         pinctrl-names = "default";
  307         clocks = <&xtal>;
  308         clock-names = "clkin0";
  309         status = "okay";
  310 };
  311 
  312 &pwm_AO_cd {
  313         pinctrl-0 = <&pwm_ao_d_e_pins>;
  314         pinctrl-names = "default";
  315         clocks = <&xtal>;
  316         clock-names = "clkin1";
  317         status = "okay";
  318 };
  319 
  320 &pwm_ef {
  321         pinctrl-0 = <&pwm_e_pins>;
  322         pinctrl-names = "default";
  323         clocks = <&xtal>;
  324         clock-names = "clkin0";
  325         status = "okay";
  326 };
  327 
  328 /* SDIO */
  329 &sd_emmc_a {
  330         status = "okay";
  331         pinctrl-0 = <&sdio_pins>;
  332         pinctrl-1 = <&sdio_clk_gate_pins>;
  333         pinctrl-names = "default", "clk-gate";
  334         #address-cells = <1>;
  335         #size-cells = <0>;
  336 
  337         bus-width = <4>;
  338         cap-sd-highspeed;
  339         max-frequency = <100000000>;
  340 
  341         /* WiFi firmware requires power to be kept while in suspend */
  342         keep-power-in-suspend;
  343 
  344         non-removable;
  345         disable-wp;
  346 
  347         mmc-pwrseq = <&sdio_pwrseq>;
  348 
  349         vmmc-supply = <&vddao_3v3>;
  350         vqmmc-supply = <&vddao_1v8>;
  351 
  352         brcmf: wifi@1 {
  353                 reg = <1>;
  354                 compatible = "brcm,bcm4329-fmac";
  355         };
  356 };
  357 
  358 /* SD card */
  359 &sd_emmc_b {
  360         status = "okay";
  361         pinctrl-0 = <&sdcard_c_pins>;
  362         pinctrl-1 = <&sdcard_clk_gate_c_pins>;
  363         pinctrl-names = "default", "clk-gate";
  364 
  365         bus-width = <4>;
  366         cap-sd-highspeed;
  367         max-frequency = <50000000>;
  368         disable-wp;
  369 
  370         cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>;
  371         vmmc-supply = <&vddao_3v3>;
  372         vqmmc-supply = <&vddao_3v3>;
  373 };
  374 
  375 /* eMMC */
  376 &sd_emmc_c {
  377         status = "okay";
  378         pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>;
  379         pinctrl-1 = <&emmc_clk_gate_pins>;
  380         pinctrl-names = "default", "clk-gate";
  381 
  382         bus-width = <8>;
  383         cap-mmc-highspeed;
  384         max-frequency = <100000000>;
  385         disable-wp;
  386 
  387         mmc-pwrseq = <&emmc_pwrseq>;
  388         vmmc-supply = <&vcc_3v3>;
  389         vqmmc-supply = <&flash_1v8>;
  390 };
  391 
  392 &uart_A {
  393         status = "okay";
  394         pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
  395         pinctrl-names = "default";
  396         uart-has-rtscts;
  397 
  398         bluetooth {
  399                 compatible = "brcm,bcm43438-bt";
  400                 shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
  401                 max-speed = <2000000>;
  402                 clocks = <&wifi32k>;
  403                 clock-names = "lpo";
  404         };
  405 };
  406 
  407 &uart_AO {
  408         status = "okay";
  409         pinctrl-0 = <&uart_ao_a_pins>;
  410         pinctrl-names = "default";
  411 };
  412 
  413 &usb {
  414         status = "okay";
  415         dr_mode = "host";
  416         vbus-supply = <&usb_pwr_en>;
  417 };
  418 
  419 &usb2_phy0 {
  420         phy-supply = <&usb1_pow>;
  421 };
  422 
  423 &usb2_phy1 {
  424         phy-supply = <&usb1_pow>;
  425 };

Cache object: 26586a3a69e5236f39ed77f46fdf67f3


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