ARM: dts: sun8i: Update A83T dts(i) files from Linux-v4.18-rc3
Update all A83T devicetree dtsi and dtsi files from Linux-v4.18-rc3 with below commit: commit 221cb9fd2ee3042689fe0e6613d0f34eb46a5af6 Author: Mylène Josserand <mylene.josserand@bootlin.com> Date: Fri May 4 21:05:44 2018 +0200 ARM: dts: sun8i: Add enable-method for SMP support for the A83T SoC Note: bananapi-m3 and cubietruck-plus board dts files has usb_otg enabled in U-Boot which were not present in Linux. Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
This commit is contained in:
parent
cf68225742
commit
0ca4d40cfe
169
arch/arm/dts/axp81x.dtsi
Normal file
169
arch/arm/dts/axp81x.dtsi
Normal file
@ -0,0 +1,169 @@
|
||||
/*
|
||||
* Copyright 2017 Chen-Yu Tsai
|
||||
*
|
||||
* Chen-Yu Tsai <wens@csie.org>
|
||||
*
|
||||
* This file is dual-licensed: you can use it either under the terms
|
||||
* of the GPL or the X11 license, at your option. Note that this dual
|
||||
* licensing only applies to this file, and not this project as a
|
||||
* whole.
|
||||
*
|
||||
* a) This file is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This file is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* Or, alternatively,
|
||||
*
|
||||
* b) Permission is hereby granted, free of charge, to any person
|
||||
* obtaining a copy of this software and associated documentation
|
||||
* files (the "Software"), to deal in the Software without
|
||||
* restriction, including without limitation the rights to use,
|
||||
* copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
* sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following
|
||||
* conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be
|
||||
* included in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
* OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
/* AXP813/818 Integrated Power Management Chip */
|
||||
|
||||
&axp81x {
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <1>;
|
||||
|
||||
axp_adc: adc {
|
||||
compatible = "x-powers,axp813-adc";
|
||||
#io-channel-cells = <1>;
|
||||
};
|
||||
|
||||
axp_gpio: gpio {
|
||||
compatible = "x-powers,axp813-gpio";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
|
||||
gpio0_ldo: gpio0-ldo {
|
||||
pins = "GPIO0";
|
||||
function = "ldo";
|
||||
};
|
||||
|
||||
gpio1_ldo: gpio1-ldo {
|
||||
pins = "GPIO1";
|
||||
function = "ldo";
|
||||
};
|
||||
};
|
||||
|
||||
battery_power_supply: battery-power-supply {
|
||||
compatible = "x-powers,axp813-battery-power-supply";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
regulators {
|
||||
/* Default work frequency for buck regulators */
|
||||
x-powers,dcdc-freq = <3000>;
|
||||
|
||||
reg_dcdc1: dcdc1 {
|
||||
};
|
||||
|
||||
reg_dcdc2: dcdc2 {
|
||||
};
|
||||
|
||||
reg_dcdc3: dcdc3 {
|
||||
};
|
||||
|
||||
reg_dcdc4: dcdc4 {
|
||||
};
|
||||
|
||||
reg_dcdc5: dcdc5 {
|
||||
};
|
||||
|
||||
reg_dcdc6: dcdc6 {
|
||||
};
|
||||
|
||||
reg_dcdc7: dcdc7 {
|
||||
};
|
||||
|
||||
reg_aldo1: aldo1 {
|
||||
};
|
||||
|
||||
reg_aldo2: aldo2 {
|
||||
};
|
||||
|
||||
reg_aldo3: aldo3 {
|
||||
};
|
||||
|
||||
reg_dldo1: dldo1 {
|
||||
};
|
||||
|
||||
reg_dldo2: dldo2 {
|
||||
};
|
||||
|
||||
reg_dldo3: dldo3 {
|
||||
};
|
||||
|
||||
reg_dldo4: dldo4 {
|
||||
};
|
||||
|
||||
reg_eldo1: eldo1 {
|
||||
};
|
||||
|
||||
reg_eldo2: eldo2 {
|
||||
};
|
||||
|
||||
reg_eldo3: eldo3 {
|
||||
};
|
||||
|
||||
reg_fldo1: fldo1 {
|
||||
};
|
||||
|
||||
reg_fldo2: fldo2 {
|
||||
};
|
||||
|
||||
reg_fldo3: fldo3 {
|
||||
};
|
||||
|
||||
reg_ldo_io0: ldo-io0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&gpio0_ldo>;
|
||||
/* Disable by default to avoid conflicts with GPIO */
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
reg_ldo_io1: ldo-io1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&gpio1_ldo>;
|
||||
/* Disable by default to avoid conflicts with GPIO */
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
reg_rtc_ldo: rtc-ldo {
|
||||
/* RTC_LDO is a fixed, always-on regulator */
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
};
|
||||
|
||||
reg_sw: sw {
|
||||
};
|
||||
|
||||
reg_drivevbus: drivevbus {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
};
|
@ -44,6 +44,8 @@
|
||||
/dts-v1/;
|
||||
#include "sun8i-a83t.dtsi"
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
|
||||
/ {
|
||||
model = "Allwinner A83T H8Homlet Proto Dev Board v2.0";
|
||||
compatible = "allwinner,h8homlet-v2", "allwinner,sun8i-a83t";
|
||||
@ -55,22 +57,213 @@
|
||||
chosen {
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
reg_usb0_vbus: reg-usb0-vbus {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "usb0-vbus";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
regulator-boot-on;
|
||||
enable-active-high;
|
||||
gpio = <&r_pio 0 5 GPIO_ACTIVE_HIGH>; /* PL5 */
|
||||
};
|
||||
|
||||
reg_usb1_vbus: reg-usb1-vbus {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "usb1-vbus";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
regulator-boot-on;
|
||||
enable-active-high;
|
||||
gpio = <&r_pio 0 6 GPIO_ACTIVE_HIGH>; /* PL6 */
|
||||
};
|
||||
};
|
||||
|
||||
&ehci0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mmc0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mmc0_pins>;
|
||||
vmmc-supply = <®_dcdc1>;
|
||||
cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
|
||||
bus-width = <4>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mmc2 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mmc2_8bit_emmc_pins>;
|
||||
vmmc-supply = <®_dcdc1>;
|
||||
vqmmc-supply = <®_dcdc1>;
|
||||
bus-width = <8>;
|
||||
non-removable;
|
||||
cap-mmc-hw-reset;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ohci0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&r_rsb {
|
||||
status = "okay";
|
||||
|
||||
axp81x: pmic@3a3 {
|
||||
compatible = "x-powers,axp818", "x-powers,axp813";
|
||||
reg = <0x3a3>;
|
||||
interrupt-parent = <&r_intc>;
|
||||
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
||||
eldoin-supply = <®_dcdc1>;
|
||||
swin-supply = <®_dcdc1>;
|
||||
};
|
||||
|
||||
ac100: codec@e89 {
|
||||
compatible = "x-powers,ac100";
|
||||
reg = <0xe89>;
|
||||
|
||||
ac100_codec: codec {
|
||||
compatible = "x-powers,ac100-codec";
|
||||
interrupt-parent = <&r_pio>;
|
||||
interrupts = <0 11 IRQ_TYPE_LEVEL_LOW>; /* PL11 */
|
||||
#clock-cells = <0>;
|
||||
clock-output-names = "4M_adda";
|
||||
};
|
||||
|
||||
ac100_rtc: rtc {
|
||||
compatible = "x-powers,ac100-rtc";
|
||||
interrupt-parent = <&r_intc>;
|
||||
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
||||
clocks = <&ac100_codec>;
|
||||
#clock-cells = <1>;
|
||||
clock-output-names = "cko1_rtc",
|
||||
"cko2_rtc",
|
||||
"cko3_rtc";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
#include "axp81x.dtsi"
|
||||
|
||||
®_aldo1 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-name = "vcc-1v8";
|
||||
};
|
||||
|
||||
®_aldo2 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-name = "dram-pll";
|
||||
};
|
||||
|
||||
®_aldo3 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <3000000>;
|
||||
regulator-max-microvolt = <3000000>;
|
||||
regulator-name = "avcc";
|
||||
};
|
||||
|
||||
®_dcdc1 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-name = "vcc-3v3";
|
||||
};
|
||||
|
||||
®_dcdc2 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <700000>;
|
||||
regulator-max-microvolt = <1100000>;
|
||||
regulator-name = "vdd-cpua";
|
||||
};
|
||||
|
||||
®_dcdc3 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <700000>;
|
||||
regulator-max-microvolt = <1100000>;
|
||||
regulator-name = "vdd-cpub";
|
||||
};
|
||||
|
||||
®_dcdc4 {
|
||||
regulator-min-microvolt = <700000>;
|
||||
regulator-max-microvolt = <1100000>;
|
||||
regulator-name = "vdd-gpu";
|
||||
};
|
||||
|
||||
®_dcdc5 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <1500000>;
|
||||
regulator-max-microvolt = <1500000>;
|
||||
regulator-name = "vcc-dram";
|
||||
};
|
||||
|
||||
®_dcdc6 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <900000>;
|
||||
regulator-max-microvolt = <900000>;
|
||||
regulator-name = "vdd-sys";
|
||||
};
|
||||
|
||||
®_dldo2 {
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-name = "vcc-mipi";
|
||||
};
|
||||
|
||||
®_dldo4 {
|
||||
/*
|
||||
* The PHY requires 20ms after all voltages are applied until core
|
||||
* logic is ready and 30ms after the reset pin is de-asserted.
|
||||
* Set a 100ms delay to account for PMIC ramp time and board traces.
|
||||
*/
|
||||
regulator-enable-ramp-delay = <100000>;
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-name = "vcc-ephy";
|
||||
};
|
||||
|
||||
®_fldo1 {
|
||||
regulator-min-microvolt = <1080000>;
|
||||
regulator-max-microvolt = <1320000>;
|
||||
regulator-name = "vdd12-hsic";
|
||||
};
|
||||
|
||||
®_fldo2 {
|
||||
/*
|
||||
* Despite the embedded CPUs core not being used in any way,
|
||||
* this must remain on or the system will hang.
|
||||
*/
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <700000>;
|
||||
regulator-max-microvolt = <1100000>;
|
||||
regulator-name = "vdd-cpus";
|
||||
};
|
||||
|
||||
®_rtc_ldo {
|
||||
regulator-name = "vcc-rtc";
|
||||
};
|
||||
|
||||
®_sw {
|
||||
regulator-name = "vcc-wifi";
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart0_pins_b>;
|
||||
pinctrl-0 = <&uart0_pb_pins>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usbphy {
|
||||
usb0_vbus-supply = <®_usb0_vbus>;
|
||||
usb1_vbus-supply = <®_usb1_vbus>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb_otg {
|
||||
dr_mode = "host";
|
||||
status = "okay";
|
||||
};
|
||||
|
@ -1,6 +1,7 @@
|
||||
/*
|
||||
* Copyright 2015 Vishnu Patekar
|
||||
* Vishnu Patekar <vishnupatekar0510@gmail.com>
|
||||
* Copyright 2017 Chen-Yu Tsai
|
||||
*
|
||||
* Chen-Yu Tsai <wens@csie.org>
|
||||
*
|
||||
* This file is dual-licensed: you can use it either under the terms
|
||||
* of the GPL or the X11 license, at your option. Note that this dual
|
||||
@ -44,29 +45,316 @@
|
||||
/dts-v1/;
|
||||
#include "sun8i-a83t.dtsi"
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
|
||||
/ {
|
||||
model = "Allwinner A83T BananaPi M3 Board v1.2";
|
||||
compatible = "bananapi,m3v1.2", "allwinner,sun8i-a83t";
|
||||
model = "Banana Pi BPI-M3";
|
||||
compatible = "sinovoip,bpi-m3", "allwinner,sun8i-a83t";
|
||||
|
||||
aliases {
|
||||
ethernet0 = &emac;
|
||||
serial0 = &uart0;
|
||||
};
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
connector {
|
||||
compatible = "hdmi-connector";
|
||||
type = "a";
|
||||
|
||||
port {
|
||||
hdmi_con_in: endpoint {
|
||||
remote-endpoint = <&hdmi_out_con>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
blue {
|
||||
label = "bananapi-m3:blue:usr";
|
||||
gpios = <&axp_gpio 1 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
green {
|
||||
label = "bananapi-m3:green:usr";
|
||||
gpios = <&axp_gpio 0 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
};
|
||||
|
||||
reg_usb1_vbus: reg-usb1-vbus {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "usb1-vbus";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
regulator-boot-on;
|
||||
enable-active-high;
|
||||
gpio = <&pio 3 24 GPIO_ACTIVE_HIGH>; /* PD24 */
|
||||
};
|
||||
|
||||
wifi_pwrseq: wifi_pwrseq {
|
||||
compatible = "mmc-pwrseq-simple";
|
||||
clocks = <&ac100_rtc 1>;
|
||||
clock-names = "ext_clock";
|
||||
/* The WiFi low power clock must be 32768 Hz */
|
||||
assigned-clocks = <&ac100_rtc 1>;
|
||||
assigned-clock-rates = <32768>;
|
||||
/* enables internal regulator and de-asserts reset */
|
||||
reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 WL-PMU-EN */
|
||||
};
|
||||
};
|
||||
|
||||
&de {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ehci0 {
|
||||
/* Terminus Tech FE 1.1s 4-port USB 2.0 hub here */
|
||||
status = "okay";
|
||||
|
||||
/* TODO GL830 USB-to-SATA bridge downstream w/ GPIO power controls */
|
||||
};
|
||||
|
||||
&emac {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&emac_rgmii_pins>;
|
||||
phy-supply = <®_sw>;
|
||||
phy-handle = <&rgmii_phy>;
|
||||
phy-mode = "rgmii";
|
||||
allwinner,rx-delay-ps = <700>;
|
||||
allwinner,tx-delay-ps = <700>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&hdmi {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&hdmi_out {
|
||||
hdmi_out_con: endpoint {
|
||||
remote-endpoint = <&hdmi_con_in>;
|
||||
};
|
||||
};
|
||||
|
||||
&mdio {
|
||||
rgmii_phy: ethernet-phy@1 {
|
||||
compatible = "ethernet-phy-ieee802.3-c22";
|
||||
reg = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
&mmc0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mmc0_pins>;
|
||||
vmmc-supply = <®_dcdc1>;
|
||||
bus-width = <4>;
|
||||
cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mmc1 {
|
||||
vmmc-supply = <®_dldo1>;
|
||||
vqmmc-supply = <®_dldo1>;
|
||||
mmc-pwrseq = <&wifi_pwrseq>;
|
||||
bus-width = <4>;
|
||||
non-removable;
|
||||
status = "okay";
|
||||
|
||||
brcmf: wifi@1 {
|
||||
reg = <1>;
|
||||
compatible = "brcm,bcm4329-fmac";
|
||||
interrupt-parent = <&r_pio>;
|
||||
interrupts = <0 3 IRQ_TYPE_LEVEL_LOW>;
|
||||
interrupt-names = "host-wake";
|
||||
};
|
||||
};
|
||||
|
||||
&mmc2 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mmc2_8bit_emmc_pins>;
|
||||
vmmc-supply = <®_dcdc1>;
|
||||
vqmmc-supply = <®_dcdc1>;
|
||||
bus-width = <8>;
|
||||
non-removable;
|
||||
cap-mmc-hw-reset;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&r_rsb {
|
||||
status = "okay";
|
||||
|
||||
axp81x: pmic@3a3 {
|
||||
compatible = "x-powers,axp813";
|
||||
reg = <0x3a3>;
|
||||
interrupt-parent = <&r_intc>;
|
||||
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
||||
eldoin-supply = <®_dcdc1>;
|
||||
fldoin-supply = <®_dcdc5>;
|
||||
swin-supply = <®_dcdc1>;
|
||||
x-powers,drive-vbus-en;
|
||||
};
|
||||
|
||||
ac100: codec@e89 {
|
||||
compatible = "x-powers,ac100";
|
||||
reg = <0xe89>;
|
||||
|
||||
ac100_codec: codec {
|
||||
compatible = "x-powers,ac100-codec";
|
||||
interrupt-parent = <&r_pio>;
|
||||
interrupts = <0 11 IRQ_TYPE_LEVEL_LOW>; /* PL11 */
|
||||
#clock-cells = <0>;
|
||||
clock-output-names = "4M_adda";
|
||||
};
|
||||
|
||||
ac100_rtc: rtc {
|
||||
compatible = "x-powers,ac100-rtc";
|
||||
interrupt-parent = <&r_intc>;
|
||||
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
||||
clocks = <&ac100_codec>;
|
||||
#clock-cells = <1>;
|
||||
clock-output-names = "cko1_rtc",
|
||||
"cko2_rtc",
|
||||
"cko3_rtc";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
#include "axp81x.dtsi"
|
||||
|
||||
®_aldo1 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-name = "vcc-1v8";
|
||||
};
|
||||
|
||||
®_aldo2 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-name = "dram-pll";
|
||||
};
|
||||
|
||||
®_aldo3 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <3000000>;
|
||||
regulator-max-microvolt = <3000000>;
|
||||
regulator-name = "avcc";
|
||||
};
|
||||
|
||||
®_dcdc1 {
|
||||
/* schematics says 3.1V but FEX file says 3.3V */
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-name = "vcc-3v3";
|
||||
};
|
||||
|
||||
®_dcdc2 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <700000>;
|
||||
regulator-max-microvolt = <1100000>;
|
||||
regulator-name = "vdd-cpua";
|
||||
};
|
||||
|
||||
®_dcdc3 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <700000>;
|
||||
regulator-max-microvolt = <1100000>;
|
||||
regulator-name = "vdd-cpub";
|
||||
};
|
||||
|
||||
®_dcdc4 {
|
||||
regulator-min-microvolt = <700000>;
|
||||
regulator-max-microvolt = <1100000>;
|
||||
regulator-name = "vdd-gpu";
|
||||
};
|
||||
|
||||
®_dcdc5 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <1200000>;
|
||||
regulator-name = "vcc-dram";
|
||||
};
|
||||
|
||||
®_dcdc6 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <900000>;
|
||||
regulator-max-microvolt = <900000>;
|
||||
regulator-name = "vdd-sys";
|
||||
};
|
||||
|
||||
®_dldo1 {
|
||||
/*
|
||||
* This powers both the WiFi/BT module's main power, I/O supply,
|
||||
* and external pull-ups on all the data lines. It should be set
|
||||
* to the same voltage as the I/O supply (DCDC1 in this case) to
|
||||
* avoid any leakage or mismatch.
|
||||
*/
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-name = "vcc-wifi";
|
||||
};
|
||||
|
||||
®_dldo3 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <2500000>;
|
||||
regulator-max-microvolt = <2500000>;
|
||||
regulator-name = "vcc-pd";
|
||||
};
|
||||
|
||||
®_drivevbus {
|
||||
regulator-name = "usb0-vbus";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
®_fldo1 {
|
||||
regulator-min-microvolt = <1080000>;
|
||||
regulator-max-microvolt = <1320000>;
|
||||
regulator-name = "vdd12-hsic";
|
||||
};
|
||||
|
||||
®_fldo2 {
|
||||
/*
|
||||
* Despite the embedded CPUs core not being used in any way,
|
||||
* this must remain on or the system will hang.
|
||||
*/
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <700000>;
|
||||
regulator-max-microvolt = <1100000>;
|
||||
regulator-name = "vdd-cpus";
|
||||
};
|
||||
|
||||
®_rtc_ldo {
|
||||
regulator-name = "vcc-rtc";
|
||||
};
|
||||
|
||||
®_sw {
|
||||
/*
|
||||
* The PHY requires 20ms after all voltages
|
||||
* are applied until core logic is ready and
|
||||
* 30ms after the reset pin is de-asserted.
|
||||
* Set a 100ms delay to account for PMIC
|
||||
* ramp time and board traces.
|
||||
*/
|
||||
regulator-enable-ramp-delay = <100000>;
|
||||
regulator-name = "vcc-ephy";
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart0_pins_b>;
|
||||
pinctrl-0 = <&uart0_pb_pins>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb_otg {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usbphy {
|
||||
usb1_vbus-supply = <®_usb1_vbus>;
|
||||
status = "okay";
|
||||
};
|
||||
|
@ -45,33 +45,353 @@
|
||||
/dts-v1/;
|
||||
#include "sun8i-a83t.dtsi"
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
|
||||
/ {
|
||||
model = "Cubietech Cubietruck Plus";
|
||||
compatible = "cubietech,cubietruck-plus", "allwinner,sun8i-a83t";
|
||||
|
||||
aliases {
|
||||
ethernet0 = &emac;
|
||||
serial0 = &uart0;
|
||||
};
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
blue {
|
||||
label = "cubietruck-plus:blue:usr";
|
||||
gpios = <&pio 3 25 GPIO_ACTIVE_HIGH>; /* PD25 */
|
||||
};
|
||||
|
||||
orange {
|
||||
label = "cubietruck-plus:orange:usr";
|
||||
gpios = <&pio 3 26 GPIO_ACTIVE_HIGH>; /* PD26 */
|
||||
};
|
||||
|
||||
white {
|
||||
label = "cubietruck-plus:white:usr";
|
||||
gpios = <&pio 3 27 GPIO_ACTIVE_HIGH>; /* PD27 */
|
||||
};
|
||||
|
||||
green {
|
||||
label = "cubietruck-plus:green:usr";
|
||||
gpios = <&pio 4 4 GPIO_ACTIVE_HIGH>; /* PE4 */
|
||||
};
|
||||
};
|
||||
|
||||
usb-hub {
|
||||
/* I2C is not connected */
|
||||
compatible = "smsc,usb3503";
|
||||
initial-mode = <1>; /* initialize in HUB mode */
|
||||
disabled-ports = <1>;
|
||||
intn-gpios = <&pio 7 5 GPIO_ACTIVE_HIGH>; /* PH5 */
|
||||
reset-gpios = <&pio 4 16 GPIO_ACTIVE_HIGH>; /* PE16 */
|
||||
connect-gpios = <&pio 4 17 GPIO_ACTIVE_HIGH>; /* PE17 */
|
||||
refclk-frequency = <19200000>;
|
||||
};
|
||||
|
||||
reg_usb1_vbus: reg-usb1-vbus {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "usb1-vbus";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
regulator-boot-on;
|
||||
enable-active-high;
|
||||
gpio = <&pio 3 29 GPIO_ACTIVE_HIGH>; /* PD29 */
|
||||
};
|
||||
|
||||
reg_usb2_vbus: reg-usb2-vbus {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "usb2-vbus";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
regulator-boot-on;
|
||||
enable-active-high;
|
||||
gpio = <&r_pio 0 6 GPIO_ACTIVE_HIGH>; /* PL6 */
|
||||
};
|
||||
|
||||
sound {
|
||||
compatible = "simple-audio-card";
|
||||
simple-audio-card,name = "On-board SPDIF";
|
||||
|
||||
simple-audio-card,cpu {
|
||||
sound-dai = <&spdif>;
|
||||
};
|
||||
|
||||
simple-audio-card,codec {
|
||||
sound-dai = <&spdif_out>;
|
||||
};
|
||||
};
|
||||
|
||||
spdif_out: spdif-out {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "linux,spdif-dit";
|
||||
};
|
||||
|
||||
wifi_pwrseq: wifi_pwrseq {
|
||||
compatible = "mmc-pwrseq-simple";
|
||||
clocks = <&ac100_rtc 1>;
|
||||
clock-names = "ext_clock";
|
||||
/* The WiFi low power clock must be 32768 Hz */
|
||||
assigned-clocks = <&ac100_rtc 1>;
|
||||
assigned-clock-rates = <32768>;
|
||||
/* enables internal regulator and de-asserts reset */
|
||||
reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 WL-PMU-EN */
|
||||
};
|
||||
};
|
||||
|
||||
&ehci0 {
|
||||
/* GL830 USB-to-SATA bridge here */
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ehci1 {
|
||||
/* USB3503 HSIC USB 2.0 hub here */
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&emac {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&emac_rgmii_pins>;
|
||||
phy-supply = <®_dldo4>;
|
||||
phy-handle = <&rgmii_phy>;
|
||||
phy-mode = "rgmii";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mdio {
|
||||
rgmii_phy: ethernet-phy@1 {
|
||||
compatible = "ethernet-phy-ieee802.3-c22";
|
||||
reg = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
&mmc0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mmc0_pins>;
|
||||
vmmc-supply = <®_dcdc1>;
|
||||
bus-width = <4>;
|
||||
cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mmc1 {
|
||||
vmmc-supply = <®_dcdc1>;
|
||||
vqmmc-supply = <®_sw>;
|
||||
mmc-pwrseq = <&wifi_pwrseq>;
|
||||
bus-width = <4>;
|
||||
non-removable;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mmc2 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mmc2_8bit_emmc_pins>;
|
||||
vmmc-supply = <®_dcdc1>;
|
||||
bus-width = <8>;
|
||||
non-removable;
|
||||
cap-mmc-hw-reset;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&r_rsb {
|
||||
status = "okay";
|
||||
|
||||
axp81x: pmic@3a3 {
|
||||
compatible = "x-powers,axp818", "x-powers,axp813";
|
||||
reg = <0x3a3>;
|
||||
interrupt-parent = <&r_intc>;
|
||||
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
||||
eldoin-supply = <®_dcdc1>;
|
||||
swin-supply = <®_dcdc1>;
|
||||
x-powers,drive-vbus-en;
|
||||
};
|
||||
|
||||
ac100: codec@e89 {
|
||||
compatible = "x-powers,ac100";
|
||||
reg = <0xe89>;
|
||||
|
||||
ac100_codec: codec {
|
||||
compatible = "x-powers,ac100-codec";
|
||||
interrupt-parent = <&r_pio>;
|
||||
interrupts = <0 11 IRQ_TYPE_LEVEL_LOW>; /* PL11 */
|
||||
#clock-cells = <0>;
|
||||
clock-output-names = "4M_adda";
|
||||
};
|
||||
|
||||
ac100_rtc: rtc {
|
||||
compatible = "x-powers,ac100-rtc";
|
||||
interrupt-parent = <&r_intc>;
|
||||
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
||||
clocks = <&ac100_codec>;
|
||||
#clock-cells = <1>;
|
||||
clock-output-names = "cko1_rtc",
|
||||
"cko2_rtc",
|
||||
"cko3_rtc";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
#include "axp81x.dtsi"
|
||||
|
||||
®_aldo1 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-name = "vcc-1v8";
|
||||
};
|
||||
|
||||
®_aldo2 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-name = "dram-pll";
|
||||
};
|
||||
|
||||
®_aldo3 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <3000000>;
|
||||
regulator-max-microvolt = <3000000>;
|
||||
regulator-name = "avcc";
|
||||
};
|
||||
|
||||
®_dcdc1 {
|
||||
/*
|
||||
* The schematics say this should be 3.3V, but the FEX file says
|
||||
* it should be 3V. The latter makes sense, as the WiFi module's
|
||||
* I/O is indirectly powered from DCDC1, through SW. It is rated
|
||||
* at 2.98V maximum.
|
||||
*/
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <3000000>;
|
||||
regulator-max-microvolt = <3000000>;
|
||||
regulator-name = "vcc-3v";
|
||||
};
|
||||
|
||||
®_dcdc2 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <700000>;
|
||||
regulator-max-microvolt = <1100000>;
|
||||
regulator-name = "vdd-cpua";
|
||||
};
|
||||
|
||||
®_dcdc3 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <700000>;
|
||||
regulator-max-microvolt = <1100000>;
|
||||
regulator-name = "vdd-cpub";
|
||||
};
|
||||
|
||||
®_dcdc4 {
|
||||
regulator-min-microvolt = <700000>;
|
||||
regulator-max-microvolt = <1100000>;
|
||||
regulator-name = "vdd-gpu";
|
||||
};
|
||||
|
||||
®_dcdc5 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <1500000>;
|
||||
regulator-max-microvolt = <1500000>;
|
||||
regulator-name = "vcc-dram";
|
||||
};
|
||||
|
||||
®_dcdc6 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <900000>;
|
||||
regulator-max-microvolt = <900000>;
|
||||
regulator-name = "vdd-sys";
|
||||
};
|
||||
|
||||
®_dldo2 {
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-name = "dp-pwr";
|
||||
};
|
||||
|
||||
®_dldo3 {
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <2500000>;
|
||||
regulator-max-microvolt = <2500000>;
|
||||
regulator-name = "ephy-io";
|
||||
};
|
||||
|
||||
®_dldo4 {
|
||||
/*
|
||||
* The PHY requires 20ms after all voltages are applied until core
|
||||
* logic is ready and 30ms after the reset pin is de-asserted.
|
||||
* Set a 100ms delay to account for PMIC ramp time and board traces.
|
||||
*/
|
||||
regulator-enable-ramp-delay = <100000>;
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-name = "ephy";
|
||||
};
|
||||
|
||||
®_drivevbus {
|
||||
regulator-name = "usb0-vbus";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
®_eldo1 {
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <1200000>;
|
||||
regulator-name = "dp-bridge-1";
|
||||
};
|
||||
|
||||
®_eldo2 {
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <1200000>;
|
||||
regulator-name = "dp-bridge-2";
|
||||
};
|
||||
|
||||
®_fldo1 {
|
||||
/* TODO should be handled by USB PHY */
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <1080000>;
|
||||
regulator-max-microvolt = <1320000>;
|
||||
regulator-name = "vdd12-hsic";
|
||||
};
|
||||
|
||||
®_fldo2 {
|
||||
/*
|
||||
* Despite the embedded CPUs core not being used in any way,
|
||||
* this must remain on or the system will hang.
|
||||
*/
|
||||
regulator-always-on;
|
||||
regulator-min-microvolt = <700000>;
|
||||
regulator-max-microvolt = <1100000>;
|
||||
regulator-name = "vdd-cpus";
|
||||
};
|
||||
|
||||
®_rtc_ldo {
|
||||
regulator-name = "vcc-rtc";
|
||||
};
|
||||
|
||||
®_sw {
|
||||
regulator-name = "vcc-wifi-io";
|
||||
};
|
||||
|
||||
&spdif {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart0_pins_b>;
|
||||
pinctrl-0 = <&uart0_pb_pins>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb_otg {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usbphy {
|
||||
usb1_vbus-supply = <®_usb1_vbus>;
|
||||
usb2_vbus-supply = <®_usb2_vbus>;
|
||||
status = "okay";
|
||||
};
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* Copyright 2017 Ondřej Jirman
|
||||
* Ondřej Jirman <megous@megous.com>
|
||||
* Copyright (C) 2017 Touchless Biometric Systems AG
|
||||
* Tomas Novotny <tomas@novotny.cz>
|
||||
*
|
||||
* This file is dual-licensed: you can use it either under the terms
|
||||
* of the GPL or the X11 license, at your option. Note that this dual
|
||||
@ -44,33 +44,380 @@
|
||||
/dts-v1/;
|
||||
#include "sun8i-a83t.dtsi"
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/pwm/pwm.h>
|
||||
|
||||
/ {
|
||||
model = "TBS A711 Tablet";
|
||||
compatible = "tbs-biometrics,a711", "allwinner,sun8i-a83t";
|
||||
|
||||
aliases {
|
||||
serial0 = &uart0;
|
||||
serial1 = &uart1;
|
||||
};
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
backlight: backlight {
|
||||
compatible = "pwm-backlight";
|
||||
pwms = <&pwm 0 50000 PWM_POLARITY_INVERTED>;
|
||||
enable-gpios = <&pio 3 29 GPIO_ACTIVE_HIGH>;
|
||||
|
||||
brightness-levels = <0 1 2 4 8 16 32 64 128 255>;
|
||||
default-brightness-level = <9>;
|
||||
};
|
||||
|
||||
panel {
|
||||
compatible = "tbs,a711-panel", "panel-lvds";
|
||||
backlight = <&backlight>;
|
||||
power-supply = <®_sw>;
|
||||
|
||||
width-mm = <153>;
|
||||
height-mm = <90>;
|
||||
data-mapping = "vesa-24";
|
||||
|
||||
panel-timing {
|
||||
/* 1024x600 @60Hz */
|
||||
clock-frequency = <52000000>;
|
||||
hactive = <1024>;
|
||||
vactive = <600>;
|
||||
hsync-len = <20>;
|
||||
hfront-porch = <180>;
|
||||
hback-porch = <160>;
|
||||
vfront-porch = <12>;
|
||||
vback-porch = <23>;
|
||||
vsync-len = <5>;
|
||||
};
|
||||
|
||||
port {
|
||||
panel_input: endpoint {
|
||||
remote-endpoint = <&tcon0_out_lcd>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
reg_vbat: reg-vbat {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vbat";
|
||||
regulator-min-microvolt = <3700000>;
|
||||
regulator-max-microvolt = <3700000>;
|
||||
};
|
||||
|
||||
reg_vmain: reg-vmain {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vmain";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
gpio = <&r_pio 0 9 GPIO_ACTIVE_HIGH>;
|
||||
enable-active-high;
|
||||
vin-supply = <®_vbat>;
|
||||
};
|
||||
|
||||
wifi_pwrseq: wifi_pwrseq {
|
||||
compatible = "mmc-pwrseq-simple";
|
||||
reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 WL-PMU-EN */
|
||||
|
||||
/*
|
||||
* This is actually Bluetooth's clock, but we have to
|
||||
* hook it up somewheere
|
||||
*/
|
||||
clocks = <&ac100_rtc 1>;
|
||||
clock-names = "ext_clock";
|
||||
};
|
||||
};
|
||||
|
||||
&cpu0 {
|
||||
cpu-supply = <®_dcdc2>;
|
||||
};
|
||||
|
||||
&cpu100 {
|
||||
cpu-supply = <®_dcdc3>;
|
||||
};
|
||||
|
||||
&de {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/*
|
||||
* An USB-2 hub is connected here, which also means we don't need to
|
||||
* enable the OHCI controller.
|
||||
*/
|
||||
&ehci0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ohci0 {
|
||||
/*
|
||||
* There's a modem connected here that needs to be initialised before
|
||||
* being able to be enumerated.
|
||||
*/
|
||||
&ehci1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mmc0 {
|
||||
vmmc-supply = <®_dcdc1>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mmc0_pins>;
|
||||
cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mmc1 {
|
||||
mmc-pwrseq = <&wifi_pwrseq>;
|
||||
bus-width = <4>;
|
||||
vmmc-supply = <®_dldo1>;
|
||||
vqmmc-supply = <®_dldo1>;
|
||||
non-removable;
|
||||
wakeup-source;
|
||||
status = "okay";
|
||||
|
||||
brcmf: wifi@1 {
|
||||
reg = <1>;
|
||||
compatible = "brcm,bcm4329-fmac";
|
||||
interrupt-parent = <&r_pio>;
|
||||
interrupts = <0 3 IRQ_TYPE_LEVEL_LOW>; /* PL3 WL_WAKE_UP */
|
||||
interrupt-names = "host-wake";
|
||||
};
|
||||
};
|
||||
|
||||
&mmc2 {
|
||||
pinctrl-0 = <&mmc2_8bit_emmc_pins>;
|
||||
pinctrl-names = "default";
|
||||
vmmc-supply = <®_dcdc1>;
|
||||
vqmmc-supply = <®_dcdc1>;
|
||||
bus-width = <8>;
|
||||
non-removable;
|
||||
cap-mmc-hw-reset;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pwm {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pwm_pin>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&r_rsb {
|
||||
status = "okay";
|
||||
|
||||
axp81x: pmic@3a3 {
|
||||
compatible = "x-powers,axp813";
|
||||
reg = <0x3a3>;
|
||||
interrupt-parent = <&r_intc>;
|
||||
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
||||
swin-supply = <®_dcdc1>;
|
||||
x-powers,drive-vbus-en;
|
||||
};
|
||||
|
||||
ac100: codec@e89 {
|
||||
compatible = "x-powers,ac100";
|
||||
reg = <0xe89>;
|
||||
|
||||
ac100_codec: codec {
|
||||
compatible = "x-powers,ac100-codec";
|
||||
interrupt-parent = <&r_pio>;
|
||||
interrupts = <0 12 IRQ_TYPE_LEVEL_LOW>; /* PL12 */
|
||||
#clock-cells = <0>;
|
||||
clock-output-names = "4M_adda";
|
||||
};
|
||||
|
||||
ac100_rtc: rtc {
|
||||
compatible = "x-powers,ac100-rtc";
|
||||
interrupt-parent = <&r_intc>;
|
||||
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
||||
clocks = <&ac100_codec>;
|
||||
#clock-cells = <1>;
|
||||
clock-output-names = "cko1_rtc",
|
||||
"cko2_rtc",
|
||||
"cko3_rtc";
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
#include "axp81x.dtsi"
|
||||
|
||||
&battery_power_supply {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
®_aldo1 {
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-name = "vcc-1.8";
|
||||
};
|
||||
|
||||
®_aldo2 {
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-always-on;
|
||||
regulator-name = "vdd-drampll";
|
||||
};
|
||||
|
||||
®_aldo3 {
|
||||
regulator-min-microvolt = <3000000>;
|
||||
regulator-max-microvolt = <3000000>;
|
||||
regulator-always-on;
|
||||
regulator-name = "avcc";
|
||||
};
|
||||
|
||||
®_dcdc1 {
|
||||
regulator-min-microvolt = <3100000>;
|
||||
regulator-max-microvolt = <3100000>;
|
||||
regulator-always-on;
|
||||
regulator-name = "vcc-io";
|
||||
};
|
||||
|
||||
®_dcdc2 {
|
||||
regulator-min-microvolt = <700000>;
|
||||
regulator-max-microvolt = <1100000>;
|
||||
regulator-always-on;
|
||||
regulator-name = "vdd-cpu-A";
|
||||
};
|
||||
|
||||
®_dcdc3 {
|
||||
regulator-min-microvolt = <700000>;
|
||||
regulator-max-microvolt = <1100000>;
|
||||
regulator-always-on;
|
||||
regulator-name = "vdd-cpu-B";
|
||||
};
|
||||
|
||||
®_dcdc4 {
|
||||
regulator-min-microvolt = <700000>;
|
||||
regulator-max-microvolt = <1100000>;
|
||||
regulator-name = "vdd-gpu";
|
||||
};
|
||||
|
||||
®_dcdc5 {
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <1500000>;
|
||||
regulator-always-on;
|
||||
regulator-name = "vcc-dram";
|
||||
};
|
||||
|
||||
®_dcdc6 {
|
||||
regulator-min-microvolt = <900000>;
|
||||
regulator-max-microvolt = <900000>;
|
||||
regulator-always-on;
|
||||
regulator-name = "vdd-sys";
|
||||
};
|
||||
|
||||
®_dldo1 {
|
||||
regulator-min-microvolt = <3100000>;
|
||||
regulator-max-microvolt = <3100000>;
|
||||
regulator-name = "vcc-wifi-io";
|
||||
};
|
||||
|
||||
®_dldo2 {
|
||||
regulator-min-microvolt = <2800000>;
|
||||
regulator-max-microvolt = <4200000>;
|
||||
regulator-name = "vcc-mipi";
|
||||
};
|
||||
|
||||
®_dldo3 {
|
||||
regulator-min-microvolt = <2800000>;
|
||||
regulator-max-microvolt = <2800000>;
|
||||
regulator-name = "vdd-csi";
|
||||
};
|
||||
|
||||
®_dldo4 {
|
||||
regulator-min-microvolt = <2800000>;
|
||||
regulator-max-microvolt = <2800000>;
|
||||
regulator-name = "avdd-csi";
|
||||
};
|
||||
|
||||
®_drivevbus {
|
||||
regulator-name = "usb0-vbus";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
®_eldo1 {
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-name = "dvdd-csi-r";
|
||||
};
|
||||
|
||||
®_eldo2 {
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-name = "vcc-dsi";
|
||||
};
|
||||
|
||||
®_eldo3 {
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-name = "dvdd-csi-f";
|
||||
};
|
||||
|
||||
®_fldo1 {
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <1200000>;
|
||||
regulator-name = "vcc-hsic";
|
||||
};
|
||||
|
||||
®_fldo2 {
|
||||
regulator-min-microvolt = <700000>;
|
||||
regulator-max-microvolt = <1100000>;
|
||||
regulator-always-on;
|
||||
regulator-name = "vdd-cpus";
|
||||
};
|
||||
|
||||
®_ldo_io0 {
|
||||
regulator-min-microvolt = <3100000>;
|
||||
regulator-max-microvolt = <3100000>;
|
||||
regulator-name = "vcc-ctp";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
®_ldo_io1 {
|
||||
regulator-min-microvolt = <3100000>;
|
||||
regulator-max-microvolt = <3100000>;
|
||||
regulator-name = "vcc-vb";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
®_sw {
|
||||
regulator-min-microvolt = <3100000>;
|
||||
regulator-max-microvolt = <3100000>;
|
||||
regulator-name = "vcc-lcd";
|
||||
};
|
||||
|
||||
&tcon0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&lcd_lvds_pins>;
|
||||
};
|
||||
|
||||
&tcon0_out {
|
||||
tcon0_out_lcd: endpoint@0 {
|
||||
reg = <0>;
|
||||
remote-endpoint = <&panel_input>;
|
||||
};
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart0_pins_b>;
|
||||
pinctrl-0 = <&uart0_pb_pins>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/* There's the BT part of the AP6210 connected to that UART */
|
||||
&uart1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb_otg {
|
||||
dr_mode = "otg";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usbphy {
|
||||
usb0_id_det-gpios = <&pio 7 11 GPIO_ACTIVE_HIGH>; /* PH11 */
|
||||
usb0_vbus-supply = <®_drivevbus>;
|
||||
usb1_vbus_supply = <®_vmain>;
|
||||
usb2_vbus_supply = <®_vmain>;
|
||||
status = "okay";
|
||||
};
|
||||
|
File diff suppressed because it is too large
Load Diff
140
include/dt-bindings/clock/sun8i-a83t-ccu.h
Normal file
140
include/dt-bindings/clock/sun8i-a83t-ccu.h
Normal file
@ -0,0 +1,140 @@
|
||||
/*
|
||||
* Copyright (C) 2017 Chen-Yu Tsai <wens@csie.org>
|
||||
*
|
||||
* This file is dual-licensed: you can use it either under the terms
|
||||
* of the GPL or the X11 license, at your option. Note that this dual
|
||||
* licensing only applies to this file, and not this project as a
|
||||
* whole.
|
||||
*
|
||||
* a) This file is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This file is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* Or, alternatively,
|
||||
*
|
||||
* b) Permission is hereby granted, free of charge, to any person
|
||||
* obtaining a copy of this software and associated documentation
|
||||
* files (the "Software"), to deal in the Software without
|
||||
* restriction, including without limitation the rights to use,
|
||||
* copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
* sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following
|
||||
* conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be
|
||||
* included in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
* OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#ifndef _DT_BINDINGS_CLOCK_SUN8I_A83T_CCU_H_
|
||||
#define _DT_BINDINGS_CLOCK_SUN8I_A83T_CCU_H_
|
||||
|
||||
#define CLK_PLL_PERIPH 6
|
||||
|
||||
#define CLK_PLL_DE 9
|
||||
|
||||
#define CLK_C0CPUX 11
|
||||
#define CLK_C1CPUX 12
|
||||
|
||||
#define CLK_BUS_MIPI_DSI 19
|
||||
#define CLK_BUS_SS 20
|
||||
#define CLK_BUS_DMA 21
|
||||
#define CLK_BUS_MMC0 22
|
||||
#define CLK_BUS_MMC1 23
|
||||
#define CLK_BUS_MMC2 24
|
||||
#define CLK_BUS_NAND 25
|
||||
#define CLK_BUS_DRAM 26
|
||||
#define CLK_BUS_EMAC 27
|
||||
#define CLK_BUS_HSTIMER 28
|
||||
#define CLK_BUS_SPI0 29
|
||||
#define CLK_BUS_SPI1 30
|
||||
#define CLK_BUS_OTG 31
|
||||
#define CLK_BUS_EHCI0 32
|
||||
#define CLK_BUS_EHCI1 33
|
||||
#define CLK_BUS_OHCI0 34
|
||||
|
||||
#define CLK_BUS_VE 35
|
||||
#define CLK_BUS_TCON0 36
|
||||
#define CLK_BUS_TCON1 37
|
||||
#define CLK_BUS_CSI 38
|
||||
#define CLK_BUS_HDMI 39
|
||||
#define CLK_BUS_DE 40
|
||||
#define CLK_BUS_GPU 41
|
||||
#define CLK_BUS_MSGBOX 42
|
||||
#define CLK_BUS_SPINLOCK 43
|
||||
|
||||
#define CLK_BUS_SPDIF 44
|
||||
#define CLK_BUS_PIO 45
|
||||
#define CLK_BUS_I2S0 46
|
||||
#define CLK_BUS_I2S1 47
|
||||
#define CLK_BUS_I2S2 48
|
||||
#define CLK_BUS_TDM 49
|
||||
|
||||
#define CLK_BUS_I2C0 50
|
||||
#define CLK_BUS_I2C1 51
|
||||
#define CLK_BUS_I2C2 52
|
||||
#define CLK_BUS_UART0 53
|
||||
#define CLK_BUS_UART1 54
|
||||
#define CLK_BUS_UART2 55
|
||||
#define CLK_BUS_UART3 56
|
||||
#define CLK_BUS_UART4 57
|
||||
|
||||
#define CLK_NAND 59
|
||||
#define CLK_MMC0 60
|
||||
#define CLK_MMC0_SAMPLE 61
|
||||
#define CLK_MMC0_OUTPUT 62
|
||||
#define CLK_MMC1 63
|
||||
#define CLK_MMC1_SAMPLE 64
|
||||
#define CLK_MMC1_OUTPUT 65
|
||||
#define CLK_MMC2 66
|
||||
#define CLK_MMC2_SAMPLE 67
|
||||
#define CLK_MMC2_OUTPUT 68
|
||||
#define CLK_SS 69
|
||||
#define CLK_SPI0 70
|
||||
#define CLK_SPI1 71
|
||||
#define CLK_I2S0 72
|
||||
#define CLK_I2S1 73
|
||||
#define CLK_I2S2 74
|
||||
#define CLK_TDM 75
|
||||
#define CLK_SPDIF 76
|
||||
#define CLK_USB_PHY0 77
|
||||
#define CLK_USB_PHY1 78
|
||||
#define CLK_USB_HSIC 79
|
||||
#define CLK_USB_HSIC_12M 80
|
||||
#define CLK_USB_OHCI0 81
|
||||
|
||||
#define CLK_DRAM_VE 83
|
||||
#define CLK_DRAM_CSI 84
|
||||
|
||||
#define CLK_TCON0 85
|
||||
#define CLK_TCON1 86
|
||||
#define CLK_CSI_MISC 87
|
||||
#define CLK_MIPI_CSI 88
|
||||
#define CLK_CSI_MCLK 89
|
||||
#define CLK_CSI_SCLK 90
|
||||
#define CLK_VE 91
|
||||
#define CLK_AVS 92
|
||||
#define CLK_HDMI 93
|
||||
#define CLK_HDMI_SLOW 94
|
||||
|
||||
#define CLK_MIPI_DSI0 96
|
||||
#define CLK_MIPI_DSI1 97
|
||||
#define CLK_GPU_CORE 98
|
||||
#define CLK_GPU_MEMORY 99
|
||||
#define CLK_GPU_HYD 100
|
||||
|
||||
#endif /* _DT_BINDINGS_CLOCK_SUN8I_A83T_CCU_H_ */
|
98
include/dt-bindings/reset/sun8i-a83t-ccu.h
Normal file
98
include/dt-bindings/reset/sun8i-a83t-ccu.h
Normal file
@ -0,0 +1,98 @@
|
||||
/*
|
||||
* Copyright (C) 2017 Chen-Yu Tsai <wens@csie.org>
|
||||
*
|
||||
* This file is dual-licensed: you can use it either under the terms
|
||||
* of the GPL or the X11 license, at your option. Note that this dual
|
||||
* licensing only applies to this file, and not this project as a
|
||||
* whole.
|
||||
*
|
||||
* a) This file is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This file is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* Or, alternatively,
|
||||
*
|
||||
* b) Permission is hereby granted, free of charge, to any person
|
||||
* obtaining a copy of this software and associated documentation
|
||||
* files (the "Software"), to deal in the Software without
|
||||
* restriction, including without limitation the rights to use,
|
||||
* copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
* sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following
|
||||
* conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be
|
||||
* included in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
* OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#ifndef _DT_BINDINGS_RESET_SUN8I_A83T_CCU_H_
|
||||
#define _DT_BINDINGS_RESET_SUN8I_A83T_CCU_H_
|
||||
|
||||
#define RST_USB_PHY0 0
|
||||
#define RST_USB_PHY1 1
|
||||
#define RST_USB_HSIC 2
|
||||
|
||||
#define RST_DRAM 3
|
||||
#define RST_MBUS 4
|
||||
|
||||
#define RST_BUS_MIPI_DSI 5
|
||||
#define RST_BUS_SS 6
|
||||
#define RST_BUS_DMA 7
|
||||
#define RST_BUS_MMC0 8
|
||||
#define RST_BUS_MMC1 9
|
||||
#define RST_BUS_MMC2 10
|
||||
#define RST_BUS_NAND 11
|
||||
#define RST_BUS_DRAM 12
|
||||
#define RST_BUS_EMAC 13
|
||||
#define RST_BUS_HSTIMER 14
|
||||
#define RST_BUS_SPI0 15
|
||||
#define RST_BUS_SPI1 16
|
||||
#define RST_BUS_OTG 17
|
||||
#define RST_BUS_EHCI0 18
|
||||
#define RST_BUS_EHCI1 19
|
||||
#define RST_BUS_OHCI0 20
|
||||
|
||||
#define RST_BUS_VE 21
|
||||
#define RST_BUS_TCON0 22
|
||||
#define RST_BUS_TCON1 23
|
||||
#define RST_BUS_CSI 24
|
||||
#define RST_BUS_HDMI0 25
|
||||
#define RST_BUS_HDMI1 26
|
||||
#define RST_BUS_DE 27
|
||||
#define RST_BUS_GPU 28
|
||||
#define RST_BUS_MSGBOX 29
|
||||
#define RST_BUS_SPINLOCK 30
|
||||
|
||||
#define RST_BUS_LVDS 31
|
||||
|
||||
#define RST_BUS_SPDIF 32
|
||||
#define RST_BUS_I2S0 33
|
||||
#define RST_BUS_I2S1 34
|
||||
#define RST_BUS_I2S2 35
|
||||
#define RST_BUS_TDM 36
|
||||
|
||||
#define RST_BUS_I2C0 37
|
||||
#define RST_BUS_I2C1 38
|
||||
#define RST_BUS_I2C2 39
|
||||
#define RST_BUS_UART0 40
|
||||
#define RST_BUS_UART1 41
|
||||
#define RST_BUS_UART2 42
|
||||
#define RST_BUS_UART3 43
|
||||
#define RST_BUS_UART4 44
|
||||
|
||||
#endif /* _DT_BINDINGS_RESET_SUN8I_A83T_CCU_H_ */
|
Loading…
Reference in New Issue
Block a user