mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
synced 2025-09-02 08:32:55 +00:00

Bananapi R4 has a green and a blue led which can be switched by gpio. Green led is for running state so default on. Green led also shares pin with eeprom writeprotect where led off allows writing to eeprom. Signed-off-by: Frank Wunderlich <frank-w@public-files.de> Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> Link: https://lore.kernel.org/r/20250706132213.20412-14-linux@fw-web.de [Angelo: Fixed missing dt-bindings/leds/common.h header inclusion] Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
386 lines
6.3 KiB
Plaintext
386 lines
6.3 KiB
Plaintext
// SPDX-License-Identifier: GPL-2.0-only OR MIT
|
|
|
|
/dts-v1/;
|
|
|
|
#include <dt-bindings/gpio/gpio.h>
|
|
#include <dt-bindings/leds/common.h>
|
|
#include <dt-bindings/regulator/richtek,rt5190a-regulator.h>
|
|
|
|
#include "mt7988a.dtsi"
|
|
|
|
/ {
|
|
chosen {
|
|
stdout-path = "serial0:115200n8";
|
|
};
|
|
|
|
fan: pwm-fan {
|
|
compatible = "pwm-fan";
|
|
/* cooling level (0, 1, 2, 3) : (0% duty, 30% duty, 50% duty, 100% duty) */
|
|
cooling-levels = <0 80 128 255>;
|
|
#cooling-cells = <2>;
|
|
pwms = <&pwm 0 50000>;
|
|
status = "okay";
|
|
};
|
|
|
|
gpio-leds {
|
|
compatible = "gpio-leds";
|
|
|
|
led_green: led-green {
|
|
function = LED_FUNCTION_STATUS;
|
|
color = <LED_COLOR_ID_GREEN>;
|
|
gpios = <&pio 79 GPIO_ACTIVE_HIGH>;
|
|
default-state = "on";
|
|
};
|
|
|
|
led_blue: led-blue {
|
|
function = LED_FUNCTION_WPS;
|
|
color = <LED_COLOR_ID_BLUE>;
|
|
gpios = <&pio 63 GPIO_ACTIVE_HIGH>;
|
|
default-state = "off";
|
|
};
|
|
};
|
|
|
|
|
|
reg_1p8v: regulator-1p8v {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "fixed-1.8V";
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <1800000>;
|
|
regulator-boot-on;
|
|
regulator-always-on;
|
|
};
|
|
|
|
reg_3p3v: regulator-3p3v {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "fixed-3.3V";
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
regulator-boot-on;
|
|
regulator-always-on;
|
|
};
|
|
};
|
|
|
|
&cci {
|
|
proc-supply = <&rt5190_buck3>;
|
|
};
|
|
|
|
&cpu0 {
|
|
proc-supply = <&rt5190_buck3>;
|
|
};
|
|
|
|
&cpu1 {
|
|
proc-supply = <&rt5190_buck3>;
|
|
};
|
|
|
|
&cpu2 {
|
|
proc-supply = <&rt5190_buck3>;
|
|
};
|
|
|
|
&cpu3 {
|
|
proc-supply = <&rt5190_buck3>;
|
|
};
|
|
|
|
&cpu_thermal {
|
|
trips {
|
|
cpu_trip_hot: hot {
|
|
temperature = <120000>;
|
|
hysteresis = <2000>;
|
|
type = "hot";
|
|
};
|
|
|
|
cpu_trip_active_high: active-high {
|
|
temperature = <115000>;
|
|
hysteresis = <2000>;
|
|
type = "active";
|
|
};
|
|
|
|
cpu_trip_active_med: active-med {
|
|
temperature = <85000>;
|
|
hysteresis = <2000>;
|
|
type = "active";
|
|
};
|
|
|
|
cpu_trip_active_low: active-low {
|
|
temperature = <40000>;
|
|
hysteresis = <2000>;
|
|
type = "active";
|
|
};
|
|
};
|
|
|
|
cooling-maps {
|
|
map-cpu-active-high {
|
|
/* active: set fan to cooling level 2 */
|
|
cooling-device = <&fan 3 3>;
|
|
trip = <&cpu_trip_active_high>;
|
|
};
|
|
|
|
map-cpu-active-med {
|
|
/* active: set fan to cooling level 1 */
|
|
cooling-device = <&fan 2 2>;
|
|
trip = <&cpu_trip_active_med>;
|
|
};
|
|
|
|
map-cpu-active-low {
|
|
/* active: set fan to cooling level 0 */
|
|
cooling-device = <&fan 1 1>;
|
|
trip = <&cpu_trip_active_low>;
|
|
};
|
|
};
|
|
};
|
|
|
|
&i2c0 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&i2c0_pins>;
|
|
status = "okay";
|
|
|
|
rt5190a_64: rt5190a@64 {
|
|
compatible = "richtek,rt5190a";
|
|
reg = <0x64>;
|
|
vin2-supply = <&rt5190_buck1>;
|
|
vin3-supply = <&rt5190_buck1>;
|
|
vin4-supply = <&rt5190_buck1>;
|
|
|
|
regulators {
|
|
rt5190_buck1: buck1 {
|
|
regulator-name = "rt5190a-buck1";
|
|
regulator-min-microvolt = <5090000>;
|
|
regulator-max-microvolt = <5090000>;
|
|
regulator-allowed-modes =
|
|
<RT5190A_OPMODE_AUTO>, <RT5190A_OPMODE_FPWM>;
|
|
regulator-boot-on;
|
|
regulator-always-on;
|
|
};
|
|
buck2 {
|
|
regulator-name = "vcore";
|
|
regulator-min-microvolt = <600000>;
|
|
regulator-max-microvolt = <1400000>;
|
|
regulator-boot-on;
|
|
regulator-always-on;
|
|
};
|
|
rt5190_buck3: buck3 {
|
|
regulator-name = "vproc";
|
|
regulator-min-microvolt = <600000>;
|
|
regulator-max-microvolt = <1400000>;
|
|
regulator-boot-on;
|
|
};
|
|
buck4 {
|
|
regulator-name = "rt5190a-buck4";
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <1800000>;
|
|
regulator-allowed-modes =
|
|
<RT5190A_OPMODE_AUTO>, <RT5190A_OPMODE_FPWM>;
|
|
regulator-boot-on;
|
|
regulator-always-on;
|
|
};
|
|
ldo {
|
|
regulator-name = "rt5190a-ldo";
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <1800000>;
|
|
regulator-boot-on;
|
|
regulator-always-on;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
&i2c2 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&i2c2_1_pins>;
|
|
status = "okay";
|
|
|
|
pca9545: i2c-mux@70 {
|
|
compatible = "nxp,pca9545";
|
|
reg = <0x70>;
|
|
reset-gpios = <&pio 5 GPIO_ACTIVE_LOW>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
i2c@0 {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
reg = <0>;
|
|
|
|
pcf8563: rtc@51 {
|
|
compatible = "nxp,pcf8563";
|
|
reg = <0x51>;
|
|
#clock-cells = <0>;
|
|
};
|
|
|
|
eeprom@57 {
|
|
compatible = "atmel,24c02";
|
|
reg = <0x57>;
|
|
size = <256>;
|
|
};
|
|
|
|
};
|
|
|
|
i2c_sfp1: i2c@1 {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
reg = <1>;
|
|
};
|
|
};
|
|
};
|
|
|
|
/* mPCIe SIM2 */
|
|
&pcie0 {
|
|
status = "okay";
|
|
};
|
|
|
|
/* mPCIe SIM3 */
|
|
&pcie1 {
|
|
status = "okay";
|
|
};
|
|
|
|
/* M.2 key-B SIM1 */
|
|
&pcie2 {
|
|
status = "okay";
|
|
};
|
|
|
|
/* M.2 key-M SSD */
|
|
&pcie3 {
|
|
status = "okay";
|
|
};
|
|
|
|
&pio {
|
|
i2c0_pins: i2c0-g0-pins {
|
|
mux {
|
|
function = "i2c";
|
|
groups = "i2c0_1";
|
|
};
|
|
};
|
|
|
|
i2c1_pins: i2c1-g0-pins {
|
|
mux {
|
|
function = "i2c";
|
|
groups = "i2c1_0";
|
|
};
|
|
};
|
|
|
|
i2c2_1_pins: i2c2-g1-pins {
|
|
mux {
|
|
function = "i2c";
|
|
groups = "i2c2_1";
|
|
};
|
|
};
|
|
|
|
gbe0_led0_pins: gbe0-led0-pins {
|
|
mux {
|
|
function = "led";
|
|
groups = "gbe0_led0";
|
|
};
|
|
};
|
|
|
|
gbe1_led0_pins: gbe1-led0-pins {
|
|
mux {
|
|
function = "led";
|
|
groups = "gbe1_led0";
|
|
};
|
|
};
|
|
|
|
gbe2_led0_pins: gbe2-led0-pins {
|
|
mux {
|
|
function = "led";
|
|
groups = "gbe2_led0";
|
|
};
|
|
};
|
|
|
|
gbe3_led0_pins: gbe3-led0-pins {
|
|
mux {
|
|
function = "led";
|
|
groups = "gbe3_led0";
|
|
};
|
|
};
|
|
|
|
i2p5gbe_led0_pins: 2p5gbe-led0-pins {
|
|
mux {
|
|
function = "led";
|
|
groups = "2p5gbe_led0";
|
|
};
|
|
};
|
|
|
|
mmc0_pins_emmc_45: mmc0-emmc-45-pins {
|
|
mux {
|
|
function = "flash";
|
|
groups = "emmc_45";
|
|
};
|
|
};
|
|
|
|
mmc0_pins_emmc_51: mmc0-emmc-51-pins {
|
|
mux {
|
|
function = "flash";
|
|
groups = "emmc_51";
|
|
};
|
|
};
|
|
|
|
mmc0_pins_sdcard: mmc0-sdcard-pins {
|
|
mux {
|
|
function = "flash";
|
|
groups = "sdcard";
|
|
};
|
|
};
|
|
|
|
spi0_flash_pins: spi0-flash-pins {
|
|
mux {
|
|
function = "spi";
|
|
groups = "spi0", "spi0_wp_hold";
|
|
};
|
|
};
|
|
};
|
|
|
|
&pwm {
|
|
status = "okay";
|
|
};
|
|
|
|
&serial0 {
|
|
status = "okay";
|
|
};
|
|
|
|
&spi0 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&spi0_flash_pins>;
|
|
status = "okay";
|
|
|
|
spi_nand: flash@0 {
|
|
compatible = "spi-nand";
|
|
reg = <0>;
|
|
spi-max-frequency = <52000000>;
|
|
spi-tx-bus-width = <4>;
|
|
spi-rx-bus-width = <4>;
|
|
};
|
|
};
|
|
|
|
&spi1 {
|
|
status = "okay";
|
|
};
|
|
|
|
&spi_nand {
|
|
partitions {
|
|
compatible = "fixed-partitions";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
|
|
partition@0 {
|
|
label = "bl2";
|
|
reg = <0x0 0x200000>;
|
|
read-only;
|
|
};
|
|
};
|
|
};
|
|
|
|
&ssusb1 {
|
|
status = "okay";
|
|
};
|
|
|
|
&tphy {
|
|
status = "okay";
|
|
};
|
|
|
|
&watchdog {
|
|
status = "okay";
|
|
};
|
|
|
|
&xsphy {
|
|
status = "okay";
|
|
};
|