mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-01-16 07:16:59 +07:00
fe79ea577b
Enable CPU and GPU opp tables for Pine H64. This needs to change the CPU regulator max voltage to fit the OPP table. Also add the ramp-delay information to avoid any out of spec running as the regulator is slower at reaching the voltage requested compare to the PLL reaching the frequency. There is no such information for AXP805 but similar PMIC (AXP813) has a DVM (Dynamic Voltage scaling Management) ramp rate equal to 2500uV/us. Signed-off-by: Clément Péron <peron.clem@gmail.com> Signed-off-by: Maxime Ripard <maxime@cerno.tech>
334 lines
6.3 KiB
Plaintext
334 lines
6.3 KiB
Plaintext
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
|
// Copyright (c) 2017 Icenowy Zheng <icenowy@aosc.io>
|
|
|
|
/dts-v1/;
|
|
|
|
#include "sun50i-h6.dtsi"
|
|
#include "sun50i-h6-cpu-opp.dtsi"
|
|
|
|
#include <dt-bindings/gpio/gpio.h>
|
|
|
|
/ {
|
|
model = "Pine H64 model A";
|
|
compatible = "pine64,pine-h64", "allwinner,sun50i-h6";
|
|
|
|
aliases {
|
|
ethernet0 = &emac;
|
|
serial0 = &uart0;
|
|
spi0 = &spi0;
|
|
};
|
|
|
|
chosen {
|
|
stdout-path = "serial0:115200n8";
|
|
};
|
|
|
|
ext_osc32k: ext_osc32k_clk {
|
|
#clock-cells = <0>;
|
|
compatible = "fixed-clock";
|
|
clock-frequency = <32768>;
|
|
clock-output-names = "ext_osc32k";
|
|
};
|
|
|
|
hdmi_connector: connector {
|
|
compatible = "hdmi-connector";
|
|
type = "a";
|
|
ddc-en-gpios = <&pio 7 2 GPIO_ACTIVE_HIGH>; /* PH2 */
|
|
|
|
port {
|
|
hdmi_con_in: endpoint {
|
|
remote-endpoint = <&hdmi_out_con>;
|
|
};
|
|
};
|
|
};
|
|
|
|
leds {
|
|
compatible = "gpio-leds";
|
|
|
|
heartbeat {
|
|
label = "pine-h64:green:heartbeat";
|
|
gpios = <&r_pio 0 4 GPIO_ACTIVE_HIGH>; /* PL4 */
|
|
};
|
|
|
|
link {
|
|
label = "pine-h64:white:link";
|
|
gpios = <&r_pio 0 3 GPIO_ACTIVE_HIGH>; /* PL3 */
|
|
};
|
|
|
|
status {
|
|
label = "pine-h64:blue:status";
|
|
gpios = <&r_pio 0 7 GPIO_ACTIVE_HIGH>; /* PL7 */
|
|
};
|
|
};
|
|
|
|
reg_gmac_3v3: gmac-3v3 {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "vcc-gmac-3v3";
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
startup-delay-us = <100000>;
|
|
gpio = <&pio 2 16 GPIO_ACTIVE_HIGH>;
|
|
enable-active-high;
|
|
};
|
|
|
|
reg_usb_vbus: vbus {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "usb-vbus";
|
|
regulator-min-microvolt = <5000000>;
|
|
regulator-max-microvolt = <5000000>;
|
|
startup-delay-us = <100000>;
|
|
gpio = <&r_pio 0 5 GPIO_ACTIVE_HIGH>;
|
|
enable-active-high;
|
|
};
|
|
};
|
|
|
|
&cpu0 {
|
|
cpu-supply = <®_dcdca>;
|
|
};
|
|
|
|
&de {
|
|
status = "okay";
|
|
};
|
|
|
|
&ehci0 {
|
|
status = "okay";
|
|
};
|
|
|
|
&ehci3 {
|
|
status = "okay";
|
|
};
|
|
|
|
&emac {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&ext_rgmii_pins>;
|
|
phy-mode = "rgmii";
|
|
phy-handle = <&ext_rgmii_phy>;
|
|
phy-supply = <®_gmac_3v3>;
|
|
allwinner,rx-delay-ps = <200>;
|
|
allwinner,tx-delay-ps = <200>;
|
|
status = "okay";
|
|
};
|
|
|
|
&gpu {
|
|
mali-supply = <®_dcdcc>;
|
|
status = "okay";
|
|
};
|
|
|
|
&hdmi {
|
|
status = "okay";
|
|
};
|
|
|
|
&hdmi_out {
|
|
hdmi_out_con: endpoint {
|
|
remote-endpoint = <&hdmi_con_in>;
|
|
};
|
|
};
|
|
|
|
&mdio {
|
|
ext_rgmii_phy: ethernet-phy@1 {
|
|
compatible = "ethernet-phy-ieee802.3-c22";
|
|
reg = <1>;
|
|
};
|
|
};
|
|
|
|
&mmc0 {
|
|
vmmc-supply = <®_cldo1>;
|
|
cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
|
|
bus-width = <4>;
|
|
status = "okay";
|
|
};
|
|
|
|
&mmc2 {
|
|
vmmc-supply = <®_cldo1>;
|
|
vqmmc-supply = <®_bldo2>;
|
|
non-removable;
|
|
cap-mmc-hw-reset;
|
|
bus-width = <8>;
|
|
status = "okay";
|
|
};
|
|
|
|
&ohci0 {
|
|
status = "okay";
|
|
};
|
|
|
|
&ohci3 {
|
|
status = "okay";
|
|
};
|
|
|
|
&pio {
|
|
vcc-pc-supply = <®_bldo2>;
|
|
vcc-pd-supply = <®_cldo1>;
|
|
vcc-pg-supply = <®_aldo1>;
|
|
};
|
|
|
|
&r_i2c {
|
|
status = "okay";
|
|
|
|
axp805: pmic@36 {
|
|
compatible = "x-powers,axp805", "x-powers,axp806";
|
|
reg = <0x36>;
|
|
interrupt-parent = <&r_intc>;
|
|
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
|
interrupt-controller;
|
|
#interrupt-cells = <1>;
|
|
x-powers,self-working-mode;
|
|
|
|
regulators {
|
|
reg_aldo1: aldo1 {
|
|
regulator-always-on;
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
regulator-name = "vcc-pl";
|
|
};
|
|
|
|
reg_aldo2: aldo2 {
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
regulator-name = "vcc-ac200";
|
|
regulator-enable-ramp-delay = <100000>;
|
|
};
|
|
|
|
reg_aldo3: aldo3 {
|
|
/* This regulator is connected with CLDO1 */
|
|
regulator-always-on;
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
regulator-name = "vcc-3v3-1";
|
|
};
|
|
|
|
reg_bldo1: bldo1 {
|
|
regulator-always-on;
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <1800000>;
|
|
regulator-name = "vcc-bias-pll";
|
|
};
|
|
|
|
reg_bldo2: bldo2 {
|
|
regulator-always-on;
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <1800000>;
|
|
regulator-name = "vcc-efuse-pcie-hdmi-io";
|
|
};
|
|
|
|
reg_bldo3: bldo3 {
|
|
regulator-always-on;
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <1800000>;
|
|
regulator-name = "vcc-dcxoio";
|
|
};
|
|
|
|
bldo4 {
|
|
/* unused */
|
|
};
|
|
|
|
reg_cldo1: cldo1 {
|
|
/* This regulator is connected with ALDO3 */
|
|
regulator-always-on;
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
regulator-name = "vcc-3v3-2";
|
|
};
|
|
|
|
reg_cldo2: cldo2 {
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
regulator-name = "vcc-wifi-1";
|
|
};
|
|
|
|
reg_cldo3: cldo3 {
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
regulator-name = "vcc-wifi-2";
|
|
};
|
|
|
|
reg_dcdca: dcdca {
|
|
regulator-always-on;
|
|
regulator-min-microvolt = <810000>;
|
|
regulator-max-microvolt = <1160000>;
|
|
regulator-ramp-delay = <2500>;
|
|
regulator-name = "vdd-cpu";
|
|
};
|
|
|
|
reg_dcdcc: dcdcc {
|
|
regulator-enable-ramp-delay = <32000>;
|
|
regulator-min-microvolt = <810000>;
|
|
regulator-max-microvolt = <1080000>;
|
|
regulator-ramp-delay = <2500>;
|
|
regulator-name = "vdd-gpu";
|
|
};
|
|
|
|
reg_dcdcd: dcdcd {
|
|
regulator-always-on;
|
|
regulator-min-microvolt = <960000>;
|
|
regulator-max-microvolt = <960000>;
|
|
regulator-name = "vdd-sys";
|
|
};
|
|
|
|
reg_dcdce: dcdce {
|
|
regulator-always-on;
|
|
regulator-min-microvolt = <1200000>;
|
|
regulator-max-microvolt = <1200000>;
|
|
regulator-name = "vcc-dram";
|
|
};
|
|
|
|
sw {
|
|
/* unused */
|
|
};
|
|
};
|
|
};
|
|
|
|
pcf8563: rtc@51 {
|
|
compatible = "nxp,pcf8563";
|
|
reg = <0x51>;
|
|
interrupt-parent = <&r_intc>;
|
|
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
|
#clock-cells = <0>;
|
|
};
|
|
};
|
|
|
|
&r_ir {
|
|
status = "okay";
|
|
};
|
|
|
|
&r_pio {
|
|
vcc-pm-supply = <®_aldo1>;
|
|
};
|
|
|
|
&rtc {
|
|
clocks = <&ext_osc32k>;
|
|
};
|
|
|
|
/*
|
|
* The CS pin is shared with the MMC2 CMD pin, so we cannot have the SPI
|
|
* flash and eMMC at the same time, as one of them would fail probing.
|
|
* Disable SPI0 in here, to prefer the more useful eMMC. U-Boot can
|
|
* fix this up in no eMMC is connected.
|
|
*/
|
|
&spi0 {
|
|
pinctrl-0 = <&spi0_pins>, <&spi0_cs_pin>;
|
|
pinctrl-names = "default";
|
|
status = "disabled";
|
|
|
|
flash@0 {
|
|
compatible = "winbond,w25q128", "jedec,spi-nor";
|
|
reg = <0>;
|
|
spi-max-frequency = <4000000>;
|
|
};
|
|
};
|
|
|
|
&uart0 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&uart0_ph_pins>;
|
|
status = "okay";
|
|
};
|
|
|
|
&usb2otg {
|
|
dr_mode = "host";
|
|
status = "okay";
|
|
};
|
|
|
|
&usb2phy {
|
|
usb0_vbus-supply = <®_usb_vbus>;
|
|
usb3_vbus-supply = <®_usb_vbus>;
|
|
status = "okay";
|
|
};
|