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-gx-libretech-pc.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
    2 /*
    3  * Copyright (c) 2019 BayLibre SAS.
    4  * Author: Jerome Brunet <jbrunet@baylibre.com>
    5  */
    6 
    7 /* Libretech Amlogic GX PC form factor - AKA: Tartiflette */
    8 
    9 #include <dt-bindings/input/input.h>
   10 #include <dt-bindings/leds/common.h>
   11 #include <dt-bindings/sound/meson-aiu.h>
   12 
   13 / {
   14         adc-keys {
   15                 compatible = "adc-keys";
   16                 io-channels = <&saradc 0>;
   17                 io-channel-names = "buttons";
   18                 keyup-threshold-microvolt = <1800000>;
   19 
   20                 update-button {
   21                         label = "update";
   22                         linux,code = <KEY_VENDOR>;
   23                         press-threshold-microvolt = <1300000>;
   24                 };
   25         };
   26 
   27         aliases {
   28                 serial0 = &uart_AO;
   29                 ethernet0 = &ethmac;
   30                 spi0 = &spifc;
   31         };
   32 
   33         dio2133: analog-amplifier {
   34                 compatible = "simple-audio-amplifier";
   35                 sound-name-prefix = "AU2";
   36                 VCC-supply = <&vcc5v>;
   37                 enable-gpios = <&gpio GPIOH_5 GPIO_ACTIVE_HIGH>;
   38         };
   39 
   40         chosen {
   41                 stdout-path = "serial0:115200n8";
   42         };
   43 
   44         cvbs-connector {
   45                 compatible = "composite-video-connector";
   46                 status = "disabled";
   47 
   48                 port {
   49                         cvbs_connector_in: endpoint {
   50                                 remote-endpoint = <&cvbs_vdac_out>;
   51                         };
   52                 };
   53         };
   54 
   55         emmc_pwrseq: emmc-pwrseq {
   56                 compatible = "mmc-pwrseq-emmc";
   57                 reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
   58         };
   59 
   60         hdmi-connector {
   61                 compatible = "hdmi-connector";
   62                 type = "a";
   63 
   64                 port {
   65                         hdmi_connector_in: endpoint {
   66                                 remote-endpoint = <&hdmi_tx_tmds_out>;
   67                         };
   68                 };
   69         };
   70 
   71         gpio-keys-polled {
   72                 compatible = "gpio-keys-polled";
   73                 poll-interval = <100>;
   74 
   75                 power-button {
   76                         label = "power";
   77                         linux,code = <KEY_POWER>;
   78                         gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>;
   79                 };
   80         };
   81 
   82         memory@0 {
   83                 device_type = "memory";
   84                 reg = <0x0 0x0 0x0 0x80000000>;
   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         leds {
  105                 compatible = "gpio-leds";
  106 
  107                 led-green {
  108                         color = <LED_COLOR_ID_GREEN>;
  109                         function = LED_FUNCTION_DISK_ACTIVITY;
  110                         gpios = <&gpio_ao GPIOAO_9 GPIO_ACTIVE_HIGH>;
  111                         linux,default-trigger = "disk-activity";
  112                 };
  113 
  114                 led-blue {
  115                         color = <LED_COLOR_ID_BLUE>;
  116                         function = LED_FUNCTION_STATUS;
  117                         gpios = <&gpio GPIODV_28 GPIO_ACTIVE_HIGH>;
  118                         linux,default-trigger = "heartbeat";
  119                         panic-indicator;
  120                 };
  121         };
  122 
  123         vcc_card: regulator-vcc_card {
  124                 compatible = "regulator-fixed";
  125                 regulator-name = "VCC_CARD";
  126                 regulator-min-microvolt = <3300000>;
  127                 regulator-max-microvolt = <3300000>;
  128                 vin-supply = <&vddio_ao3v3>;
  129 
  130                 gpio = <&gpio GPIODV_4 GPIO_ACTIVE_HIGH>;
  131                 enable-active-high;
  132         };
  133 
  134         vcc5v: regulator-vcc5v {
  135                 compatible = "regulator-fixed";
  136                 regulator-name = "VCC5V";
  137                 regulator-min-microvolt = <5000000>;
  138                 regulator-max-microvolt = <5000000>;
  139                 vin-supply = <&ao_5v>;
  140 
  141                 gpio = <&gpio GPIOH_3 GPIO_OPEN_DRAIN>;
  142         };
  143 
  144         vddio_ao18: regulator-vddio_ao18 {
  145                 compatible = "regulator-fixed";
  146                 regulator-name = "VDDIO_AO18";
  147                 regulator-min-microvolt = <1800000>;
  148                 regulator-max-microvolt = <1800000>;
  149                 vin-supply = <&ao_5v>;
  150                 regulator-always-on;
  151         };
  152 
  153         vddio_ao3v3: regulator-vddio_ao3v3 {
  154                 compatible = "regulator-fixed";
  155                 regulator-name = "VDDIO_AO3V3";
  156                 regulator-min-microvolt = <3300000>;
  157                 regulator-max-microvolt = <3300000>;
  158                 vin-supply = <&ao_5v>;
  159                 regulator-always-on;
  160         };
  161 
  162         vddio_boot: regulator-vddio_boot {
  163                 compatible = "regulator-fixed";
  164                 regulator-name = "VDDIO_BOOT";
  165                 regulator-min-microvolt = <1800000>;
  166                 regulator-max-microvolt = <1800000>;
  167                 vin-supply = <&vddio_ao3v3>;
  168                 regulator-always-on;
  169         };
  170 
  171         vddio_card: regulator-vddio-card {
  172                 compatible = "regulator-gpio";
  173                 regulator-name = "VDDIO_CARD";
  174                 regulator-min-microvolt = <1800000>;
  175                 regulator-max-microvolt = <3300000>;
  176 
  177                 gpios = <&gpio GPIODV_5 GPIO_ACTIVE_HIGH>;
  178                 gpios-states = <0>;
  179 
  180                 states = <3300000 0>,
  181                          <1800000 1>;
  182 
  183                 regulator-settling-time-up-us = <200>;
  184                 regulator-settling-time-down-us = <50000>;
  185         };
  186 
  187         sound {
  188                 compatible = "amlogic,gx-sound-card";
  189                 model = "LIBRETECH-PC";
  190                 audio-aux-devs = <&dio2133>;
  191                 audio-widgets = "Speaker", "7J4-14 LEFT",
  192                                 "Speaker", "7J4-11 RIGHT";
  193                 audio-routing = "AU2 INL", "ACODEC LOLN",
  194                                 "AU2 INR", "ACODEC LORN",
  195                                 "7J4-14 LEFT", "AU2 OUTL",
  196                                 "7J4-11 RIGHT", "AU2 OUTR";
  197                 assigned-clocks = <&clkc CLKID_MPLL0>,
  198                                   <&clkc CLKID_MPLL1>,
  199                                   <&clkc CLKID_MPLL2>;
  200                 assigned-clock-parents = <0>, <0>, <0>;
  201                 assigned-clock-rates = <294912000>,
  202                                        <270950400>,
  203                                        <393216000>;
  204                 status = "okay";
  205 
  206                 dai-link-0 {
  207                         sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>;
  208                 };
  209 
  210                 dai-link-1 {
  211                         sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>;
  212                         dai-format = "i2s";
  213                         mclk-fs = <256>;
  214 
  215                         codec-0 {
  216                                 sound-dai = <&aiu AIU_HDMI CTRL_I2S>;
  217                         };
  218 
  219                         codec-1 {
  220                                 sound-dai = <&aiu AIU_ACODEC CTRL_I2S>;
  221                         };
  222                 };
  223 
  224                 dai-link-2 {
  225                         sound-dai = <&aiu AIU_HDMI CTRL_OUT>;
  226 
  227                         codec-0 {
  228                                 sound-dai = <&hdmi_tx>;
  229                         };
  230                 };
  231 
  232                 dai-link-3 {
  233                         sound-dai = <&aiu AIU_ACODEC CTRL_OUT>;
  234 
  235                         codec-0 {
  236                                 sound-dai = <&acodec>;
  237                         };
  238                 };
  239         };
  240 };
  241 
  242 &acodec {
  243         AVDD-supply = <&vddio_ao18>;
  244         status = "okay";
  245 };
  246 
  247 &aiu {
  248         status = "okay";
  249 };
  250 
  251 &cec_AO {
  252         pinctrl-0 = <&ao_cec_pins>;
  253         pinctrl-names = "default";
  254         hdmi-phandle = <&hdmi_tx>;
  255         status = "okay";
  256 };
  257 
  258 &cvbs_vdac_port {
  259         cvbs_vdac_out: endpoint {
  260                 remote-endpoint = <&cvbs_connector_in>;
  261         };
  262 };
  263 
  264 &ethmac {
  265         pinctrl-0 = <&eth_pins>, <&eth_phy_irq_pins>;
  266         pinctrl-names = "default";
  267         phy-handle = <&external_phy>;
  268         amlogic,tx-delay-ns = <2>;
  269         phy-mode = "rgmii";
  270         status = "okay";
  271 };
  272 
  273 &external_mdio {
  274         external_phy: ethernet-phy@0 {
  275                 reg = <0>;
  276                 max-speed = <1000>;
  277                 reset-assert-us = <10000>;
  278                 reset-deassert-us = <30000>;
  279                 reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
  280                 interrupt-parent = <&gpio_intc>;
  281                 interrupts = <25 IRQ_TYPE_LEVEL_LOW>;
  282         };
  283 };
  284 
  285 &pinctrl_periphs {
  286         /*
  287          * Make sure the reset pin of the usb HUB is driven high to take
  288          * it out of reset.
  289          */
  290         usb1_rst_pins: usb1_rst_irq {
  291                 mux {
  292                         groups = "GPIODV_3";
  293                         function = "gpio_periphs";
  294                         bias-disable;
  295                         output-high;
  296                 };
  297         };
  298 
  299         /* Make sure the phy irq pin is properly configured as input */
  300         eth_phy_irq_pins: eth_phy_irq {
  301                 mux {
  302                         groups = "GPIOZ_15";
  303                         function = "gpio_periphs";
  304                         bias-disable;
  305                         output-disable;
  306                 };
  307         };
  308 };
  309 
  310 &hdmi_tx {
  311         pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
  312         pinctrl-names = "default";
  313         hdmi-supply = <&vcc5v>;
  314         status = "okay";
  315 };
  316 
  317 &hdmi_tx_tmds_port {
  318         hdmi_tx_tmds_out: endpoint {
  319                 remote-endpoint = <&hdmi_connector_in>;
  320         };
  321 };
  322 
  323 &ir {
  324         pinctrl-0 = <&remote_input_ao_pins>;
  325         pinctrl-names = "default";
  326         status = "okay";
  327 };
  328 
  329 &i2c_C {
  330         pinctrl-0 = <&i2c_c_dv18_pins>;
  331         pinctrl-names = "default";
  332         status = "okay";
  333 
  334         rtc: rtc@51 {
  335                 reg = <0x51>;
  336                 compatible = "nxp,pcf8563";
  337                 #clock-cells = <0>;
  338                 clock-output-names = "rtc_clkout";
  339         };
  340 };
  341 
  342 &pwm_AO_ab {
  343         pinctrl-0 = <&pwm_ao_a_3_pins>;
  344         pinctrl-names = "default";
  345         clocks = <&clkc CLKID_FCLK_DIV4>;
  346         clock-names = "clkin0";
  347         status = "okay";
  348 };
  349 
  350 &pwm_ab {
  351         pinctrl-0 = <&pwm_b_pins>;
  352         pinctrl-names = "default";
  353         clocks = <&clkc CLKID_FCLK_DIV4>;
  354         clock-names = "clkin0";
  355         status = "okay";
  356 };
  357 
  358 &pwm_ef {
  359         pinctrl-0 = <&pwm_e_pins>, <&pwm_f_clk_pins>;
  360         pinctrl-names = "default";
  361         clocks = <&clkc CLKID_FCLK_DIV4>;
  362         clock-names = "clkin0";
  363         status = "okay";
  364 };
  365 
  366 &saradc {
  367         vref-supply = <&vddio_ao18>;
  368         status = "okay";
  369 };
  370 
  371 /* SD card */
  372 &sd_emmc_b {
  373         pinctrl-0 = <&sdcard_pins>;
  374         pinctrl-1 = <&sdcard_clk_gate_pins>;
  375         pinctrl-names = "default", "clk-gate";
  376 
  377         bus-width = <4>;
  378         cap-sd-highspeed;
  379         sd-uhs-sdr12;
  380         sd-uhs-sdr25;
  381         sd-uhs-sdr50;
  382         sd-uhs-ddr50;
  383         max-frequency = <200000000>;
  384         disable-wp;
  385 
  386         cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>;
  387 
  388         vmmc-supply = <&vcc_card>;
  389         vqmmc-supply = <&vddio_card>;
  390 
  391         status = "okay";
  392 };
  393 
  394 /* eMMC */
  395 &sd_emmc_c {
  396         pinctrl-0 = <&emmc_pins>;
  397         pinctrl-1 = <&emmc_clk_gate_pins>;
  398         pinctrl-names = "default", "clk-gate";
  399 
  400         bus-width = <8>;
  401         cap-mmc-highspeed;
  402         mmc-ddr-1_8v;
  403         mmc-hs200-1_8v;
  404         max-frequency = <200000000>;
  405         disable-wp;
  406 
  407         mmc-pwrseq = <&emmc_pwrseq>;
  408         vmmc-supply = <&vddio_ao3v3>;
  409         vqmmc-supply = <&vddio_boot>;
  410 
  411         status = "okay";
  412 };
  413 
  414 &spifc {
  415         pinctrl-0 = <&nor_pins>;
  416         pinctrl-names = "default";
  417         status = "okay";
  418 
  419         gd25lq128: flash@0 {
  420                 compatible = "jedec,spi-nor";
  421                 #address-cells = <1>;
  422                 #size-cells = <1>;
  423                 reg = <0>;
  424                 spi-max-frequency = <12000000>;
  425         };
  426 };
  427 
  428 &uart_AO {
  429         pinctrl-0 = <&uart_ao_a_pins>;
  430         pinctrl-names = "default";
  431         status = "okay";
  432 };
  433 
  434 &usb {
  435         status = "okay";
  436         dr_mode = "host";
  437 };
  438 
  439 &usb2_phy0 {
  440         pinctrl-0 = <&usb1_rst_pins>;
  441         pinctrl-names = "default";
  442         phy-supply = <&vcc5v>;
  443 };
  444 
  445 &usb2_phy1 {
  446         phy-supply = <&vcc5v>;
  447 };

Cache object: 73ee177fb35ce437d4fd37edb1ca3fda


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