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/allwinner/sun50i-a64-orangepi-win.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 // Copyright (C) 2017 Jagan Teki <jteki@openedev.com>
    3 // Copyright (C) 2017-2018 Samuel Holland <samuel@sholland.org>
    4 
    5 /dts-v1/;
    6 
    7 #include "sun50i-a64.dtsi"
    8 #include "sun50i-a64-cpu-opp.dtsi"
    9 
   10 #include <dt-bindings/gpio/gpio.h>
   11 
   12 / {
   13         model = "OrangePi Win/Win Plus";
   14         compatible = "xunlong,orangepi-win", "allwinner,sun50i-a64";
   15 
   16         aliases {
   17                 ethernet0 = &emac;
   18                 serial0 = &uart0;
   19                 serial1 = &uart1;
   20                 serial2 = &uart2;
   21                 serial3 = &uart3;
   22                 serial4 = &uart4;
   23         };
   24 
   25         chosen {
   26                 stdout-path = "serial0:115200n8";
   27         };
   28 
   29         hdmi-connector {
   30                 compatible = "hdmi-connector";
   31                 type = "a";
   32 
   33                 port {
   34                         hdmi_con_in: endpoint {
   35                                 remote-endpoint = <&hdmi_out_con>;
   36                         };
   37                 };
   38         };
   39 
   40         leds {
   41                 compatible = "gpio-leds";
   42 
   43                 led-0 {
   44                         label = "orangepi:green:status";
   45                         gpios = <&pio 7 11 GPIO_ACTIVE_HIGH>; /* PH11 */
   46                 };
   47         };
   48 
   49         reg_gmac_3v3: gmac-3v3 {
   50                 compatible = "regulator-fixed";
   51                 regulator-name = "gmac-3v3";
   52                 regulator-min-microvolt = <3300000>;
   53                 regulator-max-microvolt = <3300000>;
   54                 regulator-boot-on;
   55                 enable-active-high;
   56                 gpio = <&pio 3 14 GPIO_ACTIVE_HIGH>; /* PD14 */
   57                 status = "okay";
   58         };
   59 
   60         reg_usb1_vbus: usb1-vbus {
   61                 compatible = "regulator-fixed";
   62                 regulator-name = "usb1-vbus";
   63                 regulator-min-microvolt = <5000000>;
   64                 regulator-max-microvolt = <5000000>;
   65                 regulator-boot-on;
   66                 enable-active-high;
   67                 gpio = <&pio 3 7 GPIO_ACTIVE_HIGH>; /* PD7 */
   68                 status = "okay";
   69         };
   70 
   71         wifi_pwrseq: wifi_pwrseq {
   72                 compatible = "mmc-pwrseq-simple";
   73                 reset-gpios = <&r_pio 0 8 GPIO_ACTIVE_LOW>; /* PL8 */
   74                 clocks = <&rtc CLK_OSC32K_FANOUT>;
   75                 clock-names = "ext_clock";
   76         };
   77 };
   78 
   79 &codec {
   80         status = "okay";
   81 };
   82 
   83 &codec_analog {
   84         cpvdd-supply = <&reg_eldo1>;
   85         status = "okay";
   86 };
   87 
   88 &cpu0 {
   89         cpu-supply = <&reg_dcdc2>;
   90 };
   91 
   92 &cpu1 {
   93         cpu-supply = <&reg_dcdc2>;
   94 };
   95 
   96 &cpu2 {
   97         cpu-supply = <&reg_dcdc2>;
   98 };
   99 
  100 &cpu3 {
  101         cpu-supply = <&reg_dcdc2>;
  102 };
  103 
  104 &dai {
  105         status = "okay";
  106 };
  107 
  108 &de {
  109         status = "okay";
  110 };
  111 
  112 &ehci0 {
  113         status = "okay";
  114 };
  115 
  116 &ehci1 {
  117         status = "okay";
  118 };
  119 
  120 &emac {
  121         pinctrl-names = "default";
  122         pinctrl-0 = <&rgmii_pins>;
  123         phy-mode = "rgmii-id";
  124         phy-handle = <&ext_rgmii_phy>;
  125         phy-supply = <&reg_gmac_3v3>;
  126         status = "okay";
  127 };
  128 
  129 &hdmi {
  130         hvcc-supply = <&reg_dldo1>;
  131         status = "okay";
  132 };
  133 
  134 &hdmi_out {
  135         hdmi_out_con: endpoint {
  136                 remote-endpoint = <&hdmi_con_in>;
  137         };
  138 };
  139 
  140 &mdio {
  141         ext_rgmii_phy: ethernet-phy@1 {
  142                 compatible = "ethernet-phy-ieee802.3-c22";
  143                 reg = <1>;
  144         };
  145 };
  146 
  147 &mmc0 {
  148         pinctrl-names = "default";
  149         pinctrl-0 = <&mmc0_pins>;
  150         vmmc-supply = <&reg_dcdc1>;
  151         cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
  152         disable-wp;
  153         bus-width = <4>;
  154         status = "okay";
  155 };
  156 
  157 &mmc1 {
  158         pinctrl-names = "default";
  159         pinctrl-0 = <&mmc1_pins>;
  160         vmmc-supply = <&reg_dldo2>;
  161         vqmmc-supply = <&reg_dldo4>;
  162         mmc-pwrseq = <&wifi_pwrseq>;
  163         bus-width = <4>;
  164         non-removable;
  165         status = "okay";
  166 
  167         brcmf: wifi@1 {
  168                 reg = <1>;
  169                 compatible = "brcm,bcm4329-fmac";
  170                 interrupt-parent = <&r_pio>;
  171                 interrupts = <0 7 IRQ_TYPE_LEVEL_LOW>; /* PL7 */
  172                 interrupt-names = "host-wake";
  173         };
  174 };
  175 
  176 &ohci0 {
  177         status = "okay";
  178 };
  179 
  180 &ohci1 {
  181         status = "okay";
  182 };
  183 
  184 &r_ir {
  185         status = "okay";
  186 };
  187 
  188 &r_rsb {
  189         status = "okay";
  190 
  191         axp803: pmic@3a3 {
  192                 compatible = "x-powers,axp803";
  193                 reg = <0x3a3>;
  194                 interrupt-parent = <&r_intc>;
  195                 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_LOW>;
  196                 x-powers,drive-vbus-en; /* set N_VBUSEN as output pin */
  197         };
  198 };
  199 
  200 #include "axp803.dtsi"
  201 
  202 &ac_power_supply {
  203         status = "okay";
  204 };
  205 
  206 &battery_power_supply {
  207         status = "okay";
  208 };
  209 
  210 &reg_aldo1 {
  211         regulator-min-microvolt = <2800000>;
  212         regulator-max-microvolt = <2800000>;
  213         regulator-name = "afvcc-csi";
  214 };
  215 
  216 &reg_aldo2 {
  217         regulator-always-on;
  218         regulator-min-microvolt = <1800000>;
  219         regulator-max-microvolt = <3300000>;
  220         regulator-name = "vcc-pl";
  221 };
  222 
  223 &reg_aldo3 {
  224         regulator-always-on;
  225         regulator-min-microvolt = <3000000>;
  226         regulator-max-microvolt = <3000000>;
  227         regulator-name = "vcc-pll-avcc";
  228 };
  229 
  230 &reg_dcdc1 {
  231         regulator-always-on;
  232         regulator-min-microvolt = <3300000>;
  233         regulator-max-microvolt = <3300000>;
  234         regulator-name = "vcc-3v3";
  235 };
  236 
  237 &reg_dcdc2 {
  238         regulator-always-on;
  239         regulator-min-microvolt = <1040000>;
  240         regulator-max-microvolt = <1300000>;
  241         regulator-name = "vdd-cpux";
  242 };
  243 
  244 /* DCDC3 is polyphased with DCDC2 */
  245 
  246 &reg_dcdc5 {
  247         regulator-always-on;
  248         regulator-min-microvolt = <1500000>;
  249         regulator-max-microvolt = <1500000>;
  250         regulator-name = "vcc-dram";
  251 };
  252 
  253 &reg_dcdc6 {
  254         regulator-always-on;
  255         regulator-min-microvolt = <1100000>;
  256         regulator-max-microvolt = <1100000>;
  257         regulator-name = "vdd-sys";
  258 };
  259 
  260 &reg_dldo1 {
  261         regulator-min-microvolt = <3300000>;
  262         regulator-max-microvolt = <3300000>;
  263         regulator-name = "vcc-hdmi-dsi";
  264 };
  265 
  266 &reg_dldo2 {
  267         regulator-min-microvolt = <3300000>;
  268         regulator-max-microvolt = <3300000>;
  269         regulator-name = "vcc-wifi";
  270 };
  271 
  272 &reg_dldo3 {
  273         regulator-min-microvolt = <3300000>;
  274         regulator-max-microvolt = <3300000>;
  275         regulator-name = "avdd-csi";
  276 };
  277 
  278 &reg_dldo4 {
  279         regulator-min-microvolt = <3300000>;
  280         regulator-max-microvolt = <3300000>;
  281         regulator-name = "vcc-wifi-io";
  282 };
  283 
  284 &reg_drivevbus {
  285         regulator-name = "usb0-vbus";
  286         status = "okay";
  287 };
  288 
  289 &reg_eldo1 {
  290         regulator-min-microvolt = <1800000>;
  291         regulator-max-microvolt = <1800000>;
  292         regulator-name = "cpvdd";
  293 };
  294 
  295 &reg_eldo3 {
  296         regulator-min-microvolt = <1500000>;
  297         regulator-max-microvolt = <1800000>;
  298         regulator-name = "dvdd-csi";
  299 };
  300 
  301 &reg_fldo1 {
  302         regulator-min-microvolt = <1200000>;
  303         regulator-max-microvolt = <1200000>;
  304         regulator-name = "vcc-1v2-hsic";
  305 };
  306 
  307 /*
  308  * The A64 chip cannot work without this regulator off, although
  309  * it seems to be only driving the AR100 core.
  310  * Maybe we don't still know well about CPUs domain.
  311  */
  312 &reg_fldo2 {
  313         regulator-always-on;
  314         regulator-min-microvolt = <1100000>;
  315         regulator-max-microvolt = <1100000>;
  316         regulator-name = "vdd-cpus";
  317 };
  318 
  319 &reg_rtc_ldo {
  320         regulator-name = "vcc-rtc";
  321 };
  322 
  323 &simplefb_hdmi {
  324         vcc-hdmi-supply = <&reg_dldo1>;
  325 };
  326 
  327 &sound {
  328         status = "okay";
  329         simple-audio-card,widgets = "Headphone", "Headphone Jack",
  330                                     "Microphone", "Microphone Jack",
  331                                     "Microphone", "Onboard Microphone";
  332         simple-audio-card,routing =
  333                         "Left DAC", "DACL",
  334                         "Right DAC", "DACR",
  335                         "ADCL", "Left ADC",
  336                         "ADCR", "Right ADC",
  337                         "Headphone Jack", "HP",
  338                         "MIC2", "Microphone Jack",
  339                         "Onboard Microphone", "MBIAS",
  340                         "MIC1", "Onboard Microphone";
  341 };
  342 
  343 &spi0 {
  344         status = "okay";
  345 
  346         flash@0 {
  347                 compatible = "mxicy,mx25l1606e", "jedec,spi-nor";
  348                 reg = <0>;
  349                 spi-max-frequency = <80000000>;
  350                 m25p,fast-read;
  351                 status = "okay";
  352         };
  353 };
  354 
  355 /* On debug connector */
  356 &uart0 {
  357         pinctrl-names = "default";
  358         pinctrl-0 = <&uart0_pb_pins>;
  359         status = "okay";
  360 };
  361 
  362 /* Bluetooth */
  363 &uart1 {
  364         pinctrl-names = "default";
  365         pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>;
  366         uart-has-rtscts;
  367         status = "okay";
  368 
  369         bluetooth {
  370                 compatible = "brcm,bcm43438-bt";
  371                 max-speed = <1500000>;
  372                 clocks = <&rtc CLK_OSC32K_FANOUT>;
  373                 clock-names = "lpo";
  374                 vbat-supply = <&reg_dldo2>;
  375                 vddio-supply = <&reg_dldo4>;
  376                 device-wakeup-gpios = <&r_pio 0 6 GPIO_ACTIVE_HIGH>; /* PL6 */
  377                 host-wakeup-gpios = <&r_pio 0 5 GPIO_ACTIVE_HIGH>; /* PL5 */
  378                 shutdown-gpios = <&r_pio 0 4 GPIO_ACTIVE_HIGH>; /* PL4 */
  379         };
  380 };
  381 
  382 /* On Pi-2 connector, RTS/CTS optional */
  383 &uart2 {
  384         pinctrl-names = "default";
  385         pinctrl-0 = <&uart2_pins>;
  386         status = "disabled";
  387 };
  388 
  389 /* On Pi-2 connector, RTS/CTS optional */
  390 &uart3 {
  391         pinctrl-names = "default";
  392         pinctrl-0 = <&uart3_pins>;
  393         status = "disabled";
  394 };
  395 
  396 /* On Pi-2 connector (labeled for SPI1), RTS/CTS optional */
  397 &uart4 {
  398         pinctrl-names = "default";
  399         pinctrl-0 = <&uart4_pins>;
  400         status = "disabled";
  401 };
  402 
  403 &usb_otg {
  404         dr_mode = "otg";
  405         status = "okay";
  406 };
  407 
  408 &usbphy {
  409         usb0_id_det-gpios = <&pio 7 9 GPIO_ACTIVE_HIGH>; /* PH9 */
  410         usb0_vbus-supply = <&reg_drivevbus>;
  411         usb1_vbus-supply = <&reg_usb1_vbus>;
  412         status = "okay";
  413 };

Cache object: ee45c1bc6931dac007afa9437f8e2a8e


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