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-r16-parrot.dts (6873B)


      1/*
      2 * Copyright 2016 Quentin Schulz
      3 *
      4 * Quentin Schulz <quentin.schulz@free-electrons.com>
      5 *
      6 * This file is dual-licensed: you can use it either under the terms
      7 * of the GPL or the X11 license, at your option. Note that this dual
      8 * licensing only applies to this file, and not this project as a
      9 * whole.
     10 *
     11 *  a) This file is free software; you can redistribute it and/or
     12 *     modify it under the terms of the GNU General Public License as
     13 *     published by the Free Software Foundation; either version 2 of the
     14 *     License, or (at your option) any later version.
     15 *
     16 *     This file is distributed in the hope that it will be useful,
     17 *     but WITHOUT ANY WARRANTY; without even the implied warranty of
     18 *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     19 *     GNU General Public License for more details.
     20 *
     21 * Or, alternatively,
     22 *
     23 *  b) Permission is hereby granted, free of charge, to any person
     24 *     obtaining a copy of this software and associated documentation
     25 *     files (the "Software"), to deal in the Software without
     26 *     restriction, including without limitation the rights to use,
     27 *     copy, modify, merge, publish, distribute, sublicense, and/or
     28 *     sell copies of the Software, and to permit persons to whom the
     29 *     Software is furnished to do so, subject to the following
     30 *     conditions:
     31 *
     32 *     The above copyright notice and this permission notice shall be
     33 *     included in all copies or substantial portions of the Software.
     34 *
     35 *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
     36 *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
     37 *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
     38 *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
     39 *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
     40 *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
     41 *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
     42 *     OTHER DEALINGS IN THE SOFTWARE.
     43 */
     44
     45/dts-v1/;
     46#include "sun8i-a33.dtsi"
     47#include "sunxi-common-regulators.dtsi"
     48
     49#include <dt-bindings/gpio/gpio.h>
     50#include <dt-bindings/input/input.h>
     51
     52/ {
     53	model = "Allwinner R16 EVB (Parrot)";
     54	compatible = "allwinner,parrot", "allwinner,sun8i-a33";
     55
     56	aliases {
     57		serial0 = &uart0;
     58	};
     59
     60	chosen {
     61		stdout-path = "serial0:115200n8";
     62	};
     63
     64	leds {
     65		compatible = "gpio-leds";
     66
     67		led-1 {
     68			label = "parrot:led1:usr";
     69			gpios = <&pio 4 17 GPIO_ACTIVE_HIGH>; /* PE17 */
     70		};
     71
     72		led-2 {
     73			label = "parrot:led2:usr";
     74			gpios = <&pio 4 16 GPIO_ACTIVE_HIGH>; /* PE16 */
     75		};
     76	};
     77
     78	wifi_pwrseq: wifi_pwrseq {
     79		compatible = "mmc-pwrseq-simple";
     80		reset-gpios = <&r_pio 0 6 GPIO_ACTIVE_LOW>; /* PL06 */
     81	};
     82
     83};
     84
     85&codec {
     86	status = "okay";
     87};
     88
     89&dai {
     90	status = "okay";
     91};
     92
     93&ehci0 {
     94	status = "okay";
     95};
     96
     97&i2c1 {
     98	status = "okay";
     99
    100	/*
    101	 * FIXME: An as-yet-unknown accelerometer is connected to this
    102	 * i2c bus.
    103	 */
    104};
    105
    106&lradc {
    107	vref-supply = <&reg_aldo3>;
    108	status = "okay";
    109
    110	button-190 {
    111		label = "V+";
    112		linux,code = <KEY_VOLUMEUP>;
    113		channel = <0>;
    114		voltage = <190000>;
    115	};
    116
    117	button-390 {
    118		label = "V-";
    119		linux,code = <KEY_VOLUMEDOWN>;
    120		channel = <0>;
    121		voltage = <390000>;
    122	};
    123
    124};
    125
    126&mmc0 {
    127	vmmc-supply = <&reg_dcdc1>;
    128	cd-gpios = <&pio 3 14 GPIO_ACTIVE_LOW>; /* PD14 */
    129	bus-width = <4>;
    130	status = "okay";
    131};
    132
    133&mmc1 {
    134	pinctrl-names = "default";
    135	pinctrl-0 = <&mmc1_pg_pins>;
    136	vmmc-supply = <&reg_aldo1>;
    137	mmc-pwrseq = <&wifi_pwrseq>;
    138	bus-width = <4>;
    139	non-removable;
    140	status = "okay";
    141};
    142
    143&mmc2 {
    144	pinctrl-names = "default";
    145	pinctrl-0 = <&mmc2_8bit_pins>;
    146	vmmc-supply = <&reg_dcdc1>;
    147	bus-width = <8>;
    148	non-removable;
    149	cap-mmc-hw-reset;
    150	status = "okay";
    151};
    152
    153&mmc2_8bit_pins {
    154	drive-strength = <40>;
    155};
    156
    157&ohci0 {
    158	status = "okay";
    159};
    160
    161&r_rsb {
    162	status = "okay";
    163
    164	axp22x: pmic@3a3 {
    165		compatible = "x-powers,axp223";
    166		reg = <0x3a3>;
    167		interrupt-parent = <&r_intc>;
    168		interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_LOW>;
    169		drivevbus-supply = <&reg_vcc5v0>;
    170		x-powers,drive-vbus-en;
    171	};
    172};
    173
    174#include "axp223.dtsi"
    175
    176&reg_aldo1 {
    177	regulator-always-on;
    178	regulator-min-microvolt = <3000000>;
    179	regulator-max-microvolt = <3000000>;
    180	regulator-name = "vcc-io";
    181};
    182
    183&reg_aldo2 {
    184	regulator-always-on;
    185	regulator-min-microvolt = <2350000>;
    186	regulator-max-microvolt = <2650000>;
    187	regulator-name = "vdd-dll";
    188};
    189
    190&reg_aldo3 {
    191	regulator-always-on;
    192	regulator-min-microvolt = <2700000>;
    193	regulator-max-microvolt = <3300000>;
    194	regulator-name = "vcc-pll-avcc";
    195};
    196
    197&reg_dc5ldo {
    198	regulator-always-on;
    199	regulator-min-microvolt = <900000>;
    200	regulator-max-microvolt = <1400000>;
    201	regulator-name = "vdd-cpus";
    202};
    203
    204&reg_dcdc1 {
    205	regulator-always-on;
    206	regulator-min-microvolt = <3000000>;
    207	regulator-max-microvolt = <3000000>;
    208	regulator-name = "vcc-3v0";
    209};
    210
    211&reg_dcdc2 {
    212	regulator-always-on;
    213	regulator-min-microvolt = <900000>;
    214	regulator-max-microvolt = <1400000>;
    215	regulator-name = "vdd-sys";
    216};
    217
    218&reg_dcdc3 {
    219	regulator-always-on;
    220	regulator-min-microvolt = <900000>;
    221	regulator-max-microvolt = <1400000>;
    222	regulator-name = "vdd-cpu";
    223};
    224
    225&reg_dcdc5 {
    226	regulator-always-on;
    227	regulator-min-microvolt = <1500000>;
    228	regulator-max-microvolt = <1500000>;
    229	regulator-name = "vcc-dram";
    230};
    231
    232&reg_dldo1 {
    233	/*
    234	 * TODO: WiFi chip needs dldo1 AND dldo2 to be on to be powered.
    235	 * Remove next line once it is possible to sync two regulators.
    236	 */
    237	regulator-always-on;
    238	regulator-min-microvolt = <3300000>;
    239	regulator-max-microvolt = <3300000>;
    240	regulator-name = "vcc-wifi0";
    241};
    242
    243&reg_dldo2 {
    244	/*
    245	 * TODO: WiFi chip needs dldo1 AND dldo2 to be on to be powered.
    246	 * Remove next line once it is possible to sync two regulators.
    247	 */
    248	regulator-always-on;
    249	regulator-min-microvolt = <3300000>;
    250	regulator-max-microvolt = <3300000>;
    251	regulator-name = "vcc-wifi1";
    252};
    253
    254&reg_dldo3 {
    255	regulator-min-microvolt = <3000000>;
    256	regulator-max-microvolt = <3000000>;
    257	regulator-name = "vcc-3v0-csi";
    258};
    259
    260&reg_drivevbus {
    261	regulator-name = "usb0-vbus";
    262	status = "okay";
    263};
    264
    265&reg_eldo1 {
    266	regulator-min-microvolt = <1200000>;
    267	regulator-max-microvolt = <1200000>;
    268	regulator-name = "vcc-1v2-hsic";
    269};
    270
    271&reg_eldo2 {
    272	regulator-min-microvolt = <3000000>;
    273	regulator-max-microvolt = <3000000>;
    274	regulator-name = "vcc-dsp";
    275};
    276
    277&reg_eldo3 {
    278	regulator-min-microvolt = <3000000>;
    279	regulator-max-microvolt = <3000000>;
    280	regulator-name = "eldo3";
    281};
    282
    283&reg_usb1_vbus {
    284	gpio = <&pio 3 12 GPIO_ACTIVE_HIGH>; /* PD12 */
    285	status = "okay";
    286};
    287
    288&sound {
    289	status = "okay";
    290};
    291
    292&uart0 {
    293	pinctrl-names = "default";
    294	pinctrl-0 = <&uart0_pb_pins>;
    295	status = "okay";
    296};
    297
    298&usb_otg {
    299	dr_mode = "otg";
    300	status = "okay";
    301};
    302
    303&usb_power_supply {
    304	status = "okay";
    305};
    306
    307&usbphy {
    308	status = "okay";
    309	usb0_vbus-supply = <&reg_drivevbus>;
    310	usb0_id_det-gpios = <&pio 3 10 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; /* PD10 */
    311	usb0_vbus_power-supply = <&usb_power_supply>;
    312	usb1_vbus-supply = <&reg_usb1_vbus>;
    313};