Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Gateway GZ80x: add dtsi and power off support via pwr button #7251

Merged
merged 2 commits into from
Sep 17, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
pyavitz marked this conversation as resolved.
Show resolved Hide resolved
Original file line number Diff line number Diff line change
@@ -1,68 +1,31 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright (c) 2024 Patrick Yavitz <[email protected]>
*
*/

/dts-v1/;

#include "meson-axg-jethome-jethub-j1xx.dtsi"
#include <dt-bindings/leds/common.h>
#include "meson-axg-amper-gateway-gz80x.dtsi"

/ {
compatible = "amper,gateway-am-gz80x", "amlogic,a113x", "amlogic,meson-axg";
model = "Amper Gateway AM-GZ80x";

aliases {
serial0 = &uart_AO;
serial1 = &uart_B;
serial2 = &uart_AO_B;
ethernet0 = &ethmac;
};

chosen {
stdout-path = "serial0:115200n8";
};

leds {
compatible = "gpio-leds";

led-blue {
color = <LED_COLOR_ID_BLUE>;
function = LED_FUNCTION_STATUS;
gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "default-on";
};

led-green {
color = <LED_COLOR_ID_GREEN>;
function = LED_FUNCTION_STATUS;
gpios = <&gpio_ao GPIOAO_4 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "mmc1";
};

led-red {
color = <LED_COLOR_ID_RED>;
function = LED_FUNCTION_STATUS;
gpios = <&gpio_ao GPIOAO_7 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "usb-host";
};
};

/* 1024MB RAM */
memory@0 {
device_type = "memory";
reg = <0x0 0x0 0x0 0x40000000>;
};
};

/delete-node/ &i2c1;

/* wifi module */
&sd_emmc_b {
non-removable;

rtl8189ftv: wifi@1 {
sdio: wifi@1 {
adeepn marked this conversation as resolved.
Show resolved Hide resolved
reg = <1>;
};
};
Expand All @@ -72,16 +35,3 @@
pinctrl-0 = <&uart_b_z_pins>;
pinctrl-names = "default";
};

/* UART Wireless module */
&uart_AO_B {
status = "okay";
pinctrl-0 = <&uart_ao_b_z_pins>;
pinctrl-names = "default";
reset-gpios = <&gpio GPIOZ_6 GPIO_ACTIVE_HIGH>;
};

&usb_pwr {
gpio = <&gpio_ao GPIOAO_5 GPIO_ACTIVE_HIGH>;
enable-active-high;
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,297 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright (c) 2024 Patrick Yavitz <[email protected]>
*/

/dts-v1/;

#include "meson-axg.dtsi"
#include <dt-bindings/input/input.h>
#include <dt-bindings/leds/common.h>
#include <dt-bindings/thermal/thermal.h>

/ {
aliases {
serial0 = &uart_AO;
};

chosen {
stdout-path = "serial0:115200n8";
};

emmc_pwrseq: emmc-pwrseq {
compatible = "mmc-pwrseq-emmc";
reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
};

gpio-keys-polled {
compatible = "gpio-keys-polled";
poll-interval = <100>;

button-power {
label = "power";
linux,code = <KEY_POWER>;
gpios = <&gpio_ao GPIOAO_6 GPIO_ACTIVE_HIGH>;
};
};

leds {
compatible = "gpio-leds";

led-blue {
color = <LED_COLOR_ID_BLUE>;
function = LED_FUNCTION_STATUS;
gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "default-on";
};

led-green {
color = <LED_COLOR_ID_GREEN>;
function = LED_FUNCTION_STATUS;
gpios = <&gpio_ao GPIOAO_4 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "mmc1";
};

led-red {
color = <LED_COLOR_ID_RED>;
function = LED_FUNCTION_STATUS;
gpios = <&gpio_ao GPIOAO_7 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "usb-host";
};
};

reserved-memory {
linux,cma {
size = <0x0 0x400000>;
};
};

sdio_pwrseq: sdio-pwrseq {
compatible = "mmc-pwrseq-simple";
reset-gpios = <&gpio GPIOX_7 GPIO_ACTIVE_LOW>;
clocks = <&wifi32k>;
clock-names = "ext_clock";
};

thermal-zones {
cpu_thermal: cpu-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&scpi_sensors 0>;
trips {
cpu_passive: cpu-passive {
temperature = <70000>; /* millicelsius */
hysteresis = <2000>; /* millicelsius */
type = "passive";
};

cpu_hot: cpu-hot {
temperature = <80000>; /* millicelsius */
hysteresis = <2000>; /* millicelsius */
type = "hot";
};

cpu_critical: cpu-critical {
temperature = <100000>; /* millicelsius */
hysteresis = <2000>; /* millicelsius */
type = "critical";
};
};

cpu_cooling_maps: cooling-maps {
map0 {
trip = <&cpu_passive>;
cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
<&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
<&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
<&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
};

map1 {
trip = <&cpu_hot>;
cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
<&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
<&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
<&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
};
};
};
};

usb_pwr: regulator-usb_pwr {
compatible = "regulator-fixed";
regulator-name = "USB_PWR";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
vin-supply = <&vcc_5v>;
regulator-always-on;

gpio = <&gpio_ao GPIOAO_5 GPIO_ACTIVE_HIGH>;
enable-active-high;
};

vcc_3v3: regulator-vcc_3v3 {
compatible = "regulator-fixed";
regulator-name = "VCC_3V3";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
vin-supply = <&vddao_3v3>;
regulator-always-on;
};

vcc_5v: regulator-vcc_5v {
compatible = "regulator-fixed";
regulator-name = "VCC5V";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
regulator-always-on;
};

vddao_3v3: regulator-vddao_3v3 {
compatible = "regulator-fixed";
regulator-name = "VDDAO_3V3";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
vin-supply = <&vcc_5v>;
regulator-always-on;
};

vddio_ao18: regulator-vddio_ao18 {
compatible = "regulator-fixed";
regulator-name = "VDDIO_AO18";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
vin-supply = <&vddao_3v3>;
regulator-always-on;
};

vddio_boot: regulator-vddio_boot {
compatible = "regulator-fixed";
regulator-name = "VDDIO_BOOT";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
vin-supply = <&vddao_3v3>;
regulator-always-on;
};

vccq_1v8: regulator-vccq_1v8 {
compatible = "regulator-fixed";
regulator-name = "VCCQ_1V8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
vin-supply = <&vddao_3v3>;
regulator-always-on;
};

wifi32k: wifi32k {
compatible = "pwm-clock";
#clock-cells = <0>;
clock-frequency = <32768>;
pwms = <&pwm_ab 0 30518 0>; /* PWM_A at 32.768KHz */
};
};

