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

Cache object: f06ef03926b8dee1d867bd924c99638d


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