-
-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Gateway GZ80x: add dtsi and power off support via pwr button
There are three revs: AM-GZ80x, AM-GZ80x-US and SC-GZ80x Add a DSTI in case one should drop out of the sky and we need a DTS for it. This also removes its dependency on meson-axg-jethome-jethub-j1xx.dtsi. Can now power down via power button on the back of the unit and power back on via reset button on the side. Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
- Loading branch information
Showing
5 changed files
with
873 additions
and
134 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
293 changes: 293 additions & 0 deletions
293
patch/kernel/archive/meson64-6.11/dt/meson-axg-amper-gateway-gz80x.dtsi
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,293 @@ | ||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT) | ||
/* | ||
* Copyright (c) 2024 Patrick Yavitz <pyavitz@armbian.com> | ||
*/ | ||
|
||
/dts-v1/; | ||
|
||
#include "meson-axg.dtsi" | ||
#include <dt-bindings/input/input.h> | ||
#include <dt-bindings/leds/common.h> | ||
#include <dt-bindings/thermal/thermal.h> | ||
|
||
/ { | ||
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>; | ||
}; | ||
|
||
ðmac { | ||
status = "okay"; | ||
pinctrl-0 = <ð_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>; | ||
}; |
Oops, something went wrong.