&cpu0 {
#cooling-cells = <2>;
};

&cpu1 {
#cooling-cells = <2>;
};

&cpu2 {
#cooling-cells = <2>;
};

&cpu3 {
#cooling-cells = <2>;
};

&ethmac {
status = "okay";
pinctrl-0 = <&eth_rmii_x_pins>;
pinctrl-names = "default";
phy-mode = "rmii";
};

/* Peripheral I2C bus (on motherboard) */
&i2c_AO {
status = "okay";
pinctrl-0 = <&i2c_ao_sck_10_pins>, <&i2c_ao_sda_11_pins>;
pinctrl-names = "default";
};

&pwm_ab {
status = "okay";
pinctrl-0 = <&pwm_a_x20_pins>;
pinctrl-names = "default";
};

/* WiFi module */
&sd_emmc_b {
status = "okay";
#address-cells = <1>;
#size-cells = <0>;

pinctrl-0 = <&sdio_pins>;
pinctrl-1 = <&sdio_clk_gate_pins>;
pinctrl-names = "default", "clk-gate";

bus-width = <4>;
cap-sd-highspeed;
max-frequency = <50000000>;
disable-wp;
non-removable;

mmc-pwrseq = <&sdio_pwrseq>;

vmmc-supply = <&vddao_3v3>;
vqmmc-supply = <&vddio_boot>;
};

/* eMMC Storage */
&sd_emmc_c {
status = "okay";
pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
pinctrl-1 = <&emmc_clk_gate_pins>;
pinctrl-names = "default", "clk-gate";

bus-width = <8>;
cap-mmc-highspeed;
max-frequency = <200000000>;
non-removable;
disable-wp;
mmc-ddr-1_8v;
mmc-hs200-1_8v;

mmc-pwrseq = <&emmc_pwrseq>;

vmmc-supply = <&vcc_3v3>;
vqmmc-supply = <&vccq_1v8>;
};

&spicc1 {
status = "okay";
pinctrl-0 = <&spi1_x_pins>, <&spi1_ss0_x_pins>;
pinctrl-names = "default";
};

/* UART Console */
&uart_AO {
status = "okay";
pinctrl-0 = <&uart_ao_a_pins>;
pinctrl-names = "default";
};

/* UART Wireless module */
&uart_AO_B {
status = "okay";
pinctrl-0 = <&uart_ao_b_z_pins>;
pinctrl-names = "default";
reset-gpios = <&gpio GPIOZ_6 GPIO_ACTIVE_HIGH>;
};

&usb {
status = "okay";
vbus-supply = <&usb_pwr>;
};
Loading