cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

sun8i-h2-plus-bananapi-m2-zero.dts (6172B)


      1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
      2/*
      3 * Copyright (C) 2017 Icenowy Zheng <icenowy@aosc.io>
      4 *
      5 * Based on sun8i-h3-bananapi-m2-plus.dts, which is:
      6 *   Copyright (C) 2016 Chen-Yu Tsai <wens@csie.org>
      7 */
      8
      9/dts-v1/;
     10#include "sun8i-h3.dtsi"
     11#include "sunxi-common-regulators.dtsi"
     12
     13#include <dt-bindings/gpio/gpio.h>
     14#include <dt-bindings/input/input.h>
     15
     16/ {
     17	model = "Banana Pi BPI-M2-Zero";
     18	compatible = "sinovoip,bpi-m2-zero", "allwinner,sun8i-h2-plus";
     19
     20	aliases {
     21		serial0 = &uart0;
     22		serial1 = &uart1;
     23	};
     24
     25	chosen {
     26		stdout-path = "serial0:115200n8";
     27	};
     28
     29	connector {
     30		compatible = "hdmi-connector";
     31		type = "c";
     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		pwr_led {
     44			label = "bananapi-m2-zero:red:pwr";
     45			gpios = <&r_pio 0 10 GPIO_ACTIVE_LOW>; /* PL10 */
     46			default-state = "on";
     47		};
     48	};
     49
     50	gpio_keys {
     51		compatible = "gpio-keys";
     52
     53		sw4 {
     54			label = "power";
     55			linux,code = <KEY_POWER>;
     56			gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>;
     57			wakeup-source;
     58		};
     59	};
     60
     61	reg_vdd_cpux: vdd-cpux-regulator {
     62		compatible = "regulator-gpio";
     63		regulator-name = "vdd-cpux";
     64		regulator-type = "voltage";
     65		regulator-boot-on;
     66		regulator-always-on;
     67		regulator-min-microvolt = <1100000>;
     68		regulator-max-microvolt = <1300000>;
     69		regulator-ramp-delay = <50>; /* 4ms */
     70
     71		gpios = <&r_pio 0 1 GPIO_ACTIVE_HIGH>; /* PL1 */
     72		enable-active-high;
     73		gpios-states = <0x1>;
     74		states = <1100000 0>, <1300000 1>;
     75	};
     76
     77	reg_vcc_dram: vcc-dram {
     78		compatible = "regulator-fixed";
     79		regulator-name = "vcc-dram";
     80		regulator-min-microvolt = <1500000>;
     81		regulator-max-microvolt = <1500000>;
     82		regulator-always-on;
     83		regulator-boot-on;
     84		enable-active-high;
     85		gpio = <&r_pio 0 9 GPIO_ACTIVE_HIGH>; /* PL9 */
     86		vin-supply = <&reg_vcc5v0>;
     87	};
     88
     89	reg_vcc1v2: vcc1v2 {
     90		compatible = "regulator-fixed";
     91		regulator-name = "vcc1v2";
     92		regulator-min-microvolt = <1200000>;
     93		regulator-max-microvolt = <1200000>;
     94		regulator-always-on;
     95		regulator-boot-on;
     96		enable-active-high;
     97		gpio = <&r_pio 0 8 GPIO_ACTIVE_HIGH>; /* PL8 */
     98		vin-supply = <&reg_vcc5v0>;
     99	};
    100
    101	poweroff {
    102		compatible = "regulator-poweroff";
    103		cpu-supply = <&reg_vcc1v2>;
    104	};
    105
    106	wifi_pwrseq: wifi_pwrseq {
    107		compatible = "mmc-pwrseq-simple";
    108		reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */
    109		clocks = <&rtc 1>;
    110		clock-names = "ext_clock";
    111	};
    112};
    113
    114&cpu0 {
    115	cpu-supply = <&reg_vdd_cpux>;
    116};
    117
    118&de {
    119	status = "okay";
    120};
    121
    122&ehci0 {
    123	status = "okay";
    124};
    125
    126&hdmi {
    127	status = "okay";
    128};
    129
    130&hdmi_out {
    131	hdmi_out_con: endpoint {
    132		remote-endpoint = <&hdmi_con_in>;
    133	};
    134};
    135
    136&mmc0 {
    137	vmmc-supply = <&reg_vcc3v3>;
    138	bus-width = <4>;
    139	/*
    140	 * On the production batch of this board the card detect GPIO is
    141	 * high active (card inserted), although on the early samples it's
    142	 * low active.
    143	 */
    144	cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; /* PF6 */
    145	status = "okay";
    146};
    147
    148&mmc1 {
    149	vmmc-supply = <&reg_vcc3v3>;
    150	vqmmc-supply = <&reg_vcc3v3>;
    151	mmc-pwrseq = <&wifi_pwrseq>;
    152	bus-width = <4>;
    153	non-removable;
    154	status = "okay";
    155
    156	brcmf: wifi@1 {
    157		reg = <1>;
    158		compatible = "brcm,bcm4329-fmac";
    159		interrupt-parent = <&pio>;
    160		interrupts = <6 10 IRQ_TYPE_LEVEL_LOW>; /* PG10 / EINT10 */
    161		interrupt-names = "host-wake";
    162	};
    163};
    164
    165&ohci0 {
    166	status = "okay";
    167};
    168
    169&uart0 {
    170	pinctrl-names = "default";
    171	pinctrl-0 = <&uart0_pa_pins>;
    172	status = "okay";
    173};
    174
    175&uart1 {
    176	pinctrl-names = "default";
    177	pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>;
    178	uart-has-rtscts;
    179	status = "okay";
    180
    181	bluetooth {
    182		compatible = "brcm,bcm43438-bt";
    183		max-speed = <1500000>;
    184		clocks = <&rtc 1>;
    185		clock-names = "lpo";
    186		vbat-supply = <&reg_vcc3v3>;
    187		vddio-supply = <&reg_vcc3v3>;
    188		device-wakeup-gpios = <&pio 6 13 GPIO_ACTIVE_HIGH>; /* PG13 */
    189		host-wakeup-gpios = <&pio 6 11 GPIO_ACTIVE_HIGH>; /* PG11 */
    190		shutdown-gpios = <&pio 6 12 GPIO_ACTIVE_HIGH>; /* PG12 */
    191	};
    192
    193};
    194
    195&pio {
    196	gpio-line-names =
    197		/* PA */
    198		"CON2-P13", "CON2-P11", "CON2-P22", "CON2-P15",
    199			"CON3-P03", "CON3-P02", "CON2-P07", "CON2-P29",
    200		"CON2-P31", "CON2-P33", "CON2-P35", "CON2-P05",
    201			"CON2-P03", "CON2-P08", "CON2-P10", "CON2-P16",
    202		"CON2-P12", "CON2-P37", "CON2-P28", "CON2-P27",
    203			"CON2-P40", "CON2-P38", "", "",
    204		"", "", "", "", "", "", "", "",
    205
    206		/* PB */
    207		"", "", "", "", "", "", "", "",
    208		"", "", "", "", "", "", "", "",
    209		"", "", "", "", "", "", "", "",
    210		"", "", "", "", "", "", "", "",
    211
    212		/* PC */
    213		"CON2-P19", "CON2-P21", "CON2-P23", "CON2-P24",
    214			"CON2-P18", "", "", "CON2-P26",
    215		"", "", "", "", "", "", "", "",
    216		"", "", "", "", "", "", "", "",
    217		"", "", "", "", "", "", "", "",
    218
    219		/* PD */
    220		"", "", "", "", "", "", "", "",
    221		"", "", "", "", "", "", "CSI-PWR-EN", "",
    222		"", "", "", "", "", "", "", "",
    223		"", "", "", "", "", "", "", "",
    224
    225		/* PE */
    226		"CN3-P17", "CN3-P13", "CN3-P09", "CN3-P07",
    227			"CN3-P19", "CN3-P21", "CN3-P22", "CN3-P20",
    228		"CN3-P18", "CN3-P16", "CN3-P14", "CN3-P12",
    229			"CN3-P05", "CN3-P03", "CN3-P06", "CN3-P08",
    230		"", "", "", "", "", "", "", "",
    231		"", "", "", "", "", "", "", "",
    232
    233		/* PF */
    234		"SDC0-D1", "SDC0-D0", "SDC0-CLK", "SDC0-CMD", "SDC0-D3",
    235			"SDC0-D2", "SDC0-DET", "",
    236		"", "", "", "", "", "", "", "",
    237		"", "", "", "", "", "", "", "",
    238		"", "", "", "", "", "", "", "",
    239
    240		/* PG */
    241		"WL-SDIO-CLK", "WL-SDIO-CMD", "WL-SDIO-D0", "WL-SDIO-D1",
    242			"WL-SDIO-D2", "WL-SDIO-D3", "BT-UART-TX", "BT-UART-RX",
    243		"BT-UART-RTS", "BT-UART-CTS", "WL-WAKE-AP", "BT-WAKE-AP",
    244			"BT-RST-N", "AP-WAKE-BT", "", "",
    245		"", "", "", "", "", "", "", "",
    246		"", "", "", "", "", "", "", "";
    247};
    248
    249&r_pio {
    250	gpio-line-names =
    251		/* PL */
    252		"", "CPUX-SET", "CON2-P32", "POWER-KEY", "CON2-P36",
    253			"VCC-IO-EN", "USB0-ID", "WL-PWR-EN",
    254		"PWR-STB", "PWR-DRAM", "PWR-LED", "IR-RX", "", "", "", "",
    255		"", "", "", "", "", "", "", "",
    256		"", "", "", "", "", "", "", "";
    257};
    258
    259&usb_otg {
    260	dr_mode = "otg";
    261	status = "okay";
    262};
    263
    264&usbphy {
    265	usb0_id_det-gpios = <&r_pio 0 6 GPIO_ACTIVE_HIGH>; /* PL6 */
    266	/*
    267	 * There're two micro-USB connectors, one is power-only and another is
    268	 * OTG. The Vbus of these two connectors are connected together, so
    269	 * the external USB device will be powered just by the power input
    270	 * from the power-only USB port.
    271	 */
    272	status = "okay";
    273};