mirror of
https://git.openwrt.org/openwrt/openwrt.git
synced 2026-04-25 21:21:21 +02:00
mediatek: drop v6.12 and default to v6.18
Switch to kernel v6.18 and drop v6.12. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
This commit is contained in:
parent
8275b62ecd
commit
bdd216a4ec
@ -8,8 +8,7 @@ BOARDNAME:=MediaTek ARM
|
||||
SUBTARGETS:=filogic mt7622 mt7623 mt7629
|
||||
FEATURES:=dt-overlay emmc fpu gpio nand pci pcie rootfs-part separate_ramdisk squashfs usb
|
||||
|
||||
KERNEL_PATCHVER:=6.12
|
||||
KERNEL_TESTING_PATCHVER:=6.18
|
||||
KERNEL_PATCHVER:=6.18
|
||||
|
||||
include $(INCLUDE_DIR)/target.mk
|
||||
DEFAULT_PACKAGES += \
|
||||
|
||||
@ -1,34 +0,0 @@
|
||||
/* SPDX-License-Identifier: (GPL-2.0-only OR MIT) */
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
|
||||
/ {
|
||||
compatible = "mediatek,mt7981-rfb", "mediatek,mt7981";
|
||||
|
||||
fragment@0 {
|
||||
target = <&gmac1>;
|
||||
__overlay__ {
|
||||
phy-mode = "2500base-x";
|
||||
phy-handle = <&phy5>;
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&mdio_bus>;
|
||||
__overlay__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reset-gpios = <&pio 14 GPIO_ACTIVE_LOW>;
|
||||
reset-delay-us = <600>;
|
||||
reset-post-delay-us = <20000>;
|
||||
|
||||
phy5: ethernet-phy@5 {
|
||||
reg = <5>;
|
||||
compatible = "ethernet-phy-ieee802.3-c45";
|
||||
phy-mode = "2500base-x";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
@ -1,35 +0,0 @@
|
||||
/* SPDX-License-Identifier: (GPL-2.0-only OR MIT) */
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
|
||||
/ {
|
||||
compatible = "mediatek,mt7981-rfb", "mediatek,mt7981";
|
||||
|
||||
fragment@0 {
|
||||
target = <&sw_p5>;
|
||||
__overlay__ {
|
||||
phy-mode = "2500base-x";
|
||||
phy-handle = <&phy5>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&mdio_bus>;
|
||||
__overlay__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reset-gpios = <&pio 14 GPIO_ACTIVE_LOW>;
|
||||
reset-delay-us = <600>;
|
||||
reset-post-delay-us = <20000>;
|
||||
|
||||
phy5: ethernet-phy@5 {
|
||||
reg = <5>;
|
||||
compatible = "ethernet-phy-ieee802.3-c45";
|
||||
phy-mode = "2500base-x";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
@ -1,76 +0,0 @@
|
||||
/* SPDX-License-Identifier: (GPL-2.0-only OR MIT) */
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "mediatek,mt7981-rfb", "mediatek,mt7981";
|
||||
|
||||
fragment@0 {
|
||||
target = <&chosen>;
|
||||
rootdisk-spim-nand = <&ubi_rootdisk>;
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&spi0>;
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
spi_nand: spi_nand@1 {
|
||||
compatible = "spi-nand";
|
||||
reg = <1>;
|
||||
spi-max-frequency = <10000000>;
|
||||
spi-tx-bus-width = <4>;
|
||||
spi-rx-bus-width = <4>;
|
||||
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
partition@0 {
|
||||
label = "BL2";
|
||||
reg = <0x00000 0x0100000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@100000 {
|
||||
label = "u-boot-env";
|
||||
reg = <0x0100000 0x0080000>;
|
||||
};
|
||||
|
||||
factory: partition@180000 {
|
||||
label = "Factory";
|
||||
reg = <0x180000 0x0200000>;
|
||||
};
|
||||
|
||||
partition@380000 {
|
||||
label = "FIP";
|
||||
reg = <0x380000 0x0200000>;
|
||||
};
|
||||
|
||||
partition@580000 {
|
||||
label = "ubi";
|
||||
reg = <0x580000 0x4000000>;
|
||||
compatible = "linux,ubi";
|
||||
|
||||
volumes {
|
||||
ubi_rootdisk: ubi-volume-fit {
|
||||
volname = "fit";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&wifi>;
|
||||
__overlay__ {
|
||||
mediatek,mtd-eeprom = <&factory 0x0>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
@ -1,189 +0,0 @@
|
||||
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
|
||||
/*
|
||||
* Copyright (C) 2022 MediaTek Inc.
|
||||
* Author: Sam.Shih <sam.shih@mediatek.com>
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
#include "mt7981b.dtsi"
|
||||
|
||||
/ {
|
||||
model = "MediaTek MT7981 RFB";
|
||||
compatible = "mediatek,mt7981-rfb", "mediatek,mt7981";
|
||||
|
||||
aliases {
|
||||
serial0 = &uart0;
|
||||
};
|
||||
|
||||
chosen: chosen {
|
||||
stdout-path = "serial0:115200n8";
|
||||
bootargs-append = " root=/dev/fit0 rootwait";
|
||||
};
|
||||
|
||||
memory@40000000 {
|
||||
reg = <0 0x40000000 0 0x20000000>;
|
||||
device_type = "memory";
|
||||
};
|
||||
|
||||
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;
|
||||
};
|
||||
|
||||
reg_5v: regulator-5v {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "fixed-5V";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
gpio-keys {
|
||||
compatible = "gpio-keys";
|
||||
reset {
|
||||
label = "reset";
|
||||
linux,code = <KEY_RESTART>;
|
||||
gpios = <&pio 1 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
wps {
|
||||
label = "wps";
|
||||
linux,code = <KEY_WPS_BUTTON>;
|
||||
gpios = <&pio 0 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
ð {
|
||||
status = "okay";
|
||||
|
||||
gmac0: mac@0 {
|
||||
compatible = "mediatek,eth-mac";
|
||||
reg = <0>;
|
||||
phy-mode = "2500base-x";
|
||||
|
||||
fixed-link {
|
||||
speed = <2500>;
|
||||
full-duplex;
|
||||
pause;
|
||||
};
|
||||
};
|
||||
|
||||
gmac1: mac@1 {
|
||||
compatible = "mediatek,eth-mac";
|
||||
reg = <1>;
|
||||
phy-mode = "gmii";
|
||||
phy-handle = <&int_gbe_phy>;
|
||||
};
|
||||
};
|
||||
|
||||
&mdio_bus {
|
||||
switch: switch@1f {
|
||||
compatible = "mediatek,mt7531";
|
||||
reg = <31>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <1>;
|
||||
interrupt-parent = <&pio>;
|
||||
interrupts = <38 IRQ_TYPE_LEVEL_HIGH>;
|
||||
reset-gpios = <&pio 5 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
};
|
||||
|
||||
&crypto {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pio {
|
||||
spi0_flash_pins: spi0-pins {
|
||||
mux {
|
||||
function = "spi";
|
||||
groups = "spi0", "spi0_wp_hold";
|
||||
};
|
||||
conf-pu {
|
||||
pins = "SPI0_CS", "SPI0_HOLD", "SPI0_WP";
|
||||
drive-strength = <MTK_DRIVE_8mA>;
|
||||
bias-pull-up = <MTK_PUPD_SET_R1R0_11>;
|
||||
};
|
||||
conf-pd {
|
||||
pins = "SPI0_CLK", "SPI0_MOSI", "SPI0_MISO";
|
||||
drive-strength = <MTK_DRIVE_8mA>;
|
||||
bias-pull-down = <MTK_PUPD_SET_R1R0_11>;
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
&spi0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&spi0_flash_pins>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&switch {
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
label = "lan1";
|
||||
};
|
||||
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
label = "lan2";
|
||||
};
|
||||
|
||||
port@2 {
|
||||
reg = <2>;
|
||||
label = "lan3";
|
||||
};
|
||||
|
||||
port@3 {
|
||||
reg = <3>;
|
||||
label = "lan4";
|
||||
};
|
||||
|
||||
sw_p5: port@5 {
|
||||
reg = <5>;
|
||||
label = "lan5";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
port@6 {
|
||||
reg = <6>;
|
||||
ethernet = <&gmac0>;
|
||||
phy-mode = "2500base-x";
|
||||
|
||||
fixed-link {
|
||||
speed = <2500>;
|
||||
full-duplex;
|
||||
pause;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&xhci {
|
||||
vusb33-supply = <®_3p3v>;
|
||||
vbus-supply = <®_5v>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb_phy {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&watchdog {
|
||||
status = "okay";
|
||||
};
|
||||
@ -1,50 +0,0 @@
|
||||
/* SPDX-License-Identifier: (GPL-2.0-only OR MIT) */
|
||||
|
||||
#include "mt7986a-rfb.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "mediatek,mt7986a-rfb-snand";
|
||||
};
|
||||
|
||||
&spi0 {
|
||||
status = "okay";
|
||||
|
||||
spi_nand: spi_nand@1 {
|
||||
compatible = "spi-nand";
|
||||
reg = <1>;
|
||||
spi-max-frequency = <10000000>;
|
||||
spi-tx-bus-width = <4>;
|
||||
spi-rx-bus-width = <4>;
|
||||
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
partition@0 {
|
||||
label = "BL2";
|
||||
reg = <0x00000 0x0100000>;
|
||||
read-only;
|
||||
};
|
||||
partition@100000 {
|
||||
label = "u-boot-env";
|
||||
reg = <0x0100000 0x0080000>;
|
||||
};
|
||||
factory: partition@180000 {
|
||||
label = "Factory";
|
||||
reg = <0x180000 0x0200000>;
|
||||
};
|
||||
partition@380000 {
|
||||
label = "FIP";
|
||||
reg = <0x380000 0x0200000>;
|
||||
};
|
||||
partition@580000 {
|
||||
label = "ubi";
|
||||
reg = <0x580000 0x4000000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&wifi {
|
||||
mediatek,mtd-eeprom = <&factory 0>;
|
||||
};
|
||||
@ -1,49 +0,0 @@
|
||||
/* SPDX-License-Identifier: (GPL-2.0-only OR MIT) */
|
||||
|
||||
#include "mt7986a-rfb.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "mediatek,mt7986a-rfb-snor";
|
||||
};
|
||||
|
||||
&spi0 {
|
||||
status = "okay";
|
||||
|
||||
spi_nor: spi_nor@0 {
|
||||
compatible = "jedec,spi-nor";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <52000000>;
|
||||
spi-tx-bus-width = <4>;
|
||||
spi-rx-bus-width = <4>;
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
partition@00000 {
|
||||
label = "BL2";
|
||||
reg = <0x00000 0x0040000>;
|
||||
};
|
||||
partition@40000 {
|
||||
label = "u-boot-env";
|
||||
reg = <0x40000 0x0010000>;
|
||||
};
|
||||
factory: partition@50000 {
|
||||
label = "Factory";
|
||||
reg = <0x50000 0x00B0000>;
|
||||
};
|
||||
partition@100000 {
|
||||
label = "FIP";
|
||||
reg = <0x100000 0x0080000>;
|
||||
};
|
||||
partition@180000 {
|
||||
label = "firmware";
|
||||
reg = <0x180000 0xE00000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&wifi {
|
||||
mediatek,mtd-eeprom = <&factory 0>;
|
||||
};
|
||||
@ -1,391 +0,0 @@
|
||||
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
|
||||
/*
|
||||
* Copyright (C) 2021 MediaTek Inc.
|
||||
* Author: Sam.Shih <sam.shih@mediatek.com>
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/pinctrl/mt65xx.h>
|
||||
#include "mt7986a.dtsi"
|
||||
|
||||
/ {
|
||||
model = "MediaTek MT7986a RFB";
|
||||
compatible = "mediatek,mt7986a-rfb";
|
||||
|
||||
aliases {
|
||||
serial0 = &uart0;
|
||||
};
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
memory@40000000 {
|
||||
reg = <0 0x40000000 0 0x40000000>;
|
||||
device_type = "memory";
|
||||
};
|
||||
|
||||
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;
|
||||
};
|
||||
|
||||
reg_5v: regulator-5v {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "fixed-5V";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
};
|
||||
|
||||
ð {
|
||||
status = "okay";
|
||||
|
||||
gmac0: mac@0 {
|
||||
compatible = "mediatek,eth-mac";
|
||||
reg = <0>;
|
||||
phy-mode = "2500base-x";
|
||||
|
||||
fixed-link {
|
||||
speed = <2500>;
|
||||
full-duplex;
|
||||
pause;
|
||||
};
|
||||
};
|
||||
|
||||
gmac1: mac@1 {
|
||||
compatible = "mediatek,eth-mac";
|
||||
reg = <1>;
|
||||
phy-mode = "2500base-x";
|
||||
};
|
||||
|
||||
mdio: mdio-bus {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
&wifi {
|
||||
status = "okay";
|
||||
pinctrl-names = "default", "dbdc";
|
||||
pinctrl-0 = <&wf_2g_5g_pins>;
|
||||
pinctrl-1 = <&wf_dbdc_pins>;
|
||||
};
|
||||
|
||||
&mdio {
|
||||
phy5: phy@5 {
|
||||
compatible = "ethernet-phy-id67c9.de0a";
|
||||
reg = <5>;
|
||||
|
||||
reset-gpios = <&pio 6 GPIO_ACTIVE_LOW>;
|
||||
reset-deassert-us = <20000>;
|
||||
};
|
||||
|
||||
phy6: phy@6 {
|
||||
compatible = "ethernet-phy-id67c9.de0a";
|
||||
reg = <6>;
|
||||
};
|
||||
|
||||
switch: switch@1f {
|
||||
compatible = "mediatek,mt7531";
|
||||
reg = <31>;
|
||||
reset-gpios = <&pio 5 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
};
|
||||
|
||||
&crypto {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mmc0 {
|
||||
pinctrl-names = "default", "state_uhs";
|
||||
pinctrl-0 = <&mmc0_pins_default>;
|
||||
pinctrl-1 = <&mmc0_pins_uhs>;
|
||||
bus-width = <8>;
|
||||
max-frequency = <200000000>;
|
||||
cap-mmc-highspeed;
|
||||
mmc-hs200-1_8v;
|
||||
mmc-hs400-1_8v;
|
||||
hs400-ds-delay = <0x14014>;
|
||||
vmmc-supply = <®_3p3v>;
|
||||
vqmmc-supply = <®_1p8v>;
|
||||
non-removable;
|
||||
no-sd;
|
||||
no-sdio;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pcie {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pcie_pins>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pcie_phy {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pio {
|
||||
mmc0_pins_default: mmc0-pins {
|
||||
mux {
|
||||
function = "emmc";
|
||||
groups = "emmc_51";
|
||||
};
|
||||
conf-cmd-dat {
|
||||
pins = "EMMC_DATA_0", "EMMC_DATA_1", "EMMC_DATA_2",
|
||||
"EMMC_DATA_3", "EMMC_DATA_4", "EMMC_DATA_5",
|
||||
"EMMC_DATA_6", "EMMC_DATA_7", "EMMC_CMD";
|
||||
input-enable;
|
||||
drive-strength = <MTK_DRIVE_4mA>;
|
||||
bias-pull-up = <MTK_PUPD_SET_R1R0_01>; /* pull-up 10K */
|
||||
};
|
||||
conf-clk {
|
||||
pins = "EMMC_CK";
|
||||
drive-strength = <MTK_DRIVE_6mA>;
|
||||
bias-pull-down = <MTK_PUPD_SET_R1R0_10>; /* pull-down 50K */
|
||||
};
|
||||
conf-ds {
|
||||
pins = "EMMC_DSL";
|
||||
bias-pull-down = <MTK_PUPD_SET_R1R0_10>; /* pull-down 50K */
|
||||
};
|
||||
conf-rst {
|
||||
pins = "EMMC_RSTB";
|
||||
drive-strength = <MTK_DRIVE_4mA>;
|
||||
bias-pull-up = <MTK_PUPD_SET_R1R0_01>; /* pull-up 10K */
|
||||
};
|
||||
};
|
||||
|
||||
mmc0_pins_uhs: mmc0-uhs-pins {
|
||||
mux {
|
||||
function = "emmc";
|
||||
groups = "emmc_51";
|
||||
};
|
||||
conf-cmd-dat {
|
||||
pins = "EMMC_DATA_0", "EMMC_DATA_1", "EMMC_DATA_2",
|
||||
"EMMC_DATA_3", "EMMC_DATA_4", "EMMC_DATA_5",
|
||||
"EMMC_DATA_6", "EMMC_DATA_7", "EMMC_CMD";
|
||||
input-enable;
|
||||
drive-strength = <MTK_DRIVE_4mA>;
|
||||
bias-pull-up = <MTK_PUPD_SET_R1R0_01>; /* pull-up 10K */
|
||||
};
|
||||
conf-clk {
|
||||
pins = "EMMC_CK";
|
||||
drive-strength = <MTK_DRIVE_6mA>;
|
||||
bias-pull-down = <MTK_PUPD_SET_R1R0_10>; /* pull-down 50K */
|
||||
};
|
||||
conf-ds {
|
||||
pins = "EMMC_DSL";
|
||||
bias-pull-down = <MTK_PUPD_SET_R1R0_10>; /* pull-down 50K */
|
||||
};
|
||||
conf-rst {
|
||||
pins = "EMMC_RSTB";
|
||||
drive-strength = <MTK_DRIVE_4mA>;
|
||||
bias-pull-up = <MTK_PUPD_SET_R1R0_01>; /* pull-up 10K */
|
||||
};
|
||||
};
|
||||
|
||||
pcie_pins: pcie-pins {
|
||||
mux {
|
||||
function = "pcie";
|
||||
groups = "pcie_clk", "pcie_wake", "pcie_pereset";
|
||||
};
|
||||
};
|
||||
|
||||
spic_pins_g2: spic-pins-29-to-32 {
|
||||
mux {
|
||||
function = "spi";
|
||||
groups = "spi1_2";
|
||||
};
|
||||
};
|
||||
|
||||
spi_flash_pins: spi-flash-pins-33-to-38 {
|
||||
mux {
|
||||
function = "spi";
|
||||
groups = "spi0", "spi0_wp_hold";
|
||||
};
|
||||
conf-pu {
|
||||
pins = "SPI2_CS", "SPI2_HOLD", "SPI2_WP";
|
||||
drive-strength = <MTK_DRIVE_8mA>;
|
||||
bias-disable; /* bias-disable */
|
||||
};
|
||||
conf-pd {
|
||||
pins = "SPI2_CLK", "SPI2_MOSI", "SPI2_MISO";
|
||||
drive-strength = <MTK_DRIVE_8mA>;
|
||||
bias-disable; /* bias-disable */
|
||||
};
|
||||
};
|
||||
|
||||
uart1_pins: uart1-pins {
|
||||
mux {
|
||||
function = "uart";
|
||||
groups = "uart1";
|
||||
};
|
||||
};
|
||||
|
||||
uart2_pins: uart2-pins {
|
||||
mux {
|
||||
function = "uart";
|
||||
groups = "uart2";
|
||||
};
|
||||
};
|
||||
|
||||
wf_2g_5g_pins: wf_2g_5g-pins {
|
||||
mux {
|
||||
function = "wifi";
|
||||
groups = "wf_2g", "wf_5g";
|
||||
};
|
||||
conf {
|
||||
pins = "WF0_HB1", "WF0_HB2", "WF0_HB3", "WF0_HB4",
|
||||
"WF0_HB0", "WF0_HB0_B", "WF0_HB5", "WF0_HB6",
|
||||
"WF0_HB7", "WF0_HB8", "WF0_HB9", "WF0_HB10",
|
||||
"WF0_TOP_CLK", "WF0_TOP_DATA", "WF1_HB1",
|
||||
"WF1_HB2", "WF1_HB3", "WF1_HB4", "WF1_HB0",
|
||||
"WF1_HB5", "WF1_HB6", "WF1_HB7", "WF1_HB8",
|
||||
"WF1_TOP_CLK", "WF1_TOP_DATA";
|
||||
drive-strength = <MTK_DRIVE_4mA>;
|
||||
};
|
||||
};
|
||||
|
||||
wf_dbdc_pins: wf_dbdc-pins {
|
||||
mux {
|
||||
function = "wifi";
|
||||
groups = "wf_dbdc";
|
||||
};
|
||||
conf {
|
||||
pins = "WF0_HB1", "WF0_HB2", "WF0_HB3", "WF0_HB4",
|
||||
"WF0_HB0", "WF0_HB0_B", "WF0_HB5", "WF0_HB6",
|
||||
"WF0_HB7", "WF0_HB8", "WF0_HB9", "WF0_HB10",
|
||||
"WF0_TOP_CLK", "WF0_TOP_DATA", "WF1_HB1",
|
||||
"WF1_HB2", "WF1_HB3", "WF1_HB4", "WF1_HB0",
|
||||
"WF1_HB5", "WF1_HB6", "WF1_HB7", "WF1_HB8",
|
||||
"WF1_TOP_CLK", "WF1_TOP_DATA";
|
||||
drive-strength = <MTK_DRIVE_4mA>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&spi0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&spi_flash_pins>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&spi1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&spic_pins_g2>;
|
||||
status = "okay";
|
||||
|
||||
proslic_spi: proslic_spi@0 {
|
||||
compatible = "silabs,proslic_spi";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <10000000>;
|
||||
spi-cpha = <1>;
|
||||
spi-cpol = <1>;
|
||||
channel_count = <1>;
|
||||
debug_level = <4>; /* 1 = TRC, 2 = DBG, 4 = ERR */
|
||||
reset-gpios = <&pio 7 GPIO_ACTIVE_HIGH>;
|
||||
ig,enable-spi = <1>; /* 1: Enable, 0: Disable */
|
||||
};
|
||||
};
|
||||
|
||||
&gmac1 {
|
||||
phy-mode = "2500base-x";
|
||||
phy-connection-type = "2500base-x";
|
||||
phy-handle = <&phy6>;
|
||||
};
|
||||
|
||||
&switch {
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
label = "lan1";
|
||||
};
|
||||
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
label = "lan2";
|
||||
};
|
||||
|
||||
port@2 {
|
||||
reg = <2>;
|
||||
label = "lan3";
|
||||
};
|
||||
|
||||
port@3 {
|
||||
reg = <3>;
|
||||
label = "lan4";
|
||||
};
|
||||
|
||||
port@4 {
|
||||
reg = <4>;
|
||||
label = "wan";
|
||||
};
|
||||
|
||||
port@5 {
|
||||
reg = <5>;
|
||||
label = "lan6";
|
||||
|
||||
phy-mode = "2500base-x";
|
||||
phy-handle = <&phy5>;
|
||||
};
|
||||
|
||||
port@6 {
|
||||
reg = <6>;
|
||||
ethernet = <&gmac0>;
|
||||
phy-mode = "2500base-x";
|
||||
|
||||
fixed-link {
|
||||
speed = <2500>;
|
||||
full-duplex;
|
||||
pause;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&ssusb {
|
||||
vusb33-supply = <®_3p3v>;
|
||||
vbus-supply = <®_5v>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uart1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart1_pins>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uart2 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart2_pins>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb_phy {
|
||||
status = "okay";
|
||||
};
|
||||
@ -1,278 +0,0 @@
|
||||
// SPDX-License-Identifier: GPL-2.0+
|
||||
/*
|
||||
* MFD driver for Airoha AN8855 Switch
|
||||
*/
|
||||
|
||||
#include <linux/mfd/airoha-an8855-mfd.h>
|
||||
#include <linux/mfd/core.h>
|
||||
#include <linux/mdio.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/phy.h>
|
||||
#include <linux/regmap.h>
|
||||
|
||||
static const struct mfd_cell an8855_mfd_devs[] = {
|
||||
{
|
||||
.name = "an8855-efuse",
|
||||
.of_compatible = "airoha,an8855-efuse",
|
||||
}, {
|
||||
.name = "an8855-switch",
|
||||
.of_compatible = "airoha,an8855-switch",
|
||||
}, {
|
||||
.name = "an8855-mdio",
|
||||
.of_compatible = "airoha,an8855-mdio",
|
||||
}
|
||||
};
|
||||
|
||||
int an8855_mii_set_page(struct an8855_mfd_priv *priv, u8 phy_id,
|
||||
u8 page) __must_hold(&priv->bus->mdio_lock)
|
||||
{
|
||||
struct mii_bus *bus = priv->bus;
|
||||
int ret;
|
||||
|
||||
ret = __mdiobus_write(bus, phy_id, AN8855_PHY_SELECT_PAGE, page);
|
||||
if (ret < 0)
|
||||
dev_err_ratelimited(&bus->dev,
|
||||
"failed to set an8855 mii page\n");
|
||||
|
||||
/* Cache current page if next mii read/write is for switch */
|
||||
priv->current_page = page;
|
||||
return ret < 0 ? ret : 0;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(an8855_mii_set_page);
|
||||
|
||||
static int an8855_mii_read32(struct mii_bus *bus, u8 phy_id, u32 reg,
|
||||
u32 *val) __must_hold(&bus->mdio_lock)
|
||||
{
|
||||
int lo, hi, ret;
|
||||
|
||||
ret = __mdiobus_write(bus, phy_id, AN8855_PBUS_MODE,
|
||||
AN8855_PBUS_MODE_ADDR_FIXED);
|
||||
if (ret < 0)
|
||||
goto err;
|
||||
|
||||
ret = __mdiobus_write(bus, phy_id, AN8855_PBUS_RD_ADDR_HIGH,
|
||||
upper_16_bits(reg));
|
||||
if (ret < 0)
|
||||
goto err;
|
||||
ret = __mdiobus_write(bus, phy_id, AN8855_PBUS_RD_ADDR_LOW,
|
||||
lower_16_bits(reg));
|
||||
if (ret < 0)
|
||||
goto err;
|
||||
|
||||
hi = __mdiobus_read(bus, phy_id, AN8855_PBUS_RD_DATA_HIGH);
|
||||
if (hi < 0) {
|
||||
ret = hi;
|
||||
goto err;
|
||||
}
|
||||
lo = __mdiobus_read(bus, phy_id, AN8855_PBUS_RD_DATA_LOW);
|
||||
if (lo < 0) {
|
||||
ret = lo;
|
||||
goto err;
|
||||
}
|
||||
|
||||
*val = ((u16)hi << 16) | ((u16)lo & 0xffff);
|
||||
|
||||
return 0;
|
||||
err:
|
||||
dev_err_ratelimited(&bus->dev,
|
||||
"failed to read an8855 register\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int an8855_regmap_read(void *ctx, uint32_t reg, uint32_t *val)
|
||||
{
|
||||
struct an8855_mfd_priv *priv = ctx;
|
||||
struct mii_bus *bus = priv->bus;
|
||||
u16 addr = priv->switch_addr;
|
||||
int ret;
|
||||
|
||||
mutex_lock_nested(&bus->mdio_lock, MDIO_MUTEX_NESTED);
|
||||
ret = an8855_mii_set_page(priv, addr, AN8855_PHY_PAGE_EXTENDED_4);
|
||||
if (ret < 0)
|
||||
goto exit;
|
||||
|
||||
ret = an8855_mii_read32(bus, addr, reg, val);
|
||||
|
||||
exit:
|
||||
mutex_unlock(&bus->mdio_lock);
|
||||
|
||||
return ret < 0 ? ret : 0;
|
||||
}
|
||||
|
||||
static int an8855_mii_write32(struct mii_bus *bus, u8 phy_id, u32 reg,
|
||||
u32 val) __must_hold(&bus->mdio_lock)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = __mdiobus_write(bus, phy_id, AN8855_PBUS_MODE,
|
||||
AN8855_PBUS_MODE_ADDR_FIXED);
|
||||
if (ret < 0)
|
||||
goto err;
|
||||
|
||||
ret = __mdiobus_write(bus, phy_id, AN8855_PBUS_WR_ADDR_HIGH,
|
||||
upper_16_bits(reg));
|
||||
if (ret < 0)
|
||||
goto err;
|
||||
ret = __mdiobus_write(bus, phy_id, AN8855_PBUS_WR_ADDR_LOW,
|
||||
lower_16_bits(reg));
|
||||
if (ret < 0)
|
||||
goto err;
|
||||
|
||||
ret = __mdiobus_write(bus, phy_id, AN8855_PBUS_WR_DATA_HIGH,
|
||||
upper_16_bits(val));
|
||||
if (ret < 0)
|
||||
goto err;
|
||||
ret = __mdiobus_write(bus, phy_id, AN8855_PBUS_WR_DATA_LOW,
|
||||
lower_16_bits(val));
|
||||
if (ret < 0)
|
||||
goto err;
|
||||
|
||||
return 0;
|
||||
err:
|
||||
dev_err_ratelimited(&bus->dev,
|
||||
"failed to write an8855 register\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int
|
||||
an8855_regmap_write(void *ctx, uint32_t reg, uint32_t val)
|
||||
{
|
||||
struct an8855_mfd_priv *priv = ctx;
|
||||
struct mii_bus *bus = priv->bus;
|
||||
u16 addr = priv->switch_addr;
|
||||
int ret;
|
||||
|
||||
mutex_lock_nested(&bus->mdio_lock, MDIO_MUTEX_NESTED);
|
||||
ret = an8855_mii_set_page(priv, addr, AN8855_PHY_PAGE_EXTENDED_4);
|
||||
if (ret < 0)
|
||||
goto exit;
|
||||
|
||||
ret = an8855_mii_write32(bus, addr, reg, val);
|
||||
|
||||
exit:
|
||||
mutex_unlock(&bus->mdio_lock);
|
||||
|
||||
return ret < 0 ? ret : 0;
|
||||
}
|
||||
|
||||
static int an8855_regmap_update_bits(void *ctx, uint32_t reg, uint32_t mask,
|
||||
uint32_t write_val)
|
||||
{
|
||||
struct an8855_mfd_priv *priv = ctx;
|
||||
struct mii_bus *bus = priv->bus;
|
||||
u16 addr = priv->switch_addr;
|
||||
u32 val;
|
||||
int ret;
|
||||
|
||||
mutex_lock_nested(&bus->mdio_lock, MDIO_MUTEX_NESTED);
|
||||
ret = an8855_mii_set_page(priv, addr, AN8855_PHY_PAGE_EXTENDED_4);
|
||||
if (ret < 0)
|
||||
goto exit;
|
||||
|
||||
ret = an8855_mii_read32(bus, addr, reg, &val);
|
||||
if (ret < 0)
|
||||
goto exit;
|
||||
|
||||
val &= ~mask;
|
||||
val |= write_val;
|
||||
ret = an8855_mii_write32(bus, addr, reg, val);
|
||||
|
||||
exit:
|
||||
mutex_unlock(&bus->mdio_lock);
|
||||
|
||||
return ret < 0 ? ret : 0;
|
||||
}
|
||||
|
||||
static const struct regmap_range an8855_readable_ranges[] = {
|
||||
regmap_reg_range(0x10000000, 0x10000fff), /* SCU */
|
||||
regmap_reg_range(0x10001000, 0x10001fff), /* RBUS */
|
||||
regmap_reg_range(0x10002000, 0x10002fff), /* MCU */
|
||||
regmap_reg_range(0x10005000, 0x10005fff), /* SYS SCU */
|
||||
regmap_reg_range(0x10007000, 0x10007fff), /* I2C Slave */
|
||||
regmap_reg_range(0x10008000, 0x10008fff), /* I2C Master */
|
||||
regmap_reg_range(0x10009000, 0x10009fff), /* PDMA */
|
||||
regmap_reg_range(0x1000a100, 0x1000a2ff), /* General Purpose Timer */
|
||||
regmap_reg_range(0x1000a200, 0x1000a2ff), /* GPU timer */
|
||||
regmap_reg_range(0x1000a300, 0x1000a3ff), /* GPIO */
|
||||
regmap_reg_range(0x1000a400, 0x1000a5ff), /* EFUSE */
|
||||
regmap_reg_range(0x1000c000, 0x1000cfff), /* GDMP CSR */
|
||||
regmap_reg_range(0x10010000, 0x1001ffff), /* GDMP SRAM */
|
||||
regmap_reg_range(0x10200000, 0x10203fff), /* Switch - ARL Global */
|
||||
regmap_reg_range(0x10204000, 0x10207fff), /* Switch - BMU */
|
||||
regmap_reg_range(0x10208000, 0x1020bfff), /* Switch - ARL Port */
|
||||
regmap_reg_range(0x1020c000, 0x1020cfff), /* Switch - SCH */
|
||||
regmap_reg_range(0x10210000, 0x10213fff), /* Switch - MAC */
|
||||
regmap_reg_range(0x10214000, 0x10217fff), /* Switch - MIB */
|
||||
regmap_reg_range(0x10218000, 0x1021bfff), /* Switch - Port Control */
|
||||
regmap_reg_range(0x1021c000, 0x1021ffff), /* Switch - TOP */
|
||||
regmap_reg_range(0x10220000, 0x1022ffff), /* SerDes */
|
||||
regmap_reg_range(0x10286000, 0x10286fff), /* RG Batcher */
|
||||
regmap_reg_range(0x1028c000, 0x1028ffff), /* ETHER_SYS */
|
||||
regmap_reg_range(0x30000000, 0x37ffffff), /* I2C EEPROM */
|
||||
regmap_reg_range(0x38000000, 0x3fffffff), /* BOOT_ROM */
|
||||
regmap_reg_range(0xa0000000, 0xbfffffff), /* GPHY */
|
||||
};
|
||||
|
||||
static const struct regmap_access_table an8855_readable_table = {
|
||||
.yes_ranges = an8855_readable_ranges,
|
||||
.n_yes_ranges = ARRAY_SIZE(an8855_readable_ranges),
|
||||
};
|
||||
|
||||
static const struct regmap_config an8855_regmap_config = {
|
||||
.reg_bits = 32,
|
||||
.val_bits = 32,
|
||||
.reg_stride = 4,
|
||||
.max_register = 0xbfffffff,
|
||||
.reg_read = an8855_regmap_read,
|
||||
.reg_write = an8855_regmap_write,
|
||||
.reg_update_bits = an8855_regmap_update_bits,
|
||||
.disable_locking = true,
|
||||
.rd_table = &an8855_readable_table,
|
||||
};
|
||||
|
||||
static int an8855_mfd_probe(struct mdio_device *mdiodev)
|
||||
{
|
||||
struct an8855_mfd_priv *priv;
|
||||
struct regmap *regmap;
|
||||
|
||||
priv = devm_kzalloc(&mdiodev->dev, sizeof(*priv), GFP_KERNEL);
|
||||
if (!priv)
|
||||
return -ENOMEM;
|
||||
|
||||
priv->bus = mdiodev->bus;
|
||||
priv->dev = &mdiodev->dev;
|
||||
priv->switch_addr = mdiodev->addr;
|
||||
/* no DMA for mdiobus, mute warning for DMA mask not set */
|
||||
priv->dev->dma_mask = &priv->dev->coherent_dma_mask;
|
||||
|
||||
regmap = devm_regmap_init(priv->dev, NULL, priv,
|
||||
&an8855_regmap_config);
|
||||
if (IS_ERR(regmap))
|
||||
dev_err_probe(priv->dev, PTR_ERR(priv->dev),
|
||||
"regmap initialization failed\n");
|
||||
|
||||
dev_set_drvdata(&mdiodev->dev, priv);
|
||||
|
||||
return devm_mfd_add_devices(priv->dev, PLATFORM_DEVID_AUTO, an8855_mfd_devs,
|
||||
ARRAY_SIZE(an8855_mfd_devs), NULL, 0,
|
||||
NULL);
|
||||
}
|
||||
|
||||
static const struct of_device_id an8855_mfd_of_match[] = {
|
||||
{ .compatible = "airoha,an8855-mfd" },
|
||||
{ /* sentinel */ }
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, an8855_mfd_of_match);
|
||||
|
||||
static struct mdio_driver an8855_mfd_driver = {
|
||||
.probe = an8855_mfd_probe,
|
||||
.mdiodrv.driver = {
|
||||
.name = "an8855",
|
||||
.of_match_table = an8855_mfd_of_match,
|
||||
},
|
||||
};
|
||||
mdio_module_driver(an8855_mfd_driver);
|
||||
|
||||
MODULE_AUTHOR("Christian Marangi <ansuelsmth@gmail.com>");
|
||||
MODULE_DESCRIPTION("Driver for Airoha AN8855 MFD");
|
||||
MODULE_LICENSE("GPL");
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,783 +0,0 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* Copyright (C) 2023 Min Yao <min.yao@airoha.com>
|
||||
* Copyright (C) 2024 Christian Marangi <ansuelsmth@gmail.com>
|
||||
*/
|
||||
|
||||
#ifndef __AN8855_H
|
||||
#define __AN8855_H
|
||||
|
||||
#include <linux/bitfield.h>
|
||||
|
||||
#define AN8855_NUM_PORTS 6
|
||||
#define AN8855_CPU_PORT 5
|
||||
#define AN8855_NUM_FDB_RECORDS 2048
|
||||
#define AN8855_GPHY_SMI_ADDR_DEFAULT 1
|
||||
#define AN8855_PORT_VID_DEFAULT 0
|
||||
|
||||
#define MTK_TAG_LEN 4
|
||||
#define AN8855_MAX_MTU (15360 - ETH_HLEN - ETH_FCS_LEN - MTK_TAG_LEN)
|
||||
|
||||
#define AN8855_L2_AGING_MS_CONSTANT 1024
|
||||
|
||||
#define AN8855_PHY_FLAGS_EN_CALIBRATION BIT(0)
|
||||
|
||||
/* AN8855_SCU 0x10000000 */
|
||||
#define AN8855_RG_GPIO_LED_MODE 0x10000054
|
||||
#define AN8855_RG_GPIO_LED_SEL(i) (0x10000000 + (0x0058 + ((i) * 4)))
|
||||
#define AN8855_RG_INTB_MODE 0x10000080
|
||||
#define AN8855_RG_RGMII_TXCK_C 0x100001d0
|
||||
|
||||
#define AN8855_PKG_SEL 0x10000094
|
||||
#define AN8855_PAG_SEL_AN8855H 0x2
|
||||
|
||||
/* Register for hw trap status */
|
||||
#define AN8855_HWTRAP 0x1000009c
|
||||
|
||||
#define AN8855_RG_GPIO_L_INV 0x10000010
|
||||
#define AN8855_RG_GPIO_CTRL 0x1000a300
|
||||
#define AN8855_RG_GPIO_DATA 0x1000a304
|
||||
#define AN8855_RG_GPIO_OE 0x1000a314
|
||||
|
||||
#define AN8855_CREV 0x10005000
|
||||
#define AN8855_ID 0x8855
|
||||
|
||||
/* Register for system reset */
|
||||
#define AN8855_RST_CTRL 0x100050c0
|
||||
#define AN8855_SYS_CTRL_SYS_RST BIT(31)
|
||||
|
||||
#define AN8855_INT_MASK 0x100050f0
|
||||
#define AN8855_INT_SYS BIT(15)
|
||||
|
||||
#define AN8855_RG_CLK_CPU_ICG 0x10005034
|
||||
#define AN8855_MCU_ENABLE BIT(3)
|
||||
|
||||
#define AN8855_RG_TIMER_CTL 0x1000a100
|
||||
#define AN8855_WDOG_ENABLE BIT(25)
|
||||
|
||||
#define AN8855_RG_GDMP_RAM 0x10010000
|
||||
|
||||
/* Registers to mac forward control for unknown frames */
|
||||
#define AN8855_MFC 0x10200010
|
||||
#define AN8855_CPU_EN BIT(15)
|
||||
#define AN8855_CPU_PORT_IDX GENMASK(12, 8)
|
||||
|
||||
#define AN8855_PAC 0x10200024
|
||||
#define AN8855_TAG_PAE_MANG_FR BIT(30)
|
||||
#define AN8855_TAG_PAE_BPDU_FR BIT(28)
|
||||
#define AN8855_TAG_PAE_EG_TAG GENMASK(27, 25)
|
||||
#define AN8855_TAG_PAE_LKY_VLAN BIT(24)
|
||||
#define AN8855_TAG_PAE_PRI_HIGH BIT(23)
|
||||
#define AN8855_TAG_PAE_MIR GENMASK(20, 19)
|
||||
#define AN8855_TAG_PAE_PORT_FW GENMASK(18, 16)
|
||||
#define AN8855_PAE_MANG_FR BIT(14)
|
||||
#define AN8855_PAE_BPDU_FR BIT(12)
|
||||
#define AN8855_PAE_EG_TAG GENMASK(11, 9)
|
||||
#define AN8855_PAE_LKY_VLAN BIT(8)
|
||||
#define AN8855_PAE_PRI_HIGH BIT(7)
|
||||
#define AN8855_PAE_MIR GENMASK(4, 3)
|
||||
#define AN8855_PAE_PORT_FW GENMASK(2, 0)
|
||||
|
||||
#define AN8855_RGAC1 0x10200028
|
||||
#define AN8855_R02_MANG_FR BIT(30)
|
||||
#define AN8855_R02_BPDU_FR BIT(28)
|
||||
#define AN8855_R02_EG_TAG GENMASK(27, 25)
|
||||
#define AN8855_R02_LKY_VLAN BIT(24)
|
||||
#define AN8855_R02_PRI_HIGH BIT(23)
|
||||
#define AN8855_R02_MIR GENMASK(20, 19)
|
||||
#define AN8855_R02_PORT_FW GENMASK(18, 16)
|
||||
#define AN8855_R01_MANG_FR BIT(14)
|
||||
#define AN8855_R01_BPDU_FR BIT(12)
|
||||
#define AN8855_R01_EG_TAG GENMASK(11, 9)
|
||||
#define AN8855_R01_LKY_VLAN BIT(8)
|
||||
#define AN8855_R01_PRI_HIGH BIT(7)
|
||||
#define AN8855_R01_MIR GENMASK(4, 3)
|
||||
#define AN8855_R01_PORT_FW GENMASK(2, 0)
|
||||
|
||||
#define AN8855_RGAC2 0x1020002c
|
||||
#define AN8855_R0E_MANG_FR BIT(30)
|
||||
#define AN8855_R0E_BPDU_FR BIT(28)
|
||||
#define AN8855_R0E_EG_TAG GENMASK(27, 25)
|
||||
#define AN8855_R0E_LKY_VLAN BIT(24)
|
||||
#define AN8855_R0E_PRI_HIGH BIT(23)
|
||||
#define AN8855_R0E_MIR GENMASK(20, 19)
|
||||
#define AN8855_R0E_PORT_FW GENMASK(18, 16)
|
||||
#define AN8855_R03_MANG_FR BIT(14)
|
||||
#define AN8855_R03_BPDU_FR BIT(12)
|
||||
#define AN8855_R03_EG_TAG GENMASK(11, 9)
|
||||
#define AN8855_R03_LKY_VLAN BIT(8)
|
||||
#define AN8855_R03_PRI_HIGH BIT(7)
|
||||
#define AN8855_R03_MIR GENMASK(4, 3)
|
||||
#define AN8855_R03_PORT_FW GENMASK(2, 0)
|
||||
|
||||
#define AN8855_AAC 0x102000a0
|
||||
#define AN8855_MAC_AUTO_FLUSH BIT(28)
|
||||
/* Control Address Table Age time.
|
||||
* (AN8855_AGE_CNT + 1) * ( AN8855_AGE_UNIT + 1 ) * AN8855_L2_AGING_MS_CONSTANT
|
||||
*/
|
||||
#define AN8855_AGE_CNT GENMASK(20, 12)
|
||||
/* Value in seconds. Value is always incremented of 1 */
|
||||
#define AN8855_AGE_UNIT GENMASK(10, 0)
|
||||
|
||||
/* Registers for ARL Unknown Unicast Forward control */
|
||||
#define AN8855_UNUF 0x102000b4
|
||||
|
||||
/* Registers for ARL Unknown Multicast Forward control */
|
||||
#define AN8855_UNMF 0x102000b8
|
||||
|
||||
/* Registers for ARL Broadcast forward control */
|
||||
#define AN8855_BCF 0x102000bc
|
||||
|
||||
/* Registers for port address age disable */
|
||||
#define AN8855_AGDIS 0x102000c0
|
||||
|
||||
/* Registers for mirror port control */
|
||||
#define AN8855_MIR 0x102000cc
|
||||
#define AN8855_MIRROR_EN BIT(7)
|
||||
#define AN8855_MIRROR_PORT GENMASK(4, 0)
|
||||
|
||||
/* Registers for BPDU and PAE frame control*/
|
||||
#define AN8855_BPC 0x102000d0
|
||||
#define AN8855_BPDU_MANG_FR BIT(14)
|
||||
#define AN8855_BPDU_BPDU_FR BIT(12)
|
||||
#define AN8855_BPDU_EG_TAG GENMASK(11, 9)
|
||||
#define AN8855_BPDU_LKY_VLAN BIT(8)
|
||||
#define AN8855_BPDU_PRI_HIGH BIT(7)
|
||||
#define AN8855_BPDU_MIR GENMASK(4, 3)
|
||||
#define AN8855_BPDU_PORT_FW GENMASK(2, 0)
|
||||
|
||||
/* Registers for IP Unknown Multicast Forward control */
|
||||
#define AN8855_UNIPMF 0x102000dc
|
||||
|
||||
enum an8855_bpdu_port_fw {
|
||||
AN8855_BPDU_FOLLOW_MFC = 0,
|
||||
AN8855_BPDU_CPU_EXCLUDE = 4,
|
||||
AN8855_BPDU_CPU_INCLUDE = 5,
|
||||
AN8855_BPDU_CPU_ONLY = 6,
|
||||
AN8855_BPDU_DROP = 7,
|
||||
};
|
||||
|
||||
/* Register for address table control */
|
||||
#define AN8855_ATC 0x10200300
|
||||
#define AN8855_ATC_BUSY BIT(31)
|
||||
#define AN8855_ATC_HASH GENMASK(24, 16)
|
||||
#define AN8855_ATC_HIT GENMASK(15, 12)
|
||||
#define AN8855_ATC_MAT_MASK GENMASK(11, 7)
|
||||
#define AN8855_ATC_MAT(x) FIELD_PREP(AN8855_ATC_MAT_MASK, x)
|
||||
#define AN8855_ATC_SAT GENMASK(5, 4)
|
||||
#define AN8855_ATC_CMD GENMASK(2, 0)
|
||||
|
||||
enum an8855_fdb_mat_cmds {
|
||||
AND8855_FDB_MAT_ALL = 0,
|
||||
AND8855_FDB_MAT_MAC, /* All MAC address */
|
||||
AND8855_FDB_MAT_DYNAMIC_MAC, /* All Dynamic MAC address */
|
||||
AND8855_FDB_MAT_STATIC_MAC, /* All Static Mac Address */
|
||||
AND8855_FDB_MAT_DIP, /* All DIP/GA address */
|
||||
AND8855_FDB_MAT_DIP_IPV4, /* All DIP/GA IPv4 address */
|
||||
AND8855_FDB_MAT_DIP_IPV6, /* All DIP/GA IPv6 address */
|
||||
AND8855_FDB_MAT_DIP_SIP, /* All DIP_SIP address */
|
||||
AND8855_FDB_MAT_DIP_SIP_IPV4, /* All DIP_SIP IPv4 address */
|
||||
AND8855_FDB_MAT_DIP_SIP_IPV6, /* All DIP_SIP IPv6 address */
|
||||
AND8855_FDB_MAT_MAC_CVID, /* All MAC address with CVID */
|
||||
AND8855_FDB_MAT_MAC_FID, /* All MAC address with Filter ID */
|
||||
AND8855_FDB_MAT_MAC_PORT, /* All MAC address with port */
|
||||
AND8855_FDB_MAT_DIP_SIP_DIP_IPV4, /* All DIP_SIP address with DIP_IPV4 */
|
||||
AND8855_FDB_MAT_DIP_SIP_SIP_IPV4, /* All DIP_SIP address with SIP_IPV4 */
|
||||
AND8855_FDB_MAT_DIP_SIP_DIP_IPV6, /* All DIP_SIP address with DIP_IPV6 */
|
||||
AND8855_FDB_MAT_DIP_SIP_SIP_IPV6, /* All DIP_SIP address with SIP_IPV6 */
|
||||
/* All MAC address with MAC type (dynamic or static) with CVID */
|
||||
AND8855_FDB_MAT_MAC_TYPE_CVID,
|
||||
/* All MAC address with MAC type (dynamic or static) with Filter ID */
|
||||
AND8855_FDB_MAT_MAC_TYPE_FID,
|
||||
/* All MAC address with MAC type (dynamic or static) with port */
|
||||
AND8855_FDB_MAT_MAC_TYPE_PORT,
|
||||
};
|
||||
|
||||
enum an8855_fdb_cmds {
|
||||
AN8855_FDB_READ = 0,
|
||||
AN8855_FDB_WRITE = 1,
|
||||
AN8855_FDB_FLUSH = 2,
|
||||
AN8855_FDB_START = 4,
|
||||
AN8855_FDB_NEXT = 5,
|
||||
};
|
||||
|
||||
/* Registers for address table access */
|
||||
#define AN8855_ATA1 0x10200304
|
||||
#define AN8855_ATA1_MAC0 GENMASK(31, 24)
|
||||
#define AN8855_ATA1_MAC1 GENMASK(23, 16)
|
||||
#define AN8855_ATA1_MAC2 GENMASK(15, 8)
|
||||
#define AN8855_ATA1_MAC3 GENMASK(7, 0)
|
||||
#define AN8855_ATA2 0x10200308
|
||||
#define AN8855_ATA2_MAC4 GENMASK(31, 24)
|
||||
#define AN8855_ATA2_MAC5 GENMASK(23, 16)
|
||||
#define AN8855_ATA2_UNAUTH BIT(10)
|
||||
#define AN8855_ATA2_TYPE BIT(9) /* 1: dynamic, 0: static */
|
||||
#define AN8855_ATA2_AGE GENMASK(8, 0)
|
||||
|
||||
/* Register for address table write data */
|
||||
#define AN8855_ATWD 0x10200324
|
||||
#define AN8855_ATWD_FID GENMASK(31, 28)
|
||||
#define AN8855_ATWD_VID GENMASK(27, 16)
|
||||
#define AN8855_ATWD_IVL BIT(15)
|
||||
#define AN8855_ATWD_EG_TAG GENMASK(14, 12)
|
||||
#define AN8855_ATWD_SA_MIR GENMASK(9, 8)
|
||||
#define AN8855_ATWD_SA_FWD GENMASK(7, 5)
|
||||
#define AN8855_ATWD_UPRI GENMASK(4, 2)
|
||||
#define AN8855_ATWD_LEAKY BIT(1)
|
||||
#define AN8855_ATWD_VLD BIT(0) /* vid LOAD */
|
||||
#define AN8855_ATWD2 0x10200328
|
||||
#define AN8855_ATWD2_PORT GENMASK(7, 0)
|
||||
|
||||
/* Registers for table search read address */
|
||||
#define AN8855_ATRDS 0x10200330
|
||||
#define AN8855_ATRD_SEL GENMASK(1, 0)
|
||||
#define AN8855_ATRD0 0x10200334
|
||||
#define AN8855_ATRD0_FID GENMASK(28, 25)
|
||||
#define AN8855_ATRD0_VID GENMASK(21, 10)
|
||||
#define AN8855_ATRD0_IVL BIT(9)
|
||||
#define AN8855_ATRD0_TYPE GENMASK(4, 3)
|
||||
#define AN8855_ATRD0_ARP GENMASK(2, 1)
|
||||
#define AN8855_ATRD0_LIVE BIT(0)
|
||||
#define AN8855_ATRD1 0x10200338
|
||||
#define AN8855_ATRD1_MAC4 GENMASK(31, 24)
|
||||
#define AN8855_ATRD1_MAC5 GENMASK(23, 16)
|
||||
#define AN8855_ATRD1_AGING GENMASK(11, 3)
|
||||
#define AN8855_ATRD2 0x1020033c
|
||||
#define AN8855_ATRD2_MAC0 GENMASK(31, 24)
|
||||
#define AN8855_ATRD2_MAC1 GENMASK(23, 16)
|
||||
#define AN8855_ATRD2_MAC2 GENMASK(15, 8)
|
||||
#define AN8855_ATRD2_MAC3 GENMASK(7, 0)
|
||||
#define AN8855_ATRD3 0x10200340
|
||||
#define AN8855_ATRD3_PORTMASK GENMASK(7, 0)
|
||||
|
||||
enum an8855_fdb_type {
|
||||
AN8855_MAC_TB_TY_MAC = 0,
|
||||
AN8855_MAC_TB_TY_DIP = 1,
|
||||
AN8855_MAC_TB_TY_DIP_SIP = 2,
|
||||
};
|
||||
|
||||
/* Register for vlan table control */
|
||||
#define AN8855_VTCR 0x10200600
|
||||
#define AN8855_VTCR_BUSY BIT(31)
|
||||
#define AN8855_VTCR_FUNC GENMASK(15, 12)
|
||||
#define AN8855_VTCR_VID GENMASK(11, 0)
|
||||
|
||||
enum an8855_vlan_cmd {
|
||||
/* Read/Write the specified VID entry from VAWD register based
|
||||
* on VID.
|
||||
*/
|
||||
AN8855_VTCR_RD_VID = 0,
|
||||
AN8855_VTCR_WR_VID = 1,
|
||||
};
|
||||
|
||||
/* Register for setup vlan write data */
|
||||
#define AN8855_VAWD0 0x10200604
|
||||
/* VLAN Member Control */
|
||||
#define AN8855_VA0_PORT GENMASK(31, 26)
|
||||
/* Egress Tag Control */
|
||||
#define AN8855_VA0_ETAG GENMASK(23, 12)
|
||||
#define AN8855_VA0_ETAG_PORT GENMASK(13, 12)
|
||||
#define AN8855_VA0_ETAG_PORT_SHIFT(port) ((port) * 2)
|
||||
#define AN8855_VA0_ETAG_PORT_MASK(port) (AN8855_VA0_ETAG_PORT << \
|
||||
AN8855_VA0_ETAG_PORT_SHIFT(port))
|
||||
#define AN8855_VA0_ETAG_PORT_VAL(port, val) (FIELD_PREP(AN8855_VA0_ETAG_PORT, (val)) << \
|
||||
AN8855_VA0_ETAG_PORT_SHIFT(port))
|
||||
#define AN8855_VA0_EG_CON BIT(11)
|
||||
#define AN8855_VA0_VTAG_EN BIT(10) /* Per VLAN Egress Tag Control */
|
||||
#define AN8855_VA0_IVL_MAC BIT(5) /* Independent VLAN Learning */
|
||||
#define AN8855_VA0_FID GENMASK(4, 1)
|
||||
#define AN8855_VA0_VLAN_VALID BIT(0) /* VLAN Entry Valid */
|
||||
#define AN8855_VAWD1 0x10200608
|
||||
#define AN8855_VA1_PORT_STAG BIT(1)
|
||||
|
||||
enum an8855_fid {
|
||||
AN8855_FID_STANDALONE = 0,
|
||||
AN8855_FID_BRIDGED = 1,
|
||||
};
|
||||
|
||||
/* Same register field of VAWD0 */
|
||||
#define AN8855_VARD0 0x10200618
|
||||
|
||||
enum an8855_vlan_egress_attr {
|
||||
AN8855_VLAN_EGRESS_UNTAG = 0,
|
||||
AN8855_VLAN_EGRESS_TAG = 2,
|
||||
AN8855_VLAN_EGRESS_STACK = 3,
|
||||
};
|
||||
|
||||
/* Register for port STP state control */
|
||||
#define AN8855_SSP_P(x) (0x10208000 + ((x) * 0x200))
|
||||
/* Up to 16 FID supported, each with the same mask */
|
||||
#define AN8855_FID_PST GENMASK(1, 0)
|
||||
#define AN8855_FID_PST_SHIFT(fid) (2 * (fid))
|
||||
#define AN8855_FID_PST_MASK(fid) (AN8855_FID_PST << \
|
||||
AN8855_FID_PST_SHIFT(fid))
|
||||
#define AN8855_FID_PST_VAL(fid, val) (FIELD_PREP(AN8855_FID_PST, (val)) << \
|
||||
AN8855_FID_PST_SHIFT(fid))
|
||||
|
||||
enum an8855_stp_state {
|
||||
AN8855_STP_DISABLED = 0,
|
||||
AN8855_STP_BLOCKING = 1,
|
||||
AN8855_STP_LISTENING = AN8855_STP_BLOCKING,
|
||||
AN8855_STP_LEARNING = 2,
|
||||
AN8855_STP_FORWARDING = 3
|
||||
};
|
||||
|
||||
/* Register for port control */
|
||||
#define AN8855_PCR_P(x) (0x10208004 + ((x) * 0x200))
|
||||
#define AN8855_EG_TAG GENMASK(29, 28)
|
||||
#define AN8855_PORT_PRI GENMASK(26, 24)
|
||||
#define AN8855_PORT_TX_MIR BIT(20)
|
||||
#define AN8855_PORT_RX_MIR BIT(16)
|
||||
#define AN8855_PORT_VLAN GENMASK(1, 0)
|
||||
|
||||
enum an8855_port_mode {
|
||||
/* Port Matrix Mode: Frames are forwarded by the PCR_MATRIX members. */
|
||||
AN8855_PORT_MATRIX_MODE = 0,
|
||||
|
||||
/* Fallback Mode: Forward received frames with ingress ports that do
|
||||
* not belong to the VLAN member. Frames whose VID is not listed on
|
||||
* the VLAN table are forwarded by the PCR_MATRIX members.
|
||||
*/
|
||||
AN8855_PORT_FALLBACK_MODE = 1,
|
||||
|
||||
/* Check Mode: Forward received frames whose ingress do not
|
||||
* belong to the VLAN member. Discard frames if VID ismiddes on the
|
||||
* VLAN table.
|
||||
*/
|
||||
AN8855_PORT_CHECK_MODE = 2,
|
||||
|
||||
/* Security Mode: Discard any frame due to ingress membership
|
||||
* violation or VID missed on the VLAN table.
|
||||
*/
|
||||
AN8855_PORT_SECURITY_MODE = 3,
|
||||
};
|
||||
|
||||
/* Register for port security control */
|
||||
#define AN8855_PSC_P(x) (0x1020800c + ((x) * 0x200))
|
||||
#define AN8855_SA_DIS BIT(4)
|
||||
|
||||
/* Register for port vlan control */
|
||||
#define AN8855_PVC_P(x) (0x10208010 + ((x) * 0x200))
|
||||
#define AN8855_PORT_SPEC_REPLACE_MODE BIT(11)
|
||||
#define AN8855_PVC_EG_TAG GENMASK(10, 8)
|
||||
#define AN8855_VLAN_ATTR GENMASK(7, 6)
|
||||
#define AN8855_PORT_SPEC_TAG BIT(5)
|
||||
#define AN8855_ACC_FRM GENMASK(1, 0)
|
||||
|
||||
enum an8855_vlan_port_eg_tag {
|
||||
AN8855_VLAN_EG_DISABLED = 0,
|
||||
AN8855_VLAN_EG_CONSISTENT = 1,
|
||||
AN8855_VLAN_EG_UNTAGGED = 4,
|
||||
AN8855_VLAN_EG_SWAP = 5,
|
||||
AN8855_VLAN_EG_TAGGED = 6,
|
||||
AN8855_VLAN_EG_STACK = 7,
|
||||
};
|
||||
|
||||
enum an8855_vlan_port_attr {
|
||||
AN8855_VLAN_USER = 0,
|
||||
AN8855_VLAN_STACK = 1,
|
||||
AN8855_VLAN_TRANSPARENT = 3,
|
||||
};
|
||||
|
||||
enum an8855_vlan_port_acc_frm {
|
||||
AN8855_VLAN_ACC_ALL = 0,
|
||||
AN8855_VLAN_ACC_TAGGED = 1,
|
||||
AN8855_VLAN_ACC_UNTAGGED = 2,
|
||||
};
|
||||
|
||||
#define AN8855_PPBV1_P(x) (0x10208014 + ((x) * 0x200))
|
||||
#define AN8855_PPBV_G0_PORT_VID GENMASK(11, 0)
|
||||
|
||||
#define AN8855_PORTMATRIX_P(x) (0x10208044 + ((x) * 0x200))
|
||||
#define AN8855_PORTMATRIX GENMASK(5, 0)
|
||||
/* Port matrix without the CPU port that should never be removed */
|
||||
#define AN8855_USER_PORTMATRIX GENMASK(4, 0)
|
||||
|
||||
/* Register for port PVID */
|
||||
#define AN8855_PVID_P(x) (0x10208048 + ((x) * 0x200))
|
||||
#define AN8855_G0_PORT_VID GENMASK(11, 0)
|
||||
|
||||
/* Register for port MAC control register */
|
||||
#define AN8855_PMCR_P(x) (0x10210000 + ((x) * 0x200))
|
||||
#define AN8855_PMCR_FORCE_MODE BIT(31)
|
||||
#define AN8855_PMCR_FORCE_SPEED GENMASK(30, 28)
|
||||
#define AN8855_PMCR_FORCE_SPEED_5000 FIELD_PREP_CONST(AN8855_PMCR_FORCE_SPEED, 0x4)
|
||||
#define AN8855_PMCR_FORCE_SPEED_2500 FIELD_PREP_CONST(AN8855_PMCR_FORCE_SPEED, 0x3)
|
||||
#define AN8855_PMCR_FORCE_SPEED_1000 FIELD_PREP_CONST(AN8855_PMCR_FORCE_SPEED, 0x2)
|
||||
#define AN8855_PMCR_FORCE_SPEED_100 FIELD_PREP_CONST(AN8855_PMCR_FORCE_SPEED, 0x1)
|
||||
#define AN8855_PMCR_FORCE_SPEED_10 FIELD_PREP_CONST(AN8855_PMCR_FORCE_SPEED, 0x1)
|
||||
#define AN8855_PMCR_FORCE_FDX BIT(25)
|
||||
#define AN8855_PMCR_FORCE_LNK BIT(24)
|
||||
#define AN8855_PMCR_IFG_XMIT GENMASK(21, 20)
|
||||
#define AN8855_PMCR_EXT_PHY BIT(19)
|
||||
#define AN8855_PMCR_MAC_MODE BIT(18)
|
||||
#define AN8855_PMCR_TX_EN BIT(16)
|
||||
#define AN8855_PMCR_RX_EN BIT(15)
|
||||
#define AN8855_PMCR_BACKOFF_EN BIT(12)
|
||||
#define AN8855_PMCR_BACKPR_EN BIT(11)
|
||||
#define AN8855_PMCR_FORCE_EEE5G BIT(9)
|
||||
#define AN8855_PMCR_FORCE_EEE2P5G BIT(8)
|
||||
#define AN8855_PMCR_FORCE_EEE1G BIT(7)
|
||||
#define AN8855_PMCR_FORCE_EEE100 BIT(6)
|
||||
#define AN8855_PMCR_TX_FC_EN BIT(5)
|
||||
#define AN8855_PMCR_RX_FC_EN BIT(4)
|
||||
|
||||
#define AN8855_PMSR_P(x) (0x10210010 + (x) * 0x200)
|
||||
#define AN8855_PMSR_SPEED GENMASK(30, 28)
|
||||
#define AN8855_PMSR_SPEED_5000 FIELD_PREP_CONST(AN8855_PMSR_SPEED, 0x4)
|
||||
#define AN8855_PMSR_SPEED_2500 FIELD_PREP_CONST(AN8855_PMSR_SPEED, 0x3)
|
||||
#define AN8855_PMSR_SPEED_1000 FIELD_PREP_CONST(AN8855_PMSR_SPEED, 0x2)
|
||||
#define AN8855_PMSR_SPEED_100 FIELD_PREP_CONST(AN8855_PMSR_SPEED, 0x1)
|
||||
#define AN8855_PMSR_SPEED_10 FIELD_PREP_CONST(AN8855_PMSR_SPEED, 0x0)
|
||||
#define AN8855_PMSR_DPX BIT(25)
|
||||
#define AN8855_PMSR_LNK BIT(24)
|
||||
#define AN8855_PMSR_EEE1G BIT(7)
|
||||
#define AN8855_PMSR_EEE100M BIT(6)
|
||||
#define AN8855_PMSR_RX_FC BIT(5)
|
||||
#define AN8855_PMSR_TX_FC BIT(4)
|
||||
|
||||
#define AN8855_PMEEECR_P(x) (0x10210004 + (x) * 0x200)
|
||||
#define AN8855_LPI_MODE_EN BIT(31)
|
||||
#define AN8855_WAKEUP_TIME_2500 GENMASK(23, 16)
|
||||
#define AN8855_WAKEUP_TIME_1000 GENMASK(15, 8)
|
||||
#define AN8855_WAKEUP_TIME_100 GENMASK(7, 0)
|
||||
#define AN8855_PMEEECR2_P(x) (0x10210008 + (x) * 0x200)
|
||||
#define AN8855_WAKEUP_TIME_5000 GENMASK(7, 0)
|
||||
|
||||
#define AN8855_GMACCR 0x10213e00
|
||||
#define AN8855_MAX_RX_JUMBO GENMASK(7, 4)
|
||||
/* 2K for 0x0, 0x1, 0x2 */
|
||||
#define AN8855_MAX_RX_JUMBO_2K FIELD_PREP_CONST(AN8855_MAX_RX_JUMBO, 0x0)
|
||||
#define AN8855_MAX_RX_JUMBO_3K FIELD_PREP_CONST(AN8855_MAX_RX_JUMBO, 0x3)
|
||||
#define AN8855_MAX_RX_JUMBO_4K FIELD_PREP_CONST(AN8855_MAX_RX_JUMBO, 0x4)
|
||||
#define AN8855_MAX_RX_JUMBO_5K FIELD_PREP_CONST(AN8855_MAX_RX_JUMBO, 0x5)
|
||||
#define AN8855_MAX_RX_JUMBO_6K FIELD_PREP_CONST(AN8855_MAX_RX_JUMBO, 0x6)
|
||||
#define AN8855_MAX_RX_JUMBO_7K FIELD_PREP_CONST(AN8855_MAX_RX_JUMBO, 0x7)
|
||||
#define AN8855_MAX_RX_JUMBO_8K FIELD_PREP_CONST(AN8855_MAX_RX_JUMBO, 0x8)
|
||||
#define AN8855_MAX_RX_JUMBO_9K FIELD_PREP_CONST(AN8855_MAX_RX_JUMBO, 0x9)
|
||||
#define AN8855_MAX_RX_JUMBO_12K FIELD_PREP_CONST(AN8855_MAX_RX_JUMBO, 0xa)
|
||||
#define AN8855_MAX_RX_JUMBO_15K FIELD_PREP_CONST(AN8855_MAX_RX_JUMBO, 0xb)
|
||||
#define AN8855_MAX_RX_JUMBO_16K FIELD_PREP_CONST(AN8855_MAX_RX_JUMBO, 0xc)
|
||||
#define AN8855_MAX_RX_PKT_LEN GENMASK(1, 0)
|
||||
#define AN8855_MAX_RX_PKT_1518_1522 FIELD_PREP_CONST(AN8855_MAX_RX_PKT_LEN, 0x0)
|
||||
#define AN8855_MAX_RX_PKT_1536 FIELD_PREP_CONST(AN8855_MAX_RX_PKT_LEN, 0x1)
|
||||
#define AN8855_MAX_RX_PKT_1552 FIELD_PREP_CONST(AN8855_MAX_RX_PKT_LEN, 0x2)
|
||||
#define AN8855_MAX_RX_PKT_JUMBO FIELD_PREP_CONST(AN8855_MAX_RX_PKT_LEN, 0x3)
|
||||
|
||||
#define AN8855_CKGCR 0x10213e1c
|
||||
#define AN8855_LPI_TXIDLE_THD_MASK GENMASK(31, 14)
|
||||
#define AN8855_CKG_LNKDN_PORT_STOP BIT(1)
|
||||
#define AN8855_CKG_LNKDN_GLB_STOP BIT(0)
|
||||
|
||||
/* Register for MIB */
|
||||
#define AN8855_PORT_MIB_COUNTER(x) (0x10214000 + (x) * 0x200)
|
||||
/* Each define is an offset of AN8855_PORT_MIB_COUNTER */
|
||||
#define AN8855_PORT_MIB_TX_DROP 0x00
|
||||
#define AN8855_PORT_MIB_TX_CRC_ERR 0x04
|
||||
#define AN8855_PORT_MIB_TX_UNICAST 0x08
|
||||
#define AN8855_PORT_MIB_TX_MULTICAST 0x0c
|
||||
#define AN8855_PORT_MIB_TX_BROADCAST 0x10
|
||||
#define AN8855_PORT_MIB_TX_COLLISION 0x14
|
||||
#define AN8855_PORT_MIB_TX_SINGLE_COLLISION 0x18
|
||||
#define AN8855_PORT_MIB_TX_MULTIPLE_COLLISION 0x1c
|
||||
#define AN8855_PORT_MIB_TX_DEFERRED 0x20
|
||||
#define AN8855_PORT_MIB_TX_LATE_COLLISION 0x24
|
||||
#define AN8855_PORT_MIB_TX_EXCESSIVE_COLLISION 0x28
|
||||
#define AN8855_PORT_MIB_TX_PAUSE 0x2c
|
||||
#define AN8855_PORT_MIB_TX_PKT_SZ_64 0x30
|
||||
#define AN8855_PORT_MIB_TX_PKT_SZ_65_TO_127 0x34
|
||||
#define AN8855_PORT_MIB_TX_PKT_SZ_128_TO_255 0x38
|
||||
#define AN8855_PORT_MIB_TX_PKT_SZ_256_TO_511 0x3
|
||||
#define AN8855_PORT_MIB_TX_PKT_SZ_512_TO_1023 0x40
|
||||
#define AN8855_PORT_MIB_TX_PKT_SZ_1024_TO_1518 0x44
|
||||
#define AN8855_PORT_MIB_TX_PKT_SZ_1519_TO_MAX 0x48
|
||||
#define AN8855_PORT_MIB_TX_BYTES 0x4c /* 64 bytes */
|
||||
#define AN8855_PORT_MIB_TX_OVERSIZE_DROP 0x54
|
||||
#define AN8855_PORT_MIB_TX_BAD_PKT_BYTES 0x58 /* 64 bytes */
|
||||
#define AN8855_PORT_MIB_RX_DROP 0x80
|
||||
#define AN8855_PORT_MIB_RX_FILTERING 0x84
|
||||
#define AN8855_PORT_MIB_RX_UNICAST 0x88
|
||||
#define AN8855_PORT_MIB_RX_MULTICAST 0x8c
|
||||
#define AN8855_PORT_MIB_RX_BROADCAST 0x90
|
||||
#define AN8855_PORT_MIB_RX_ALIGN_ERR 0x94
|
||||
#define AN8855_PORT_MIB_RX_CRC_ERR 0x98
|
||||
#define AN8855_PORT_MIB_RX_UNDER_SIZE_ERR 0x9c
|
||||
#define AN8855_PORT_MIB_RX_FRAG_ERR 0xa0
|
||||
#define AN8855_PORT_MIB_RX_OVER_SZ_ERR 0xa4
|
||||
#define AN8855_PORT_MIB_RX_JABBER_ERR 0xa8
|
||||
#define AN8855_PORT_MIB_RX_PAUSE 0xac
|
||||
#define AN8855_PORT_MIB_RX_PKT_SZ_64 0xb0
|
||||
#define AN8855_PORT_MIB_RX_PKT_SZ_65_TO_127 0xb4
|
||||
#define AN8855_PORT_MIB_RX_PKT_SZ_128_TO_255 0xb8
|
||||
#define AN8855_PORT_MIB_RX_PKT_SZ_256_TO_511 0xbc
|
||||
#define AN8855_PORT_MIB_RX_PKT_SZ_512_TO_1023 0xc0
|
||||
#define AN8855_PORT_MIB_RX_PKT_SZ_1024_TO_1518 0xc4
|
||||
#define AN8855_PORT_MIB_RX_PKT_SZ_1519_TO_MAX 0xc8
|
||||
#define AN8855_PORT_MIB_RX_BYTES 0xcc /* 64 bytes */
|
||||
#define AN8855_PORT_MIB_RX_CTRL_DROP 0xd4
|
||||
#define AN8855_PORT_MIB_RX_INGRESS_DROP 0xd8
|
||||
#define AN8855_PORT_MIB_RX_ARL_DROP 0xdc
|
||||
#define AN8855_PORT_MIB_FLOW_CONTROL_DROP 0xe0
|
||||
#define AN8855_PORT_MIB_WRED_DROP 0xe4
|
||||
#define AN8855_PORT_MIB_MIRROR_DROP 0xe8
|
||||
#define AN8855_PORT_MIB_RX_BAD_PKT_BYTES 0xec /* 64 bytes */
|
||||
#define AN8855_PORT_MIB_RXS_FLOW_SAMPLING_PKT_DROP 0xf4
|
||||
#define AN8855_PORT_MIB_RXS_FLOW_TOTAL_PKT_DROP 0xf8
|
||||
#define AN8855_PORT_MIB_PORT_CONTROL_DROP 0xfc
|
||||
#define AN8855_MIB_CCR 0x10213e30
|
||||
#define AN8855_CCR_MIB_ENABLE BIT(31)
|
||||
#define AN8855_CCR_RX_OCT_CNT_GOOD BIT(7)
|
||||
#define AN8855_CCR_RX_OCT_CNT_BAD BIT(6)
|
||||
#define AN8855_CCR_TX_OCT_CNT_GOOD BIT(5)
|
||||
#define AN8855_CCR_TX_OCT_CNT_BAD BIT(4)
|
||||
#define AN8855_CCR_RX_OCT_CNT_GOOD_2 BIT(3)
|
||||
#define AN8855_CCR_RX_OCT_CNT_BAD_2 BIT(2)
|
||||
#define AN8855_CCR_TX_OCT_CNT_GOOD_2 BIT(1)
|
||||
#define AN8855_CCR_TX_OCT_CNT_BAD_2 BIT(0)
|
||||
#define AN8855_CCR_MIB_ACTIVATE (AN8855_CCR_MIB_ENABLE | \
|
||||
AN8855_CCR_RX_OCT_CNT_GOOD | \
|
||||
AN8855_CCR_RX_OCT_CNT_BAD | \
|
||||
AN8855_CCR_TX_OCT_CNT_GOOD | \
|
||||
AN8855_CCR_TX_OCT_CNT_BAD | \
|
||||
AN8855_CCR_RX_OCT_CNT_BAD_2 | \
|
||||
AN8855_CCR_TX_OCT_CNT_BAD_2)
|
||||
#define AN8855_MIB_CLR 0x10213e34
|
||||
#define AN8855_MIB_PORT6_CLR BIT(6)
|
||||
#define AN8855_MIB_PORT5_CLR BIT(5)
|
||||
#define AN8855_MIB_PORT4_CLR BIT(4)
|
||||
#define AN8855_MIB_PORT3_CLR BIT(3)
|
||||
#define AN8855_MIB_PORT2_CLR BIT(2)
|
||||
#define AN8855_MIB_PORT1_CLR BIT(1)
|
||||
#define AN8855_MIB_PORT0_CLR BIT(0)
|
||||
|
||||
/* HSGMII/SGMII Configuration register */
|
||||
/* AN8855_HSGMII_AN_CSR_BASE 0x10220000 */
|
||||
#define AN8855_SGMII_REG_AN0 0x10220000
|
||||
/* AN8855_SGMII_AN_ENABLE BMCR_ANENABLE */
|
||||
/* AN8855_SGMII_AN_RESTART BMCR_ANRESTART */
|
||||
#define AN8855_SGMII_REG_AN_13 0x10220034
|
||||
#define AN8855_SGMII_REMOTE_FAULT_DIS BIT(8)
|
||||
#define AN8855_SGMII_IF_MODE GENMASK(5, 0)
|
||||
#define AN8855_SGMII_REG_AN_FORCE_CL37 0x10220060
|
||||
#define AN8855_RG_FORCE_AN_DONE BIT(0)
|
||||
|
||||
/* AN8855_HSGMII_CSR_PCS_BASE 0x10220000 */
|
||||
#define AN8855_RG_HSGMII_PCS_CTROL_1 0x10220a00
|
||||
#define AN8855_RG_TBI_10B_MODE BIT(30)
|
||||
#define AN8855_RG_AN_SGMII_MODE_FORCE 0x10220a24
|
||||
#define AN8855_RG_FORCE_CUR_SGMII_MODE GENMASK(5, 4)
|
||||
#define AN8855_RG_FORCE_CUR_SGMII_SEL BIT(0)
|
||||
|
||||
/* AN8855_MULTI_SGMII_CSR_BASE 0x10224000 */
|
||||
#define AN8855_SGMII_STS_CTRL_0 0x10224018
|
||||
#define AN8855_RG_LINK_MODE_P0 GENMASK(5, 4)
|
||||
#define AN8855_RG_LINK_MODE_P0_SPEED_2500 FIELD_PREP_CONST(AN8855_RG_LINK_MODE_P0, 0x3)
|
||||
#define AN8855_RG_LINK_MODE_P0_SPEED_1000 FIELD_PREP_CONST(AN8855_RG_LINK_MODE_P0, 0x2)
|
||||
#define AN8855_RG_LINK_MODE_P0_SPEED_100 FIELD_PREP_CONST(AN8855_RG_LINK_MODE_P0, 0x1)
|
||||
#define AN8855_RG_LINK_MODE_P0_SPEED_10 FIELD_PREP_CONST(AN8855_RG_LINK_MODE_P0, 0x0)
|
||||
#define AN8855_RG_FORCE_SPD_MODE_P0 BIT(2)
|
||||
#define AN8855_MSG_RX_CTRL_0 0x10224100
|
||||
#define AN8855_MSG_RX_LIK_STS_0 0x10224514
|
||||
#define AN8855_RG_DPX_STS_P3 BIT(24)
|
||||
#define AN8855_RG_DPX_STS_P2 BIT(16)
|
||||
#define AN8855_RG_EEE1G_STS_P1 BIT(12)
|
||||
#define AN8855_RG_DPX_STS_P1 BIT(8)
|
||||
#define AN8855_RG_TXFC_STS_P0 BIT(2)
|
||||
#define AN8855_RG_RXFC_STS_P0 BIT(1)
|
||||
#define AN8855_RG_DPX_STS_P0 BIT(0)
|
||||
#define AN8855_MSG_RX_LIK_STS_2 0x1022451c
|
||||
#define AN8855_RG_RXFC_AN_BYPASS_P3 BIT(11)
|
||||
#define AN8855_RG_RXFC_AN_BYPASS_P2 BIT(10)
|
||||
#define AN8855_RG_RXFC_AN_BYPASS_P1 BIT(9)
|
||||
#define AN8855_RG_TXFC_AN_BYPASS_P3 BIT(7)
|
||||
#define AN8855_RG_TXFC_AN_BYPASS_P2 BIT(6)
|
||||
#define AN8855_RG_TXFC_AN_BYPASS_P1 BIT(5)
|
||||
#define AN8855_RG_DPX_AN_BYPASS_P3 BIT(3)
|
||||
#define AN8855_RG_DPX_AN_BYPASS_P2 BIT(2)
|
||||
#define AN8855_RG_DPX_AN_BYPASS_P1 BIT(1)
|
||||
#define AN8855_RG_DPX_AN_BYPASS_P0 BIT(0)
|
||||
#define AN8855_PHY_RX_FORCE_CTRL_0 0x10224520
|
||||
#define AN8855_RG_FORCE_TXC_SEL BIT(4)
|
||||
|
||||
/* AN8855_XFI_CSR_PCS_BASE 0x10225000 */
|
||||
#define AN8855_RG_USXGMII_AN_CONTROL_0 0x10225bf8
|
||||
|
||||
/* AN8855_MULTI_PHY_RA_CSR_BASE 0x10226000 */
|
||||
#define AN8855_RG_RATE_ADAPT_CTRL_0 0x10226000
|
||||
#define AN8855_RG_RATE_ADAPT_RX_BYPASS BIT(27)
|
||||
#define AN8855_RG_RATE_ADAPT_TX_BYPASS BIT(26)
|
||||
#define AN8855_RG_RATE_ADAPT_RX_EN BIT(4)
|
||||
#define AN8855_RG_RATE_ADAPT_TX_EN BIT(0)
|
||||
#define AN8855_RATE_ADP_P0_CTRL_0 0x10226100
|
||||
#define AN8855_RG_P0_DIS_MII_MODE BIT(31)
|
||||
#define AN8855_RG_P0_MII_MODE BIT(28)
|
||||
#define AN8855_RG_P0_MII_RA_RX_EN BIT(3)
|
||||
#define AN8855_RG_P0_MII_RA_TX_EN BIT(2)
|
||||
#define AN8855_RG_P0_MII_RA_RX_MODE BIT(1)
|
||||
#define AN8855_RG_P0_MII_RA_TX_MODE BIT(0)
|
||||
#define AN8855_MII_RA_AN_ENABLE 0x10226300
|
||||
#define AN8855_RG_P0_RA_AN_EN BIT(0)
|
||||
|
||||
/* AN8855_QP_DIG_CSR_BASE 0x1022a000 */
|
||||
#define AN8855_QP_CK_RST_CTRL_4 0x1022a310
|
||||
#define AN8855_QP_DIG_MODE_CTRL_0 0x1022a324
|
||||
#define AN8855_RG_SGMII_MODE GENMASK(5, 4)
|
||||
#define AN8855_RG_SGMII_AN_EN BIT(0)
|
||||
#define AN8855_QP_DIG_MODE_CTRL_1 0x1022a330
|
||||
#define AN8855_RG_TPHY_SPEED GENMASK(3, 2)
|
||||
|
||||
/* AN8855_SERDES_WRAPPER_BASE 0x1022c000 */
|
||||
#define AN8855_USGMII_CTRL_0 0x1022c000
|
||||
|
||||
/* AN8855_QP_PMA_TOP_BASE 0x1022e000 */
|
||||
#define AN8855_PON_RXFEDIG_CTRL_0 0x1022e100
|
||||
#define AN8855_RG_QP_EQ_RX500M_CK_SEL BIT(12)
|
||||
#define AN8855_PON_RXFEDIG_CTRL_9 0x1022e124
|
||||
#define AN8855_RG_QP_EQ_LEQOSC_DLYCNT GENMASK(2, 0)
|
||||
|
||||
#define AN8855_SS_LCPLL_PWCTL_SETTING_2 0x1022e208
|
||||
#define AN8855_RG_NCPO_ANA_MSB GENMASK(17, 16)
|
||||
#define AN8855_SS_LCPLL_TDC_FLT_2 0x1022e230
|
||||
#define AN8855_RG_LCPLL_NCPO_VALUE GENMASK(30, 0)
|
||||
#define AN8855_SS_LCPLL_TDC_FLT_5 0x1022e23c
|
||||
#define AN8855_RG_LCPLL_NCPO_CHG BIT(24)
|
||||
#define AN8855_SS_LCPLL_TDC_PCW_1 0x1022e248
|
||||
#define AN8855_RG_LCPLL_PON_HRDDS_PCW_NCPO_GPON GENMASK(30, 0)
|
||||
#define AN8855_INTF_CTRL_8 0x1022e320
|
||||
#define AN8855_INTF_CTRL_9 0x1022e324
|
||||
#define AN8855_INTF_CTRL_10 0x1022e328
|
||||
#define AN8855_RG_DA_QP_TX_FIR_C2_SEL BIT(29)
|
||||
#define AN8855_RG_DA_QP_TX_FIR_C2_FORCE GENMASK(28, 24)
|
||||
#define AN8855_RG_DA_QP_TX_FIR_C1_SEL BIT(21)
|
||||
#define AN8855_RG_DA_QP_TX_FIR_C1_FORCE GENMASK(20, 16)
|
||||
#define AN8855_INTF_CTRL_11 0x1022e32c
|
||||
#define AN8855_RG_DA_QP_TX_FIR_C0B_SEL BIT(6)
|
||||
#define AN8855_RG_DA_QP_TX_FIR_C0B_FORCE GENMASK(5, 0)
|
||||
#define AN8855_PLL_CTRL_0 0x1022e400
|
||||
#define AN8855_RG_PHYA_AUTO_INIT BIT(0)
|
||||
#define AN8855_PLL_CTRL_2 0x1022e408
|
||||
#define AN8855_RG_DA_QP_PLL_SDM_IFM_INTF BIT(30)
|
||||
#define AN8855_RG_DA_QP_PLL_RICO_SEL_INTF BIT(29)
|
||||
#define AN8855_RG_DA_QP_PLL_POSTDIV_EN_INTF BIT(28)
|
||||
#define AN8855_RG_DA_QP_PLL_PHY_CK_EN_INTF BIT(27)
|
||||
#define AN8855_RG_DA_QP_PLL_PFD_OFFSET_EN_INTRF BIT(26)
|
||||
#define AN8855_RG_DA_QP_PLL_PFD_OFFSET_INTF GENMASK(25, 24)
|
||||
#define AN8855_RG_DA_QP_PLL_PCK_SEL_INTF BIT(22)
|
||||
#define AN8855_RG_DA_QP_PLL_KBAND_PREDIV_INTF GENMASK(21, 20)
|
||||
#define AN8855_RG_DA_QP_PLL_IR_INTF GENMASK(19, 16)
|
||||
#define AN8855_RG_DA_QP_PLL_ICOIQ_EN_INTF BIT(14)
|
||||
#define AN8855_RG_DA_QP_PLL_FBKSEL_INTF GENMASK(13, 12)
|
||||
#define AN8855_RG_DA_QP_PLL_BR_INTF GENMASK(10, 8)
|
||||
#define AN8855_RG_DA_QP_PLL_BPD_INTF GENMASK(7, 6)
|
||||
#define AN8855_RG_DA_QP_PLL_BPA_INTF GENMASK(4, 2)
|
||||
#define AN8855_RG_DA_QP_PLL_BC_INTF GENMASK(1, 0)
|
||||
#define AN8855_PLL_CTRL_3 0x1022e40c
|
||||
#define AN8855_RG_DA_QP_PLL_SSC_PERIOD_INTF GENMASK(31, 16)
|
||||
#define AN8855_RG_DA_QP_PLL_SSC_DELTA_INTF GENMASK(15, 0)
|
||||
#define AN8855_PLL_CTRL_4 0x1022e410
|
||||
#define AN8855_RG_DA_QP_PLL_SDM_HREN_INTF GENMASK(4, 3)
|
||||
#define AN8855_RG_DA_QP_PLL_ICOLP_EN_INTF BIT(2)
|
||||
#define AN8855_RG_DA_QP_PLL_SSC_DIR_DLY_INTF GENMASK(1, 0)
|
||||
#define AN8855_PLL_CK_CTRL_0 0x1022e414
|
||||
#define AN8855_RG_DA_QP_PLL_TDC_TXCK_SEL_INTF BIT(9)
|
||||
#define AN8855_RG_DA_QP_PLL_SDM_DI_EN_INTF BIT(8)
|
||||
#define AN8855_RX_DLY_0 0x1022e614
|
||||
#define AN8855_RG_QP_RX_SAOSC_EN_H_DLY GENMASK(13, 8)
|
||||
#define AN8855_RG_QP_RX_PI_CAL_EN_H_DLY GENMASK(7, 0)
|
||||
#define AN8855_RX_CTRL_2 0x1022e630
|
||||
#define AN8855_RG_QP_RX_EQ_EN_H_DLY GENMASK(28, 16)
|
||||
#define AN8855_RX_CTRL_5 0x1022e63c
|
||||
#define AN8855_RG_FREDET_CHK_CYCLE GENMASK(29, 10)
|
||||
#define AN8855_RX_CTRL_6 0x1022e640
|
||||
#define AN8855_RG_FREDET_GOLDEN_CYCLE GENMASK(19, 0)
|
||||
#define AN8855_RX_CTRL_7 0x1022e644
|
||||
#define AN8855_RG_FREDET_TOLERATE_CYCLE GENMASK(19, 0)
|
||||
#define AN8855_RX_CTRL_8 0x1022e648
|
||||
#define AN8855_RG_DA_QP_SAOSC_DONE_TIME GENMASK(27, 16)
|
||||
#define AN8855_RG_DA_QP_LEQOS_EN_TIME GENMASK(14, 0)
|
||||
#define AN8855_RX_CTRL_26 0x1022e690
|
||||
#define AN8855_RG_QP_EQ_RETRAIN_ONLY_EN BIT(26)
|
||||
#define AN8855_RG_LINK_NE_EN BIT(24)
|
||||
#define AN8855_RG_LINK_ERRO_EN BIT(23)
|
||||
#define AN8855_RX_CTRL_42 0x1022e6d0
|
||||
#define AN8855_RG_QP_EQ_EN_DLY GENMASK(12, 0)
|
||||
|
||||
/* AN8855_QP_ANA_CSR_BASE 0x1022f000 */
|
||||
#define AN8855_RG_QP_RX_DAC_EN 0x1022f000
|
||||
#define AN8855_RG_QP_SIGDET_HF GENMASK(17, 16)
|
||||
#define AN8855_RG_QP_RXAFE_RESERVE 0x1022f004
|
||||
#define AN8855_RG_QP_CDR_PD_10B_EN BIT(11)
|
||||
#define AN8855_RG_QP_CDR_LPF_BOT_LIM 0x1022f008
|
||||
#define AN8855_RG_QP_CDR_LPF_KP_GAIN GENMASK(26, 24)
|
||||
#define AN8855_RG_QP_CDR_LPF_KI_GAIN GENMASK(22, 20)
|
||||
#define AN8855_RG_QP_CDR_LPF_MJV_LIM 0x1022f00c
|
||||
#define AN8855_RG_QP_CDR_LPF_RATIO GENMASK(5, 4)
|
||||
#define AN8855_RG_QP_CDR_LPF_SETVALUE 0x1022f014
|
||||
#define AN8855_RG_QP_CDR_PR_BUF_IN_SR GENMASK(31, 29)
|
||||
#define AN8855_RG_QP_CDR_PR_BETA_SEL GENMASK(28, 25)
|
||||
#define AN8855_RG_QP_CDR_PR_CKREF_DIV1 0x1022f018
|
||||
#define AN8855_RG_QP_CDR_PR_KBAND_DIV GENMASK(26, 24)
|
||||
#define AN8855_RG_QP_CDR_PR_DAC_BAND GENMASK(12, 8)
|
||||
#define AN8855_RG_QP_CDR_PR_KBAND_DIV_PCIE 0x1022f01c
|
||||
#define AN8855_RG_QP_CDR_PR_XFICK_EN BIT(30)
|
||||
#define AN8855_RG_QP_CDR_PR_KBAND_PCIE_MODE BIT(6)
|
||||
#define AN8855_RG_QP_CDR_PR_KBAND_DIV_PCIE_MASK GENMASK(5, 0)
|
||||
#define AN8855_RG_QP_CDR_FORCE_IBANDLPF_R_OFF 0x1022f020
|
||||
#define AN8855_RG_QP_CDR_PHYCK_SEL GENMASK(17, 16)
|
||||
#define AN8855_RG_QP_CDR_PHYCK_RSTB BIT(13)
|
||||
#define AN8855_RG_QP_CDR_PHYCK_DIV GENMASK(12, 6)
|
||||
#define AN8855_RG_QP_TX_MODE 0x1022f028
|
||||
#define AN8855_RG_QP_TX_RESERVE GENMASK(31, 16)
|
||||
#define AN8855_RG_QP_TX_MODE_16B_EN BIT(0)
|
||||
#define AN8855_RG_QP_PLL_IPLL_DIG_PWR_SEL 0x1022f03c
|
||||
#define AN8855_RG_QP_PLL_SDM_ORD 0x1022f040
|
||||
#define AN8855_RG_QP_PLL_SSC_PHASE_INI BIT(4)
|
||||
#define AN8855_RG_QP_PLL_SSC_TRI_EN BIT(3)
|
||||
|
||||
/* AN8855_ETHER_SYS_BASE 0x1028c800 */
|
||||
#define AN8855_RG_GPHY_AFE_PWD 0x1028c840
|
||||
#define AN8855_RG_GPHY_SMI_ADDR 0x1028c848
|
||||
|
||||
#define MIB_DESC(_s, _o, _n) \
|
||||
{ \
|
||||
.size = (_s), \
|
||||
.offset = (_o), \
|
||||
.name = (_n), \
|
||||
}
|
||||
|
||||
struct an8855_mib_desc {
|
||||
unsigned int size;
|
||||
unsigned int offset;
|
||||
const char *name;
|
||||
};
|
||||
|
||||
struct an8855_fdb {
|
||||
u16 vid;
|
||||
u8 port_mask;
|
||||
u16 aging;
|
||||
u8 mac[6];
|
||||
bool noarp;
|
||||
u8 live;
|
||||
u8 type;
|
||||
u8 fid;
|
||||
u8 ivl;
|
||||
};
|
||||
|
||||
struct an8855_priv {
|
||||
struct device *dev;
|
||||
struct dsa_switch *ds;
|
||||
struct regmap *regmap;
|
||||
struct gpio_desc *reset_gpio;
|
||||
/* Protect ATU or VLAN table access */
|
||||
struct mutex reg_mutex;
|
||||
|
||||
struct phylink_pcs pcs;
|
||||
|
||||
u8 mirror_rx;
|
||||
u8 mirror_tx;
|
||||
u8 port_isolated_map;
|
||||
|
||||
bool phy_require_calib;
|
||||
};
|
||||
|
||||
#endif /* __AN8855_H */
|
||||
@ -1,113 +0,0 @@
|
||||
// SPDX-License-Identifier: GPL-2.0+
|
||||
/*
|
||||
* MDIO passthrough driver for Airoha AN8855 Switch
|
||||
*/
|
||||
|
||||
#include <linux/mfd/airoha-an8855-mfd.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_mdio.h>
|
||||
#include <linux/platform_device.h>
|
||||
|
||||
static int an855_phy_restore_page(struct an8855_mfd_priv *priv,
|
||||
int phy) __must_hold(&priv->bus->mdio_lock)
|
||||
{
|
||||
/* Check PHY page only for addr shared with switch */
|
||||
if (phy != priv->switch_addr)
|
||||
return 0;
|
||||
|
||||
/* Don't restore page if it's not set to switch page */
|
||||
if (priv->current_page != FIELD_GET(AN8855_PHY_PAGE,
|
||||
AN8855_PHY_PAGE_EXTENDED_4))
|
||||
return 0;
|
||||
|
||||
/* Restore page to 0, PHY might change page right after but that
|
||||
* will be ignored as it won't be a switch page.
|
||||
*/
|
||||
return an8855_mii_set_page(priv, phy, AN8855_PHY_PAGE_STANDARD);
|
||||
}
|
||||
|
||||
static int an8855_phy_read(struct mii_bus *bus, int phy, int regnum)
|
||||
{
|
||||
struct an8855_mfd_priv *priv = bus->priv;
|
||||
struct mii_bus *real_bus = priv->bus;
|
||||
int ret;
|
||||
|
||||
mutex_lock_nested(&real_bus->mdio_lock, MDIO_MUTEX_NESTED);
|
||||
|
||||
ret = an855_phy_restore_page(priv, phy);
|
||||
if (ret)
|
||||
goto exit;
|
||||
|
||||
ret = __mdiobus_read(real_bus, phy, regnum);
|
||||
exit:
|
||||
mutex_unlock(&real_bus->mdio_lock);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int an8855_phy_write(struct mii_bus *bus, int phy, int regnum, u16 val)
|
||||
{
|
||||
struct an8855_mfd_priv *priv = bus->priv;
|
||||
struct mii_bus *real_bus = priv->bus;
|
||||
int ret;
|
||||
|
||||
mutex_lock_nested(&real_bus->mdio_lock, MDIO_MUTEX_NESTED);
|
||||
|
||||
ret = an855_phy_restore_page(priv, phy);
|
||||
if (ret)
|
||||
goto exit;
|
||||
|
||||
ret = __mdiobus_write(real_bus, phy, regnum, val);
|
||||
exit:
|
||||
mutex_unlock(&real_bus->mdio_lock);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int an8855_mdio_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct device *dev = &pdev->dev;
|
||||
struct an8855_mfd_priv *priv;
|
||||
struct mii_bus *bus;
|
||||
int ret;
|
||||
|
||||
/* Get priv of MFD */
|
||||
priv = dev_get_drvdata(dev->parent);
|
||||
|
||||
bus = devm_mdiobus_alloc(dev);
|
||||
if (!bus)
|
||||
return -ENOMEM;
|
||||
|
||||
bus->priv = priv;
|
||||
bus->name = KBUILD_MODNAME "-mii";
|
||||
snprintf(bus->id, MII_BUS_ID_SIZE, KBUILD_MODNAME "-%d",
|
||||
priv->switch_addr);
|
||||
bus->parent = dev;
|
||||
bus->read = an8855_phy_read;
|
||||
bus->write = an8855_phy_write;
|
||||
|
||||
ret = devm_of_mdiobus_register(dev, bus, dev->of_node);
|
||||
if (ret)
|
||||
return dev_err_probe(dev, ret, "failed to register MDIO bus\n");
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static const struct of_device_id an8855_mdio_of_match[] = {
|
||||
{ .compatible = "airoha,an8855-mdio", },
|
||||
{ /* sentinel */ }
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, an8855_mdio_of_match);
|
||||
|
||||
static struct platform_driver an8855_mdio_driver = {
|
||||
.probe = an8855_mdio_probe,
|
||||
.driver = {
|
||||
.name = "an8855-mdio",
|
||||
.of_match_table = an8855_mdio_of_match,
|
||||
},
|
||||
};
|
||||
module_platform_driver(an8855_mdio_driver);
|
||||
|
||||
MODULE_AUTHOR("Christian Marangi <ansuelsmth@gmail.com>");
|
||||
MODULE_DESCRIPTION("Driver for AN8855 MDIO passthrough");
|
||||
MODULE_LICENSE("GPL");
|
||||
@ -1,267 +0,0 @@
|
||||
// SPDX-License-Identifier: GPL-2.0+
|
||||
/*
|
||||
* Copyright (C) 2024 Christian Marangi <ansuelsmth@gmail.com>
|
||||
*/
|
||||
|
||||
#include <linux/bitfield.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/nvmem-consumer.h>
|
||||
#include <linux/phy.h>
|
||||
|
||||
#define AN8855_PHY_SELECT_PAGE 0x1f
|
||||
#define AN8855_PHY_PAGE GENMASK(2, 0)
|
||||
#define AN8855_PHY_PAGE_STANDARD FIELD_PREP_CONST(AN8855_PHY_PAGE, 0x0)
|
||||
#define AN8855_PHY_PAGE_EXTENDED_1 FIELD_PREP_CONST(AN8855_PHY_PAGE, 0x1)
|
||||
|
||||
/* MII Registers Page 1 */
|
||||
#define AN8855_PHY_EXT_REG_14 0x14
|
||||
#define AN8855_PHY_EN_DOWN_SHIFT BIT(4)
|
||||
|
||||
/* R50 Calibration regs in MDIO_MMD_VEND1 */
|
||||
#define AN8855_PHY_R500HM_RSEL_TX_AB 0x174
|
||||
#define AN8855_PHY_R50OHM_RSEL_TX_A_EN BIT(15)
|
||||
#define AN8855_PHY_R50OHM_RSEL_TX_A GENMASK(14, 8)
|
||||
#define AN8855_PHY_R50OHM_RSEL_TX_B_EN BIT(7)
|
||||
#define AN8855_PHY_R50OHM_RSEL_TX_B GENMASK(6, 0)
|
||||
#define AN8855_PHY_R500HM_RSEL_TX_CD 0x175
|
||||
#define AN8855_PHY_R50OHM_RSEL_TX_C_EN BIT(15)
|
||||
#define AN8855_PHY_R50OHM_RSEL_TX_C GENMASK(14, 8)
|
||||
#define AN8855_PHY_R50OHM_RSEL_TX_D_EN BIT(7)
|
||||
#define AN8855_PHY_R50OHM_RSEL_TX_D GENMASK(6, 0)
|
||||
|
||||
#define AN8855_SWITCH_EFUSE_R50O GENMASK(30, 24)
|
||||
|
||||
/* PHY TX PAIR DELAY SELECT Register */
|
||||
#define AN8855_PHY_TX_PAIR_DLY_SEL_GBE 0x013
|
||||
#define AN8855_PHY_CR_DA_TX_PAIR_DELKAY_SEL_A_GBE GENMASK(14, 12)
|
||||
#define AN8855_PHY_CR_DA_TX_PAIR_DELKAY_SEL_B_GBE GENMASK(10, 8)
|
||||
#define AN8855_PHY_CR_DA_TX_PAIR_DELKAY_SEL_C_GBE GENMASK(6, 4)
|
||||
#define AN8855_PHY_CR_DA_TX_PAIR_DELKAY_SEL_D_GBE GENMASK(2, 0)
|
||||
/* PHY ADC Register */
|
||||
#define AN8855_PHY_RXADC_CTRL 0x0d8
|
||||
#define AN8855_PHY_RG_AD_SAMNPLE_PHSEL_A BIT(12)
|
||||
#define AN8855_PHY_RG_AD_SAMNPLE_PHSEL_B BIT(8)
|
||||
#define AN8855_PHY_RG_AD_SAMNPLE_PHSEL_C BIT(4)
|
||||
#define AN8855_PHY_RG_AD_SAMNPLE_PHSEL_D BIT(0)
|
||||
#define AN8855_PHY_RXADC_REV_0 0x0d9
|
||||
#define AN8855_PHY_RG_AD_RESERVE0_A GENMASK(15, 8)
|
||||
#define AN8855_PHY_RG_AD_RESERVE0_B GENMASK(7, 0)
|
||||
#define AN8855_PHY_RXADC_REV_1 0x0da
|
||||
#define AN8855_PHY_RG_AD_RESERVE0_C GENMASK(15, 8)
|
||||
#define AN8855_PHY_RG_AD_RESERVE0_D GENMASK(7, 0)
|
||||
|
||||
#define AN8855_PHY_ID 0xc0ff0410
|
||||
|
||||
#define AN8855_PHY_FLAGS_EN_CALIBRATION BIT(0)
|
||||
|
||||
struct air_an8855_priv {
|
||||
u8 calibration_data[4];
|
||||
};
|
||||
|
||||
static const u8 dsa_r50ohm_table[] = {
|
||||
127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
|
||||
127, 127, 127, 127, 127, 127, 127, 126, 122, 117,
|
||||
112, 109, 104, 101, 97, 94, 90, 88, 84, 80,
|
||||
78, 74, 72, 68, 66, 64, 61, 58, 56, 53,
|
||||
51, 48, 47, 44, 42, 40, 38, 36, 34, 32,
|
||||
31, 28, 27, 24, 24, 22, 20, 18, 16, 16,
|
||||
14, 12, 11, 9
|
||||
};
|
||||
|
||||
static int en8855_get_r50ohm_val(struct device *dev, const char *calib_name,
|
||||
u8 *dest)
|
||||
{
|
||||
u32 shift_sel, val;
|
||||
int ret;
|
||||
int i;
|
||||
|
||||
ret = nvmem_cell_read_u32(dev, calib_name, &val);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
shift_sel = FIELD_GET(AN8855_SWITCH_EFUSE_R50O, val);
|
||||
for (i = 0; i < ARRAY_SIZE(dsa_r50ohm_table); i++)
|
||||
if (dsa_r50ohm_table[i] == shift_sel)
|
||||
break;
|
||||
|
||||
if (i < 8 || i >= ARRAY_SIZE(dsa_r50ohm_table))
|
||||
*dest = dsa_r50ohm_table[25];
|
||||
else
|
||||
*dest = dsa_r50ohm_table[i - 8];
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int an8855_probe(struct phy_device *phydev)
|
||||
{
|
||||
struct device *dev = &phydev->mdio.dev;
|
||||
struct device_node *node = dev->of_node;
|
||||
struct air_an8855_priv *priv;
|
||||
|
||||
/* If we don't have a node, skip calib */
|
||||
if (!node)
|
||||
return 0;
|
||||
|
||||
priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
|
||||
if (!priv)
|
||||
return -ENOMEM;
|
||||
|
||||
phydev->priv = priv;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int an8855_get_downshift(struct phy_device *phydev, u8 *data)
|
||||
{
|
||||
int val;
|
||||
|
||||
val = phy_read_paged(phydev, AN8855_PHY_PAGE_EXTENDED_1, AN8855_PHY_EXT_REG_14);
|
||||
if (val < 0)
|
||||
return val;
|
||||
|
||||
*data = val & AN8855_PHY_EN_DOWN_SHIFT ? DOWNSHIFT_DEV_DEFAULT_COUNT :
|
||||
DOWNSHIFT_DEV_DISABLE;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int an8855_set_downshift(struct phy_device *phydev, u8 cnt)
|
||||
{
|
||||
u16 ds = cnt != DOWNSHIFT_DEV_DISABLE ? AN8855_PHY_EN_DOWN_SHIFT : 0;
|
||||
|
||||
return phy_modify_paged(phydev, AN8855_PHY_PAGE_EXTENDED_1,
|
||||
AN8855_PHY_EXT_REG_14, AN8855_PHY_EN_DOWN_SHIFT,
|
||||
ds);
|
||||
}
|
||||
|
||||
static int an8855_config_init(struct phy_device *phydev)
|
||||
{
|
||||
struct air_an8855_priv *priv = phydev->priv;
|
||||
struct device *dev = &phydev->mdio.dev;
|
||||
int ret;
|
||||
|
||||
/* Enable HW auto downshift */
|
||||
ret = an8855_set_downshift(phydev, DOWNSHIFT_DEV_DEFAULT_COUNT);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
/* Apply calibration values, if needed.
|
||||
* AN8855_PHY_FLAGS_EN_CALIBRATION signal this.
|
||||
*/
|
||||
if (priv && phydev->dev_flags & AN8855_PHY_FLAGS_EN_CALIBRATION) {
|
||||
u8 *calibration_data = priv->calibration_data;
|
||||
|
||||
ret = en8855_get_r50ohm_val(dev, "tx_a", &calibration_data[0]);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = en8855_get_r50ohm_val(dev, "tx_b", &calibration_data[1]);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = en8855_get_r50ohm_val(dev, "tx_c", &calibration_data[2]);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = en8855_get_r50ohm_val(dev, "tx_d", &calibration_data[3]);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = phy_modify_mmd(phydev, MDIO_MMD_VEND1, AN8855_PHY_R500HM_RSEL_TX_AB,
|
||||
AN8855_PHY_R50OHM_RSEL_TX_A | AN8855_PHY_R50OHM_RSEL_TX_B,
|
||||
FIELD_PREP(AN8855_PHY_R50OHM_RSEL_TX_A, calibration_data[0]) |
|
||||
FIELD_PREP(AN8855_PHY_R50OHM_RSEL_TX_B, calibration_data[1]));
|
||||
if (ret)
|
||||
return ret;
|
||||
ret = phy_modify_mmd(phydev, MDIO_MMD_VEND1, AN8855_PHY_R500HM_RSEL_TX_CD,
|
||||
AN8855_PHY_R50OHM_RSEL_TX_C | AN8855_PHY_R50OHM_RSEL_TX_D,
|
||||
FIELD_PREP(AN8855_PHY_R50OHM_RSEL_TX_C, calibration_data[2]) |
|
||||
FIELD_PREP(AN8855_PHY_R50OHM_RSEL_TX_D, calibration_data[3]));
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Apply values to reduce signal noise */
|
||||
ret = phy_write_mmd(phydev, MDIO_MMD_VEND1, AN8855_PHY_TX_PAIR_DLY_SEL_GBE,
|
||||
FIELD_PREP(AN8855_PHY_CR_DA_TX_PAIR_DELKAY_SEL_A_GBE, 0x4) |
|
||||
FIELD_PREP(AN8855_PHY_CR_DA_TX_PAIR_DELKAY_SEL_C_GBE, 0x4));
|
||||
if (ret)
|
||||
return ret;
|
||||
ret = phy_write_mmd(phydev, MDIO_MMD_VEND1, AN8855_PHY_RXADC_CTRL,
|
||||
AN8855_PHY_RG_AD_SAMNPLE_PHSEL_A |
|
||||
AN8855_PHY_RG_AD_SAMNPLE_PHSEL_C);
|
||||
if (ret)
|
||||
return ret;
|
||||
ret = phy_write_mmd(phydev, MDIO_MMD_VEND1, AN8855_PHY_RXADC_REV_0,
|
||||
FIELD_PREP(AN8855_PHY_RG_AD_RESERVE0_A, 0x1));
|
||||
if (ret)
|
||||
return ret;
|
||||
ret = phy_write_mmd(phydev, MDIO_MMD_VEND1, AN8855_PHY_RXADC_REV_1,
|
||||
FIELD_PREP(AN8855_PHY_RG_AD_RESERVE0_C, 0x1));
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int an8855_get_tunable(struct phy_device *phydev,
|
||||
struct ethtool_tunable *tuna, void *data)
|
||||
{
|
||||
switch (tuna->id) {
|
||||
case ETHTOOL_PHY_DOWNSHIFT:
|
||||
return an8855_get_downshift(phydev, data);
|
||||
default:
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
}
|
||||
|
||||
static int an8855_set_tunable(struct phy_device *phydev,
|
||||
struct ethtool_tunable *tuna, const void *data)
|
||||
{
|
||||
switch (tuna->id) {
|
||||
case ETHTOOL_PHY_DOWNSHIFT:
|
||||
return an8855_set_downshift(phydev, *(const u8 *)data);
|
||||
default:
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
}
|
||||
|
||||
static int an8855_read_page(struct phy_device *phydev)
|
||||
{
|
||||
return __phy_read(phydev, AN8855_PHY_SELECT_PAGE);
|
||||
}
|
||||
|
||||
static int an8855_write_page(struct phy_device *phydev, int page)
|
||||
{
|
||||
return __phy_write(phydev, AN8855_PHY_SELECT_PAGE, page);
|
||||
}
|
||||
|
||||
static struct phy_driver an8855_driver[] = {
|
||||
{
|
||||
PHY_ID_MATCH_EXACT(AN8855_PHY_ID),
|
||||
.name = "Airoha AN8855 internal PHY",
|
||||
/* PHY_GBIT_FEATURES */
|
||||
.flags = PHY_IS_INTERNAL,
|
||||
.probe = an8855_probe,
|
||||
.config_init = an8855_config_init,
|
||||
.soft_reset = genphy_soft_reset,
|
||||
.get_tunable = an8855_get_tunable,
|
||||
.set_tunable = an8855_set_tunable,
|
||||
.suspend = genphy_suspend,
|
||||
.resume = genphy_resume,
|
||||
.read_page = an8855_read_page,
|
||||
.write_page = an8855_write_page,
|
||||
}, };
|
||||
|
||||
module_phy_driver(an8855_driver);
|
||||
|
||||
static const struct mdio_device_id __maybe_unused an8855_tbl[] = {
|
||||
{ PHY_ID_MATCH_EXACT(AN8855_PHY_ID) },
|
||||
{ }
|
||||
};
|
||||
|
||||
MODULE_DEVICE_TABLE(mdio, an8855_tbl);
|
||||
|
||||
MODULE_DESCRIPTION("Airoha AN8855 PHY driver");
|
||||
MODULE_AUTHOR("Christian Marangi <ansuelsmth@gmail.com>");
|
||||
MODULE_LICENSE("GPL");
|
||||
@ -1,63 +0,0 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* Airoha AN8855 Switch EFUSE Driver
|
||||
*/
|
||||
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/nvmem-provider.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regmap.h>
|
||||
|
||||
#define AN8855_EFUSE_CELL 50
|
||||
|
||||
#define AN8855_EFUSE_DATA0 0x1000a500
|
||||
#define AN8855_EFUSE_R50O GENMASK(30, 24)
|
||||
|
||||
static int an8855_efuse_read(void *context, unsigned int offset,
|
||||
void *val, size_t bytes)
|
||||
{
|
||||
struct regmap *regmap = context;
|
||||
|
||||
return regmap_bulk_read(regmap, AN8855_EFUSE_DATA0 + offset,
|
||||
val, bytes / sizeof(u32));
|
||||
}
|
||||
|
||||
static int an8855_efuse_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct nvmem_config an8855_nvmem_config = {
|
||||
.name = "an8855-efuse",
|
||||
.size = AN8855_EFUSE_CELL * sizeof(u32),
|
||||
.stride = sizeof(u32),
|
||||
.word_size = sizeof(u32),
|
||||
.reg_read = an8855_efuse_read,
|
||||
};
|
||||
struct device *dev = &pdev->dev;
|
||||
struct nvmem_device *nvmem;
|
||||
|
||||
/* Assign NVMEM priv to MFD regmap */
|
||||
an8855_nvmem_config.priv = dev_get_regmap(dev->parent, NULL);
|
||||
an8855_nvmem_config.dev = dev;
|
||||
nvmem = devm_nvmem_register(dev, &an8855_nvmem_config);
|
||||
|
||||
return PTR_ERR_OR_ZERO(nvmem);
|
||||
}
|
||||
|
||||
static const struct of_device_id an8855_efuse_of_match[] = {
|
||||
{ .compatible = "airoha,an8855-efuse", },
|
||||
{ /* sentinel */ }
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, an8855_efuse_of_match);
|
||||
|
||||
static struct platform_driver an8855_efuse_driver = {
|
||||
.probe = an8855_efuse_probe,
|
||||
.driver = {
|
||||
.name = "an8855-efuse",
|
||||
.of_match_table = an8855_efuse_of_match,
|
||||
},
|
||||
};
|
||||
module_platform_driver(an8855_efuse_driver);
|
||||
|
||||
MODULE_AUTHOR("Christian Marangi <ansuelsmth@gmail.com>");
|
||||
MODULE_DESCRIPTION("Driver for AN8855 Switch EFUSE");
|
||||
MODULE_LICENSE("GPL");
|
||||
@ -1,41 +0,0 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* MFD driver for Airoha AN8855 Switch
|
||||
*/
|
||||
#ifndef _LINUX_INCLUDE_MFD_AIROHA_AN8855_MFD_H
|
||||
#define _LINUX_INCLUDE_MFD_AIROHA_AN8855_MFD_H
|
||||
|
||||
#include <linux/bitfield.h>
|
||||
|
||||
/* MII Registers */
|
||||
#define AN8855_PHY_SELECT_PAGE 0x1f
|
||||
#define AN8855_PHY_PAGE GENMASK(2, 0)
|
||||
#define AN8855_PHY_PAGE_STANDARD FIELD_PREP_CONST(AN8855_PHY_PAGE, 0x0)
|
||||
#define AN8855_PHY_PAGE_EXTENDED_1 FIELD_PREP_CONST(AN8855_PHY_PAGE, 0x1)
|
||||
#define AN8855_PHY_PAGE_EXTENDED_4 FIELD_PREP_CONST(AN8855_PHY_PAGE, 0x4)
|
||||
|
||||
/* MII Registers Page 4 */
|
||||
#define AN8855_PBUS_MODE 0x10
|
||||
#define AN8855_PBUS_MODE_ADDR_FIXED 0x0
|
||||
#define AN8855_PBUS_MODE_ADDR_INCR BIT(15)
|
||||
#define AN8855_PBUS_WR_ADDR_HIGH 0x11
|
||||
#define AN8855_PBUS_WR_ADDR_LOW 0x12
|
||||
#define AN8855_PBUS_WR_DATA_HIGH 0x13
|
||||
#define AN8855_PBUS_WR_DATA_LOW 0x14
|
||||
#define AN8855_PBUS_RD_ADDR_HIGH 0x15
|
||||
#define AN8855_PBUS_RD_ADDR_LOW 0x16
|
||||
#define AN8855_PBUS_RD_DATA_HIGH 0x17
|
||||
#define AN8855_PBUS_RD_DATA_LOW 0x18
|
||||
|
||||
struct an8855_mfd_priv {
|
||||
struct device *dev;
|
||||
struct mii_bus *bus;
|
||||
|
||||
unsigned int switch_addr;
|
||||
u16 current_page;
|
||||
};
|
||||
|
||||
int an8855_mii_set_page(struct an8855_mfd_priv *priv, u8 phy_id,
|
||||
u8 page);
|
||||
|
||||
#endif
|
||||
@ -1,534 +0,0 @@
|
||||
CONFIG_64BIT=y
|
||||
# CONFIG_AHCI_MTK is not set
|
||||
CONFIG_AIROHA_EN8801SC_PHY=y
|
||||
CONFIG_AIR_AN8855_PHY=y
|
||||
CONFIG_ARCH_BINFMT_ELF_EXTRA_PHDRS=y
|
||||
CONFIG_ARCH_CORRECT_STACKTRACE_ON_KRETPROBE=y
|
||||
CONFIG_ARCH_DEFAULT_KEXEC_IMAGE_VERIFY_SIG=y
|
||||
CONFIG_ARCH_DMA_ADDR_T_64BIT=y
|
||||
CONFIG_ARCH_FORCE_MAX_ORDER=10
|
||||
CONFIG_ARCH_KEEP_MEMBLOCK=y
|
||||
CONFIG_ARCH_MEDIATEK=y
|
||||
CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y
|
||||
CONFIG_ARCH_MMAP_RND_BITS=18
|
||||
CONFIG_ARCH_MMAP_RND_BITS_MAX=24
|
||||
CONFIG_ARCH_MMAP_RND_BITS_MIN=18
|
||||
CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=11
|
||||
CONFIG_ARCH_PKEY_BITS=3
|
||||
CONFIG_ARCH_PROC_KCORE_TEXT=y
|
||||
CONFIG_ARCH_SPARSEMEM_ENABLE=y
|
||||
CONFIG_ARCH_STACKWALK=y
|
||||
CONFIG_ARCH_SUSPEND_POSSIBLE=y
|
||||
CONFIG_ARCH_WANTS_EXECMEM_LATE=y
|
||||
CONFIG_ARCH_WANTS_NO_INSTR=y
|
||||
CONFIG_ARCH_WANTS_THP_SWAP=y
|
||||
CONFIG_ARM64=y
|
||||
CONFIG_ARM64_4K_PAGES=y
|
||||
CONFIG_ARM64_ERRATUM_843419=y
|
||||
CONFIG_ARM64_LD_HAS_FIX_ERRATUM_843419=y
|
||||
CONFIG_ARM64_PA_BITS=48
|
||||
CONFIG_ARM64_PA_BITS_48=y
|
||||
CONFIG_ARM64_PLATFORM_DEVICES=y
|
||||
CONFIG_ARM64_TAGGED_ADDR_ABI=y
|
||||
CONFIG_ARM64_VA_BITS=39
|
||||
CONFIG_ARM64_VA_BITS_39=y
|
||||
# CONFIG_ARM64_VA_BITS_52 is not set
|
||||
CONFIG_ARM_AMBA=y
|
||||
CONFIG_ARM_ARCH_TIMER=y
|
||||
CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
|
||||
CONFIG_ARM_GIC=y
|
||||
CONFIG_ARM_GIC_V2M=y
|
||||
CONFIG_ARM_GIC_V3=y
|
||||
CONFIG_ARM_GIC_V3_ITS=y
|
||||
CONFIG_ARM_MEDIATEK_CCI_DEVFREQ=y
|
||||
CONFIG_ARM_MEDIATEK_CPUFREQ=y
|
||||
CONFIG_ARM_PMU=y
|
||||
CONFIG_ARM_PMUV3=y
|
||||
CONFIG_ARM_PSCI_FW=y
|
||||
CONFIG_ATA=y
|
||||
CONFIG_AUDIT_ARCH_COMPAT_GENERIC=y
|
||||
CONFIG_BLK_DEV_LOOP=y
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
CONFIG_BLK_MQ_PCI=y
|
||||
CONFIG_BLK_PM=y
|
||||
CONFIG_BLOCK_NOTIFIERS=y
|
||||
CONFIG_BSD_PROCESS_ACCT=y
|
||||
CONFIG_BSD_PROCESS_ACCT_V3=y
|
||||
CONFIG_BUFFER_HEAD=y
|
||||
CONFIG_BUILTIN_RETURN_ADDRESS_STRIPS_PAC=y
|
||||
CONFIG_CC_HAVE_SHADOW_CALL_STACK=y
|
||||
CONFIG_CC_HAVE_STACKPROTECTOR_SYSREG=y
|
||||
CONFIG_CLKSRC_MMIO=y
|
||||
CONFIG_CLONE_BACKWARDS=y
|
||||
CONFIG_CMDLINE_OVERRIDE=y
|
||||
CONFIG_COMMON_CLK=y
|
||||
CONFIG_COMMON_CLK_MEDIATEK=y
|
||||
# CONFIG_COMMON_CLK_MT2712 is not set
|
||||
# CONFIG_COMMON_CLK_MT6779 is not set
|
||||
# CONFIG_COMMON_CLK_MT6795 is not set
|
||||
# CONFIG_COMMON_CLK_MT6797 is not set
|
||||
# CONFIG_COMMON_CLK_MT7622 is not set
|
||||
CONFIG_COMMON_CLK_MT7981=y
|
||||
CONFIG_COMMON_CLK_MT7981_ETHSYS=y
|
||||
CONFIG_COMMON_CLK_MT7986=y
|
||||
CONFIG_COMMON_CLK_MT7986_ETHSYS=y
|
||||
CONFIG_COMMON_CLK_MT7987=y
|
||||
CONFIG_COMMON_CLK_MT7988=y
|
||||
# CONFIG_COMMON_CLK_MT8173 is not set
|
||||
# CONFIG_COMMON_CLK_MT8183 is not set
|
||||
# CONFIG_COMMON_CLK_MT8186 is not set
|
||||
# CONFIG_COMMON_CLK_MT8195 is not set
|
||||
# CONFIG_COMMON_CLK_MT8365 is not set
|
||||
# CONFIG_COMMON_CLK_MT8516 is not set
|
||||
CONFIG_COMPACT_UNEVICTABLE_DEFAULT=1
|
||||
# CONFIG_COMPAT_32BIT_TIME is not set
|
||||
CONFIG_CONFIGFS_FS=y
|
||||
CONFIG_CONSOLE_LOGLEVEL_DEFAULT=15
|
||||
CONFIG_CONTEXT_TRACKING=y
|
||||
CONFIG_CONTEXT_TRACKING_IDLE=y
|
||||
CONFIG_CPU_FREQ=y
|
||||
# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
|
||||
CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
|
||||
CONFIG_CPU_FREQ_GOV_ATTR_SET=y
|
||||
CONFIG_CPU_FREQ_GOV_COMMON=y
|
||||
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
|
||||
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
|
||||
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
|
||||
CONFIG_CPU_FREQ_GOV_POWERSAVE=y
|
||||
CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
|
||||
CONFIG_CPU_FREQ_GOV_USERSPACE=y
|
||||
CONFIG_CPU_FREQ_STAT=y
|
||||
CONFIG_CPU_LITTLE_ENDIAN=y
|
||||
CONFIG_CPU_MITIGATIONS=y
|
||||
CONFIG_CPU_RMAP=y
|
||||
CONFIG_CPU_THERMAL=y
|
||||
CONFIG_CRC16=y
|
||||
CONFIG_CRC_CCITT=y
|
||||
CONFIG_CRYPTO_AES_ARM64=y
|
||||
CONFIG_CRYPTO_AES_ARM64_CE=y
|
||||
CONFIG_CRYPTO_AES_ARM64_CE_BLK=y
|
||||
CONFIG_CRYPTO_AES_ARM64_CE_CCM=y
|
||||
CONFIG_CRYPTO_CMAC=y
|
||||
CONFIG_CRYPTO_CRC32=y
|
||||
CONFIG_CRYPTO_CRC32C=y
|
||||
CONFIG_CRYPTO_CRYPTD=y
|
||||
CONFIG_CRYPTO_DEFLATE=y
|
||||
CONFIG_CRYPTO_DRBG=y
|
||||
CONFIG_CRYPTO_DRBG_HMAC=y
|
||||
CONFIG_CRYPTO_DRBG_MENU=y
|
||||
CONFIG_CRYPTO_ECB=y
|
||||
CONFIG_CRYPTO_ECC=y
|
||||
CONFIG_CRYPTO_ECDH=y
|
||||
CONFIG_CRYPTO_GHASH_ARM64_CE=y
|
||||
CONFIG_CRYPTO_HASH_INFO=y
|
||||
CONFIG_CRYPTO_HMAC=y
|
||||
CONFIG_CRYPTO_JITTERENTROPY=y
|
||||
CONFIG_CRYPTO_JITTERENTROPY_MEMORY_BLOCKS=64
|
||||
CONFIG_CRYPTO_JITTERENTROPY_MEMORY_BLOCKSIZE=32
|
||||
CONFIG_CRYPTO_JITTERENTROPY_OSR=1
|
||||
CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y
|
||||
CONFIG_CRYPTO_LIB_GF128MUL=y
|
||||
CONFIG_CRYPTO_LIB_SHA256=y
|
||||
CONFIG_CRYPTO_LIB_UTILS=y
|
||||
CONFIG_CRYPTO_LZO=y
|
||||
CONFIG_CRYPTO_RNG=y
|
||||
CONFIG_CRYPTO_RNG_DEFAULT=y
|
||||
CONFIG_CRYPTO_SHA256=y
|
||||
CONFIG_CRYPTO_SHA256_ARM64=y
|
||||
CONFIG_CRYPTO_SHA2_ARM64_CE=y
|
||||
CONFIG_CRYPTO_SHA3=y
|
||||
CONFIG_CRYPTO_SHA512=y
|
||||
CONFIG_CRYPTO_SM4=y
|
||||
CONFIG_CRYPTO_SM4_ARM64_CE_BLK=y
|
||||
CONFIG_CRYPTO_SM4_ARM64_CE_CCM=y
|
||||
CONFIG_CRYPTO_SM4_ARM64_CE_GCM=y
|
||||
CONFIG_CRYPTO_ZSTD=y
|
||||
CONFIG_DCACHE_WORD_ACCESS=y
|
||||
CONFIG_DEBUG_INFO=y
|
||||
CONFIG_DEBUG_MISC=y
|
||||
CONFIG_DEVFREQ_GOV_PASSIVE=y
|
||||
# CONFIG_DEVFREQ_GOV_PERFORMANCE is not set
|
||||
# CONFIG_DEVFREQ_GOV_POWERSAVE is not set
|
||||
# CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND is not set
|
||||
# CONFIG_DEVFREQ_GOV_USERSPACE is not set
|
||||
# CONFIG_DEVFREQ_THERMAL is not set
|
||||
CONFIG_DMADEVICES=y
|
||||
CONFIG_DMATEST=y
|
||||
CONFIG_DMA_BOUNCE_UNALIGNED_KMALLOC=y
|
||||
CONFIG_DMA_DIRECT_REMAP=y
|
||||
CONFIG_DMA_ENGINE=y
|
||||
CONFIG_DMA_ENGINE_RAID=y
|
||||
CONFIG_DMA_NEED_SYNC=y
|
||||
CONFIG_DMA_OF=y
|
||||
CONFIG_DMA_VIRTUAL_CHANNELS=y
|
||||
CONFIG_DTC=y
|
||||
CONFIG_EDAC_SUPPORT=y
|
||||
CONFIG_EINT_MTK=y
|
||||
CONFIG_EXCLUSIVE_SYSTEM_RAM=y
|
||||
CONFIG_EXT4_FS=y
|
||||
CONFIG_F2FS_FS=y
|
||||
CONFIG_FIXED_PHY=y
|
||||
CONFIG_FIX_EARLYCON_MEM=y
|
||||
CONFIG_FRAME_POINTER=y
|
||||
CONFIG_FS_IOMAP=y
|
||||
CONFIG_FS_MBCACHE=y
|
||||
CONFIG_FUNCTION_ALIGNMENT=4
|
||||
CONFIG_FUNCTION_ALIGNMENT_4B=y
|
||||
CONFIG_FWNODE_MDIO=y
|
||||
CONFIG_FW_LOADER_PAGED_BUF=y
|
||||
CONFIG_FW_LOADER_SYSFS=y
|
||||
CONFIG_GCC_SUPPORTS_DYNAMIC_FTRACE_WITH_ARGS=y
|
||||
CONFIG_GENERIC_ALLOCATOR=y
|
||||
CONFIG_GENERIC_ARCH_TOPOLOGY=y
|
||||
CONFIG_GENERIC_BUG=y
|
||||
CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
|
||||
CONFIG_GENERIC_CLOCKEVENTS=y
|
||||
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
|
||||
CONFIG_GENERIC_CPU_AUTOPROBE=y
|
||||
CONFIG_GENERIC_CPU_DEVICES=y
|
||||
CONFIG_GENERIC_CPU_VULNERABILITIES=y
|
||||
CONFIG_GENERIC_CSUM=y
|
||||
CONFIG_GENERIC_EARLY_IOREMAP=y
|
||||
CONFIG_GENERIC_GETTIMEOFDAY=y
|
||||
CONFIG_GENERIC_IDLE_POLL_SETUP=y
|
||||
CONFIG_GENERIC_IOREMAP=y
|
||||
CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y
|
||||
CONFIG_GENERIC_IRQ_SHOW=y
|
||||
CONFIG_GENERIC_IRQ_SHOW_LEVEL=y
|
||||
CONFIG_GENERIC_LIB_DEVMEM_IS_ALLOWED=y
|
||||
CONFIG_GENERIC_MSI_IRQ=y
|
||||
CONFIG_GENERIC_PCI_IOMAP=y
|
||||
CONFIG_GENERIC_PHY=y
|
||||
CONFIG_GENERIC_PINCONF=y
|
||||
CONFIG_GENERIC_PINCTRL_GROUPS=y
|
||||
CONFIG_GENERIC_PINMUX_FUNCTIONS=y
|
||||
CONFIG_GENERIC_SCHED_CLOCK=y
|
||||
CONFIG_GENERIC_SMP_IDLE_THREAD=y
|
||||
CONFIG_GENERIC_STRNCPY_FROM_USER=y
|
||||
CONFIG_GENERIC_STRNLEN_USER=y
|
||||
CONFIG_GENERIC_TIME_VSYSCALL=y
|
||||
CONFIG_GLOB=y
|
||||
CONFIG_GPIO_CDEV=y
|
||||
CONFIG_GPIO_WATCHDOG=y
|
||||
CONFIG_GPIO_WATCHDOG_ARCH_INITCALL=y
|
||||
CONFIG_GRO_CELLS=y
|
||||
CONFIG_HARDIRQS_SW_RESEND=y
|
||||
CONFIG_HAS_DMA=y
|
||||
CONFIG_HAS_IOMEM=y
|
||||
CONFIG_HAS_IOPORT=y
|
||||
CONFIG_HAS_IOPORT_MAP=y
|
||||
CONFIG_HWMON=y
|
||||
CONFIG_HW_RANDOM=y
|
||||
CONFIG_HW_RANDOM_MTK=y
|
||||
CONFIG_I2C=y
|
||||
CONFIG_I2C_BOARDINFO=y
|
||||
CONFIG_I2C_CHARDEV=y
|
||||
CONFIG_I2C_MT65XX=y
|
||||
CONFIG_ICPLUS_PHY=y
|
||||
# CONFIG_IDPF is not set
|
||||
CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
|
||||
CONFIG_INITRAMFS_SOURCE=""
|
||||
CONFIG_IRQCHIP=y
|
||||
CONFIG_IRQ_DOMAIN=y
|
||||
CONFIG_IRQ_DOMAIN_HIERARCHY=y
|
||||
CONFIG_IRQ_FORCED_THREADING=y
|
||||
CONFIG_IRQ_MSI_LIB=y
|
||||
CONFIG_IRQ_TIME_ACCOUNTING=y
|
||||
CONFIG_IRQ_WORK=y
|
||||
CONFIG_JBD2=y
|
||||
CONFIG_JUMP_LABEL=y
|
||||
CONFIG_LEDS_PWM=y
|
||||
CONFIG_LEDS_SMARTRG_LED=y
|
||||
CONFIG_LEDS_TRIGGER_PATTERN=y
|
||||
CONFIG_LIBFDT=y
|
||||
CONFIG_LOCK_DEBUGGING_SUPPORT=y
|
||||
CONFIG_LOCK_SPIN_ON_OWNER=y
|
||||
CONFIG_LRU_GEN_WALKS_MMU=y
|
||||
CONFIG_LZO_COMPRESS=y
|
||||
CONFIG_LZO_DECOMPRESS=y
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
CONFIG_MAXLINEAR_GPHY=y
|
||||
CONFIG_MDIO_AN8855=y
|
||||
CONFIG_MDIO_BUS=y
|
||||
CONFIG_MDIO_DEVICE=y
|
||||
CONFIG_MDIO_DEVRES=y
|
||||
CONFIG_MEDIATEK_2P5GE_PHY=y
|
||||
CONFIG_MEDIATEK_GE_PHY=y
|
||||
CONFIG_MEDIATEK_GE_SOC_PHY=y
|
||||
CONFIG_MEDIATEK_WATCHDOG=y
|
||||
CONFIG_MESSAGE_LOGLEVEL_DEFAULT=7
|
||||
CONFIG_MFD_AIROHA_AN8855=y
|
||||
CONFIG_MFD_CORE=y
|
||||
CONFIG_MFD_SYSCON=y
|
||||
CONFIG_MIGRATION=y
|
||||
CONFIG_MMC=y
|
||||
CONFIG_MMC_BLOCK=y
|
||||
CONFIG_MMC_CQHCI=y
|
||||
CONFIG_MMC_MTK=y
|
||||
CONFIG_MMU_LAZY_TLB_REFCOUNT=y
|
||||
CONFIG_MODULES_TREE_LOOKUP=y
|
||||
CONFIG_MODULES_USE_ELF_RELA=y
|
||||
CONFIG_MTD_NAND_CORE=y
|
||||
CONFIG_MTD_NAND_ECC=y
|
||||
CONFIG_MTD_NAND_ECC_MEDIATEK=y
|
||||
CONFIG_MTD_NAND_ECC_SW_HAMMING=y
|
||||
CONFIG_MTD_NAND_MTK=y
|
||||
CONFIG_MTD_NAND_MTK_BMT=y
|
||||
CONFIG_MTD_PARSER_TRX=y
|
||||
CONFIG_MTD_RAW_NAND=y
|
||||
CONFIG_MTD_SPI_NAND=y
|
||||
CONFIG_MTD_SPI_NOR=y
|
||||
CONFIG_MTD_SPLIT_FIRMWARE=y
|
||||
CONFIG_MTD_SPLIT_FIT_FW=y
|
||||
CONFIG_MTD_SPLIT_MSTC_BOOT=y
|
||||
CONFIG_MTD_UBI=y
|
||||
CONFIG_MTD_UBI_BEB_LIMIT=20
|
||||
CONFIG_MTD_UBI_BLOCK=y
|
||||
CONFIG_MTD_UBI_FASTMAP=y
|
||||
CONFIG_MTD_UBI_NVMEM=y
|
||||
CONFIG_MTD_UBI_WL_THRESHOLD=4096
|
||||
CONFIG_MTD_VIRT_CONCAT=y
|
||||
# CONFIG_MTK_CMDQ is not set
|
||||
CONFIG_MTK_CPUX_TIMER=y
|
||||
# CONFIG_MTK_CQDMA is not set
|
||||
CONFIG_MTK_HSDMA=y
|
||||
CONFIG_MTK_INFRACFG=y
|
||||
CONFIG_MTK_LVTS_THERMAL=y
|
||||
CONFIG_MTK_LVTS_THERMAL_DEBUGFS=y
|
||||
CONFIG_MTK_NET_PHYLIB=y
|
||||
CONFIG_MTK_PMIC_WRAP=y
|
||||
CONFIG_MTK_REGULATOR_COUPLER=y
|
||||
CONFIG_MTK_SCPSYS=y
|
||||
CONFIG_MTK_SCPSYS_PM_DOMAINS=y
|
||||
# CONFIG_MTK_SOCINFO is not set
|
||||
CONFIG_MTK_SOC_THERMAL=y
|
||||
# CONFIG_MTK_SVS is not set
|
||||
CONFIG_MTK_THERMAL=y
|
||||
CONFIG_MTK_TIMER=y
|
||||
# CONFIG_MTK_UART_APDMA is not set
|
||||
CONFIG_MUTEX_SPIN_ON_OWNER=y
|
||||
CONFIG_NEED_DMA_MAP_STATE=y
|
||||
CONFIG_NEED_SG_DMA_LENGTH=y
|
||||
# CONFIG_NET_AIROHA is not set
|
||||
CONFIG_NET_DEVLINK=y
|
||||
CONFIG_NET_DSA=y
|
||||
CONFIG_NET_DSA_AN8855=y
|
||||
CONFIG_NET_DSA_MT7530=y
|
||||
CONFIG_NET_DSA_MT7530_MDIO=y
|
||||
CONFIG_NET_DSA_MT7530_MMIO=y
|
||||
CONFIG_NET_DSA_TAG_MTK=y
|
||||
CONFIG_NET_EGRESS=y
|
||||
CONFIG_NET_FLOW_LIMIT=y
|
||||
CONFIG_NET_INGRESS=y
|
||||
CONFIG_NET_MEDIATEK_SOC=y
|
||||
CONFIG_NET_MEDIATEK_SOC_WED=y
|
||||
CONFIG_NET_SELFTESTS=y
|
||||
CONFIG_NET_VENDOR_MEDIATEK=y
|
||||
CONFIG_NET_XGRESS=y
|
||||
CONFIG_NLS=y
|
||||
CONFIG_NO_HZ_COMMON=y
|
||||
CONFIG_NO_HZ_IDLE=y
|
||||
CONFIG_NR_CPUS=4
|
||||
CONFIG_NVMEM=y
|
||||
CONFIG_NVMEM_AN8855_EFUSE=y
|
||||
CONFIG_NVMEM_BLOCK=y
|
||||
CONFIG_NVMEM_LAYOUTS=y
|
||||
CONFIG_NVMEM_LAYOUT_ADTRAN=y
|
||||
CONFIG_NVMEM_LAYOUT_U_BOOT_ENV=y
|
||||
CONFIG_NVMEM_MTK_EFUSE=y
|
||||
CONFIG_NVMEM_SYSFS=y
|
||||
CONFIG_OF=y
|
||||
CONFIG_OF_ADDRESS=y
|
||||
CONFIG_OF_DYNAMIC=y
|
||||
CONFIG_OF_EARLY_FLATTREE=y
|
||||
CONFIG_OF_FLATTREE=y
|
||||
CONFIG_OF_GPIO=y
|
||||
CONFIG_OF_IRQ=y
|
||||
CONFIG_OF_KOBJ=y
|
||||
CONFIG_OF_MDIO=y
|
||||
CONFIG_OF_OVERLAY=y
|
||||
CONFIG_OF_RESOLVE=y
|
||||
CONFIG_PADATA=y
|
||||
CONFIG_PAGE_POOL=y
|
||||
CONFIG_PAGE_POOL_STATS=y
|
||||
CONFIG_PAGE_SIZE_LESS_THAN_256KB=y
|
||||
CONFIG_PAGE_SIZE_LESS_THAN_64KB=y
|
||||
CONFIG_PARTITION_PERCPU=y
|
||||
CONFIG_PCI=y
|
||||
CONFIG_PCIEAER=y
|
||||
CONFIG_PCIEASPM=y
|
||||
# CONFIG_PCIEASPM_DEFAULT is not set
|
||||
CONFIG_PCIEASPM_PERFORMANCE=y
|
||||
# CONFIG_PCIEASPM_POWERSAVE is not set
|
||||
# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set
|
||||
CONFIG_PCIEPORTBUS=y
|
||||
# CONFIG_PCIE_MEDIATEK is not set
|
||||
CONFIG_PCIE_MEDIATEK_GEN3=y
|
||||
CONFIG_PCIE_PME=y
|
||||
CONFIG_PCI_DEBUG=y
|
||||
CONFIG_PCI_DOMAINS=y
|
||||
CONFIG_PCI_DOMAINS_GENERIC=y
|
||||
CONFIG_PCI_MSI=y
|
||||
CONFIG_PCS_MTK_LYNXI=y
|
||||
CONFIG_PCS_MTK_USXGMII=y
|
||||
CONFIG_PERF_EVENTS=y
|
||||
CONFIG_PER_VMA_LOCK=y
|
||||
CONFIG_PGTABLE_LEVELS=3
|
||||
CONFIG_PHYLIB=y
|
||||
CONFIG_PHYLIB_LEDS=y
|
||||
CONFIG_PHYLINK=y
|
||||
CONFIG_PHYS_ADDR_T_64BIT=y
|
||||
# CONFIG_PHY_MTK_DP is not set
|
||||
# CONFIG_PHY_MTK_MIPI_CSI_0_5 is not set
|
||||
# CONFIG_PHY_MTK_PCIE is not set
|
||||
CONFIG_PHY_MTK_TPHY=y
|
||||
# CONFIG_PHY_MTK_UFS is not set
|
||||
CONFIG_PHY_MTK_XFI_TPHY=y
|
||||
CONFIG_PHY_MTK_XSPHY=y
|
||||
CONFIG_PINCTRL=y
|
||||
# CONFIG_PINCTRL_MT2712 is not set
|
||||
# CONFIG_PINCTRL_MT6765 is not set
|
||||
# CONFIG_PINCTRL_MT6795 is not set
|
||||
# CONFIG_PINCTRL_MT6797 is not set
|
||||
# CONFIG_PINCTRL_MT7622 is not set
|
||||
CONFIG_PINCTRL_MT7981=y
|
||||
CONFIG_PINCTRL_MT7986=y
|
||||
CONFIG_PINCTRL_MT7987=y
|
||||
CONFIG_PINCTRL_MT7988=y
|
||||
# CONFIG_PINCTRL_MT8173 is not set
|
||||
# CONFIG_PINCTRL_MT8183 is not set
|
||||
# CONFIG_PINCTRL_MT8186 is not set
|
||||
# CONFIG_PINCTRL_MT8188 is not set
|
||||
# CONFIG_PINCTRL_MT8516 is not set
|
||||
CONFIG_PINCTRL_MTK_MOORE=y
|
||||
CONFIG_PINCTRL_MTK_V2=y
|
||||
# CONFIG_PINCTRL_SINGLE is not set
|
||||
CONFIG_PM=y
|
||||
CONFIG_PM_CLK=y
|
||||
CONFIG_PM_DEVFREQ=y
|
||||
CONFIG_PM_DEVFREQ_EVENT=y
|
||||
CONFIG_PM_GENERIC_DOMAINS=y
|
||||
CONFIG_PM_GENERIC_DOMAINS_OF=y
|
||||
CONFIG_PM_OPP=y
|
||||
CONFIG_POLYNOMIAL=y
|
||||
CONFIG_POSIX_CPU_TIMERS_TASK_WORK=y
|
||||
CONFIG_POWER_RESET=y
|
||||
CONFIG_POWER_RESET_SYSCON=y
|
||||
CONFIG_POWER_SUPPLY=y
|
||||
CONFIG_PRINTK_TIME=y
|
||||
CONFIG_PSTORE=y
|
||||
CONFIG_PSTORE_COMPRESS=y
|
||||
CONFIG_PSTORE_CONSOLE=y
|
||||
CONFIG_PSTORE_PMSG=y
|
||||
CONFIG_PSTORE_RAM=y
|
||||
CONFIG_PTP_1588_CLOCK_OPTIONAL=y
|
||||
CONFIG_PWM=y
|
||||
CONFIG_PWM_MEDIATEK=y
|
||||
# CONFIG_PWM_MTK_DISP is not set
|
||||
CONFIG_QUEUED_RWLOCKS=y
|
||||
CONFIG_QUEUED_SPINLOCKS=y
|
||||
CONFIG_RANDOMIZE_BASE=y
|
||||
CONFIG_RANDOMIZE_MODULE_REGION_FULL=y
|
||||
CONFIG_RANDSTRUCT_NONE=y
|
||||
CONFIG_RAS=y
|
||||
CONFIG_RATIONAL=y
|
||||
# CONFIG_RAVE_SP_CORE is not set
|
||||
CONFIG_REALTEK_PHY=y
|
||||
CONFIG_REALTEK_PHY_HWMON=y
|
||||
CONFIG_REED_SOLOMON=y
|
||||
CONFIG_REED_SOLOMON_DEC8=y
|
||||
CONFIG_REED_SOLOMON_ENC8=y
|
||||
CONFIG_REGMAP=y
|
||||
CONFIG_REGMAP_I2C=y
|
||||
CONFIG_REGMAP_MMIO=y
|
||||
CONFIG_REGULATOR=y
|
||||
CONFIG_REGULATOR_FIXED_VOLTAGE=y
|
||||
CONFIG_REGULATOR_MT6380=y
|
||||
CONFIG_REGULATOR_RT5190A=y
|
||||
CONFIG_RELOCATABLE=y
|
||||
CONFIG_RESET_CONTROLLER=y
|
||||
CONFIG_RESET_TI_SYSCON=y
|
||||
CONFIG_RFS_ACCEL=y
|
||||
CONFIG_RODATA_FULL_DEFAULT_ENABLED=y
|
||||
CONFIG_RPS=y
|
||||
CONFIG_RTC_CLASS=y
|
||||
CONFIG_RTC_DRV_MT7622=y
|
||||
CONFIG_RTC_I2C_AND_SPI=y
|
||||
CONFIG_RTL8261N_PHY=y
|
||||
# CONFIG_RTL8367S_GSW is not set
|
||||
CONFIG_RWSEM_SPIN_ON_OWNER=y
|
||||
CONFIG_SCHED_MC=y
|
||||
CONFIG_SCSI=y
|
||||
CONFIG_SCSI_COMMON=y
|
||||
# CONFIG_SECTION_MISMATCH_WARN_ONLY is not set
|
||||
CONFIG_SERIAL_8250_FSL=y
|
||||
CONFIG_SERIAL_8250_MT6577=y
|
||||
CONFIG_SERIAL_8250_NR_UARTS=3
|
||||
CONFIG_SERIAL_8250_RUNTIME_UARTS=3
|
||||
CONFIG_SERIAL_DEV_BUS=y
|
||||
CONFIG_SERIAL_DEV_CTRL_TTYPORT=y
|
||||
CONFIG_SERIAL_MCTRL_GPIO=y
|
||||
CONFIG_SERIAL_OF_PLATFORM=y
|
||||
CONFIG_SGL_ALLOC=y
|
||||
CONFIG_SG_POOL=y
|
||||
CONFIG_SMP=y
|
||||
CONFIG_SOCK_RX_QUEUE_MAPPING=y
|
||||
CONFIG_SOC_BUS=y
|
||||
CONFIG_SOFTIRQ_ON_OWN_STACK=y
|
||||
CONFIG_SPARSEMEM=y
|
||||
CONFIG_SPARSEMEM_EXTREME=y
|
||||
CONFIG_SPARSEMEM_VMEMMAP=y
|
||||
CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
|
||||
CONFIG_SPARSE_IRQ=y
|
||||
CONFIG_SPI=y
|
||||
CONFIG_SPI_DYNAMIC=y
|
||||
CONFIG_SPI_MASTER=y
|
||||
CONFIG_SPI_MEM=y
|
||||
CONFIG_SPI_MT65XX=y
|
||||
# CONFIG_SPI_MTK_NOR is not set
|
||||
CONFIG_SPI_MTK_SNFI=y
|
||||
CONFIG_SPLIT_PMD_PTLOCKS=y
|
||||
CONFIG_SPLIT_PTE_PTLOCKS=y
|
||||
CONFIG_SWIOTLB=y
|
||||
CONFIG_SWPHY=y
|
||||
CONFIG_SYSCTL_EXCEPTION_TRACE=y
|
||||
# CONFIG_TEST_FPU is not set
|
||||
CONFIG_THERMAL=y
|
||||
CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
|
||||
CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
|
||||
CONFIG_THERMAL_GOV_BANG_BANG=y
|
||||
CONFIG_THERMAL_GOV_FAIR_SHARE=y
|
||||
CONFIG_THERMAL_GOV_STEP_WISE=y
|
||||
CONFIG_THERMAL_GOV_USER_SPACE=y
|
||||
CONFIG_THERMAL_HWMON=y
|
||||
CONFIG_THERMAL_OF=y
|
||||
CONFIG_THREAD_INFO_IN_TASK=y
|
||||
CONFIG_TICK_CPU_ACCOUNTING=y
|
||||
CONFIG_TIMER_OF=y
|
||||
CONFIG_TIMER_PROBE=y
|
||||
CONFIG_TRACE_IRQFLAGS_NMI_SUPPORT=y
|
||||
CONFIG_TREE_RCU=y
|
||||
CONFIG_TREE_SRCU=y
|
||||
CONFIG_UBIFS_FS=y
|
||||
# CONFIG_UCLAMP_TASK is not set
|
||||
CONFIG_UIMAGE_FIT_BLK=y
|
||||
# CONFIG_UNMAP_KERNEL_AT_EL0 is not set
|
||||
CONFIG_USB_SUPPORT=y
|
||||
CONFIG_USER_STACKTRACE_SUPPORT=y
|
||||
CONFIG_VDSO_GETRANDOM=y
|
||||
CONFIG_VMAP_STACK=y
|
||||
CONFIG_WATCHDOG_CORE=y
|
||||
CONFIG_WATCHDOG_PRETIMEOUT_DEFAULT_GOV_PANIC=y
|
||||
CONFIG_WATCHDOG_PRETIMEOUT_GOV=y
|
||||
# CONFIG_WATCHDOG_PRETIMEOUT_GOV_NOOP is not set
|
||||
CONFIG_WATCHDOG_PRETIMEOUT_GOV_PANIC=y
|
||||
CONFIG_WATCHDOG_PRETIMEOUT_GOV_SEL=m
|
||||
CONFIG_WATCHDOG_SYSFS=y
|
||||
CONFIG_XPS=y
|
||||
CONFIG_XXHASH=y
|
||||
CONFIG_ZLIB_DEFLATE=y
|
||||
CONFIG_ZLIB_INFLATE=y
|
||||
CONFIG_ZONE_DMA32=y
|
||||
CONFIG_ZSTD_COMMON=y
|
||||
CONFIG_ZSTD_COMPRESS=y
|
||||
CONFIG_ZSTD_DECOMPRESS=y
|
||||
@ -1,516 +0,0 @@
|
||||
CONFIG_64BIT=y
|
||||
# CONFIG_AHCI_MTK is not set
|
||||
# CONFIG_AIROHA_EN8801SC_PHY is not set
|
||||
# CONFIG_AIR_AN8855_PHY is not set
|
||||
CONFIG_AQUANTIA_PHY=y
|
||||
CONFIG_ARCH_BINFMT_ELF_EXTRA_PHDRS=y
|
||||
CONFIG_ARCH_CORRECT_STACKTRACE_ON_KRETPROBE=y
|
||||
CONFIG_ARCH_DEFAULT_KEXEC_IMAGE_VERIFY_SIG=y
|
||||
CONFIG_ARCH_DMA_ADDR_T_64BIT=y
|
||||
CONFIG_ARCH_FORCE_MAX_ORDER=10
|
||||
CONFIG_ARCH_KEEP_MEMBLOCK=y
|
||||
CONFIG_ARCH_MEDIATEK=y
|
||||
CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y
|
||||
CONFIG_ARCH_MMAP_RND_BITS=18
|
||||
CONFIG_ARCH_MMAP_RND_BITS_MAX=24
|
||||
CONFIG_ARCH_MMAP_RND_BITS_MIN=18
|
||||
CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=11
|
||||
CONFIG_ARCH_PKEY_BITS=3
|
||||
CONFIG_ARCH_PROC_KCORE_TEXT=y
|
||||
CONFIG_ARCH_SPARSEMEM_ENABLE=y
|
||||
CONFIG_ARCH_STACKWALK=y
|
||||
CONFIG_ARCH_SUSPEND_POSSIBLE=y
|
||||
CONFIG_ARCH_WANTS_EXECMEM_LATE=y
|
||||
CONFIG_ARCH_WANTS_NO_INSTR=y
|
||||
CONFIG_ARCH_WANTS_THP_SWAP=y
|
||||
CONFIG_ARM64=y
|
||||
CONFIG_ARM64_4K_PAGES=y
|
||||
CONFIG_ARM64_ERRATUM_843419=y
|
||||
CONFIG_ARM64_LD_HAS_FIX_ERRATUM_843419=y
|
||||
CONFIG_ARM64_PA_BITS=48
|
||||
CONFIG_ARM64_PA_BITS_48=y
|
||||
CONFIG_ARM64_PLATFORM_DEVICES=y
|
||||
CONFIG_ARM64_TAGGED_ADDR_ABI=y
|
||||
CONFIG_ARM64_VA_BITS=39
|
||||
CONFIG_ARM64_VA_BITS_39=y
|
||||
# CONFIG_ARM64_VA_BITS_52 is not set
|
||||
CONFIG_ARM_AMBA=y
|
||||
CONFIG_ARM_ARCH_TIMER=y
|
||||
CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
|
||||
CONFIG_ARM_GIC=y
|
||||
CONFIG_ARM_GIC_V2M=y
|
||||
CONFIG_ARM_GIC_V3=y
|
||||
CONFIG_ARM_GIC_V3_ITS=y
|
||||
CONFIG_ARM_MEDIATEK_CPUFREQ=y
|
||||
CONFIG_ARM_PMU=y
|
||||
CONFIG_ARM_PMUV3=y
|
||||
CONFIG_ARM_PSCI_FW=y
|
||||
CONFIG_ATA=y
|
||||
CONFIG_AUDIT_ARCH_COMPAT_GENERIC=y
|
||||
CONFIG_BLK_DEV_LOOP=y
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
CONFIG_BLK_MQ_PCI=y
|
||||
CONFIG_BLK_PM=y
|
||||
CONFIG_BLOCK_NOTIFIERS=y
|
||||
CONFIG_BSD_PROCESS_ACCT=y
|
||||
CONFIG_BSD_PROCESS_ACCT_V3=y
|
||||
CONFIG_BUFFER_HEAD=y
|
||||
CONFIG_BUILTIN_RETURN_ADDRESS_STRIPS_PAC=y
|
||||
CONFIG_CC_HAVE_SHADOW_CALL_STACK=y
|
||||
CONFIG_CC_HAVE_STACKPROTECTOR_SYSREG=y
|
||||
CONFIG_CLKSRC_MMIO=y
|
||||
CONFIG_CLONE_BACKWARDS=y
|
||||
# CONFIG_CMDLINE_OVERRIDE is not set
|
||||
CONFIG_COMMON_CLK=y
|
||||
CONFIG_COMMON_CLK_MEDIATEK=y
|
||||
CONFIG_COMMON_CLK_MT2712=y
|
||||
# CONFIG_COMMON_CLK_MT2712_BDPSYS is not set
|
||||
# CONFIG_COMMON_CLK_MT2712_IMGSYS is not set
|
||||
# CONFIG_COMMON_CLK_MT2712_JPGDECSYS is not set
|
||||
# CONFIG_COMMON_CLK_MT2712_MFGCFG is not set
|
||||
# CONFIG_COMMON_CLK_MT2712_MMSYS is not set
|
||||
# CONFIG_COMMON_CLK_MT2712_VDECSYS is not set
|
||||
# CONFIG_COMMON_CLK_MT2712_VENCSYS is not set
|
||||
# CONFIG_COMMON_CLK_MT6779 is not set
|
||||
# CONFIG_COMMON_CLK_MT6795 is not set
|
||||
# CONFIG_COMMON_CLK_MT6797 is not set
|
||||
CONFIG_COMMON_CLK_MT7622=y
|
||||
CONFIG_COMMON_CLK_MT7622_AUDSYS=y
|
||||
CONFIG_COMMON_CLK_MT7622_ETHSYS=y
|
||||
CONFIG_COMMON_CLK_MT7622_HIFSYS=y
|
||||
# CONFIG_COMMON_CLK_MT7981 is not set
|
||||
# CONFIG_COMMON_CLK_MT7986 is not set
|
||||
# CONFIG_COMMON_CLK_MT7987 is not set
|
||||
# CONFIG_COMMON_CLK_MT7988 is not set
|
||||
# CONFIG_COMMON_CLK_MT8173 is not set
|
||||
# CONFIG_COMMON_CLK_MT8183 is not set
|
||||
# CONFIG_COMMON_CLK_MT8186 is not set
|
||||
# CONFIG_COMMON_CLK_MT8195 is not set
|
||||
# CONFIG_COMMON_CLK_MT8365 is not set
|
||||
# CONFIG_COMMON_CLK_MT8516 is not set
|
||||
CONFIG_COMPACT_UNEVICTABLE_DEFAULT=1
|
||||
CONFIG_COMPAT_32BIT_TIME=y
|
||||
CONFIG_CONFIGFS_FS=y
|
||||
CONFIG_CONSOLE_LOGLEVEL_DEFAULT=15
|
||||
CONFIG_CONTEXT_TRACKING=y
|
||||
CONFIG_CONTEXT_TRACKING_IDLE=y
|
||||
CONFIG_CPU_FREQ=y
|
||||
CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
|
||||
# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
|
||||
CONFIG_CPU_FREQ_GOV_ATTR_SET=y
|
||||
CONFIG_CPU_FREQ_GOV_COMMON=y
|
||||
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
|
||||
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
|
||||
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
|
||||
CONFIG_CPU_FREQ_GOV_POWERSAVE=y
|
||||
CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
|
||||
CONFIG_CPU_FREQ_GOV_USERSPACE=y
|
||||
CONFIG_CPU_FREQ_STAT=y
|
||||
CONFIG_CPU_LITTLE_ENDIAN=y
|
||||
CONFIG_CPU_MITIGATIONS=y
|
||||
CONFIG_CPU_RMAP=y
|
||||
CONFIG_CPU_THERMAL=y
|
||||
CONFIG_CRC16=y
|
||||
CONFIG_CRC_CCITT=y
|
||||
CONFIG_CRC_ITU_T=y
|
||||
CONFIG_CRYPTO_AES_ARM64=y
|
||||
CONFIG_CRYPTO_AES_ARM64_CE=y
|
||||
CONFIG_CRYPTO_AES_ARM64_CE_BLK=y
|
||||
CONFIG_CRYPTO_AES_ARM64_CE_CCM=y
|
||||
CONFIG_CRYPTO_CMAC=y
|
||||
CONFIG_CRYPTO_CRC32=y
|
||||
CONFIG_CRYPTO_CRC32C=y
|
||||
CONFIG_CRYPTO_CRYPTD=y
|
||||
CONFIG_CRYPTO_DEFLATE=y
|
||||
CONFIG_CRYPTO_DRBG=y
|
||||
CONFIG_CRYPTO_DRBG_HMAC=y
|
||||
CONFIG_CRYPTO_DRBG_MENU=y
|
||||
CONFIG_CRYPTO_ECB=y
|
||||
CONFIG_CRYPTO_ECC=y
|
||||
CONFIG_CRYPTO_ECDH=y
|
||||
CONFIG_CRYPTO_GHASH_ARM64_CE=y
|
||||
CONFIG_CRYPTO_HASH_INFO=y
|
||||
CONFIG_CRYPTO_HMAC=y
|
||||
CONFIG_CRYPTO_JITTERENTROPY=y
|
||||
CONFIG_CRYPTO_JITTERENTROPY_MEMORY_BLOCKS=64
|
||||
CONFIG_CRYPTO_JITTERENTROPY_MEMORY_BLOCKSIZE=32
|
||||
CONFIG_CRYPTO_JITTERENTROPY_OSR=1
|
||||
CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y
|
||||
CONFIG_CRYPTO_LIB_GF128MUL=y
|
||||
CONFIG_CRYPTO_LIB_SHA256=y
|
||||
CONFIG_CRYPTO_LIB_UTILS=y
|
||||
CONFIG_CRYPTO_LZO=y
|
||||
CONFIG_CRYPTO_RNG=y
|
||||
CONFIG_CRYPTO_RNG_DEFAULT=y
|
||||
CONFIG_CRYPTO_SHA256=y
|
||||
CONFIG_CRYPTO_SHA256_ARM64=y
|
||||
CONFIG_CRYPTO_SHA2_ARM64_CE=y
|
||||
CONFIG_CRYPTO_SHA3=y
|
||||
CONFIG_CRYPTO_SHA512=y
|
||||
CONFIG_CRYPTO_SM4=y
|
||||
CONFIG_CRYPTO_SM4_ARM64_CE_BLK=y
|
||||
CONFIG_CRYPTO_SM4_ARM64_CE_CCM=y
|
||||
CONFIG_CRYPTO_SM4_ARM64_CE_GCM=y
|
||||
CONFIG_CRYPTO_ZSTD=y
|
||||
CONFIG_DCACHE_WORD_ACCESS=y
|
||||
CONFIG_DEBUG_INFO=y
|
||||
CONFIG_DEBUG_MISC=y
|
||||
CONFIG_DMADEVICES=y
|
||||
CONFIG_DMA_BOUNCE_UNALIGNED_KMALLOC=y
|
||||
CONFIG_DMA_DIRECT_REMAP=y
|
||||
CONFIG_DMA_ENGINE=y
|
||||
CONFIG_DMA_NEED_SYNC=y
|
||||
CONFIG_DMA_OF=y
|
||||
CONFIG_DMA_VIRTUAL_CHANNELS=y
|
||||
CONFIG_DTC=y
|
||||
CONFIG_EDAC_SUPPORT=y
|
||||
CONFIG_EINT_MTK=y
|
||||
CONFIG_EXCLUSIVE_SYSTEM_RAM=y
|
||||
CONFIG_EXT4_FS=y
|
||||
CONFIG_F2FS_FS=y
|
||||
CONFIG_FIXED_PHY=y
|
||||
CONFIG_FIX_EARLYCON_MEM=y
|
||||
CONFIG_FRAME_POINTER=y
|
||||
CONFIG_FS_IOMAP=y
|
||||
CONFIG_FS_MBCACHE=y
|
||||
CONFIG_FUNCTION_ALIGNMENT=4
|
||||
CONFIG_FUNCTION_ALIGNMENT_4B=y
|
||||
CONFIG_FWNODE_MDIO=y
|
||||
CONFIG_FW_LOADER_PAGED_BUF=y
|
||||
CONFIG_FW_LOADER_SYSFS=y
|
||||
CONFIG_GCC_SUPPORTS_DYNAMIC_FTRACE_WITH_ARGS=y
|
||||
CONFIG_GENERIC_ALLOCATOR=y
|
||||
CONFIG_GENERIC_ARCH_TOPOLOGY=y
|
||||
CONFIG_GENERIC_BUG=y
|
||||
CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
|
||||
CONFIG_GENERIC_CLOCKEVENTS=y
|
||||
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
|
||||
CONFIG_GENERIC_CPU_AUTOPROBE=y
|
||||
CONFIG_GENERIC_CPU_DEVICES=y
|
||||
CONFIG_GENERIC_CPU_VULNERABILITIES=y
|
||||
CONFIG_GENERIC_CSUM=y
|
||||
CONFIG_GENERIC_EARLY_IOREMAP=y
|
||||
CONFIG_GENERIC_GETTIMEOFDAY=y
|
||||
CONFIG_GENERIC_IDLE_POLL_SETUP=y
|
||||
CONFIG_GENERIC_IOREMAP=y
|
||||
CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y
|
||||
CONFIG_GENERIC_IRQ_SHOW=y
|
||||
CONFIG_GENERIC_IRQ_SHOW_LEVEL=y
|
||||
CONFIG_GENERIC_LIB_DEVMEM_IS_ALLOWED=y
|
||||
CONFIG_GENERIC_MSI_IRQ=y
|
||||
CONFIG_GENERIC_PCI_IOMAP=y
|
||||
CONFIG_GENERIC_PHY=y
|
||||
CONFIG_GENERIC_PINCONF=y
|
||||
CONFIG_GENERIC_PINCTRL_GROUPS=y
|
||||
CONFIG_GENERIC_PINMUX_FUNCTIONS=y
|
||||
CONFIG_GENERIC_SCHED_CLOCK=y
|
||||
CONFIG_GENERIC_SMP_IDLE_THREAD=y
|
||||
CONFIG_GENERIC_STRNCPY_FROM_USER=y
|
||||
CONFIG_GENERIC_STRNLEN_USER=y
|
||||
CONFIG_GENERIC_TIME_VSYSCALL=y
|
||||
CONFIG_GLOB=y
|
||||
CONFIG_GPIO_CDEV=y
|
||||
CONFIG_GRO_CELLS=y
|
||||
CONFIG_HARDIRQS_SW_RESEND=y
|
||||
CONFIG_HAS_DMA=y
|
||||
CONFIG_HAS_IOMEM=y
|
||||
CONFIG_HAS_IOPORT=y
|
||||
CONFIG_HAS_IOPORT_MAP=y
|
||||
CONFIG_HWMON=y
|
||||
CONFIG_HW_RANDOM=y
|
||||
CONFIG_HW_RANDOM_MTK=y
|
||||
CONFIG_I2C=y
|
||||
CONFIG_I2C_BOARDINFO=y
|
||||
CONFIG_I2C_CHARDEV=y
|
||||
CONFIG_I2C_MT65XX=y
|
||||
CONFIG_ICPLUS_PHY=y
|
||||
# CONFIG_IDPF is not set
|
||||
CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
|
||||
CONFIG_INITRAMFS_SOURCE=""
|
||||
CONFIG_INTEL_XWAY_PHY=y
|
||||
CONFIG_IRQCHIP=y
|
||||
CONFIG_IRQ_DOMAIN=y
|
||||
CONFIG_IRQ_DOMAIN_HIERARCHY=y
|
||||
CONFIG_IRQ_FORCED_THREADING=y
|
||||
CONFIG_IRQ_MSI_LIB=y
|
||||
CONFIG_IRQ_TIME_ACCOUNTING=y
|
||||
CONFIG_IRQ_WORK=y
|
||||
CONFIG_JBD2=y
|
||||
CONFIG_JUMP_LABEL=y
|
||||
CONFIG_LEDS_SMARTRG_LED=y
|
||||
CONFIG_LIBFDT=y
|
||||
CONFIG_LOCK_DEBUGGING_SUPPORT=y
|
||||
CONFIG_LOCK_SPIN_ON_OWNER=y
|
||||
CONFIG_LRU_GEN_WALKS_MMU=y
|
||||
CONFIG_LZO_COMPRESS=y
|
||||
CONFIG_LZO_DECOMPRESS=y
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
CONFIG_MAXLINEAR_GPHY=y
|
||||
CONFIG_MDIO_BUS=y
|
||||
CONFIG_MDIO_DEVICE=y
|
||||
CONFIG_MDIO_DEVRES=y
|
||||
# CONFIG_MEDIATEK_2P5GE_PHY is not set
|
||||
CONFIG_MEDIATEK_GE_PHY=y
|
||||
# CONFIG_MEDIATEK_GE_SOC_PHY is not set
|
||||
CONFIG_MEDIATEK_WATCHDOG=y
|
||||
CONFIG_MESSAGE_LOGLEVEL_DEFAULT=7
|
||||
# CONFIG_MFD_AIROHA_AN8855 is not set
|
||||
CONFIG_MFD_SYSCON=y
|
||||
CONFIG_MIGRATION=y
|
||||
# CONFIG_MITIGATE_SPECTRE_BRANCH_HISTORY is not set
|
||||
CONFIG_MMC=y
|
||||
CONFIG_MMC_BLOCK=y
|
||||
CONFIG_MMC_CQHCI=y
|
||||
CONFIG_MMC_MTK=y
|
||||
CONFIG_MMU_LAZY_TLB_REFCOUNT=y
|
||||
CONFIG_MODULES_TREE_LOOKUP=y
|
||||
CONFIG_MODULES_USE_ELF_RELA=y
|
||||
CONFIG_MTD_NAND_CORE=y
|
||||
CONFIG_MTD_NAND_ECC=y
|
||||
CONFIG_MTD_NAND_ECC_MEDIATEK=y
|
||||
CONFIG_MTD_NAND_ECC_SW_HAMMING=y
|
||||
CONFIG_MTD_NAND_MTK=y
|
||||
CONFIG_MTD_NAND_MTK_BMT=y
|
||||
CONFIG_MTD_PARSER_TRX=y
|
||||
CONFIG_MTD_RAW_NAND=y
|
||||
CONFIG_MTD_SPI_NAND=y
|
||||
CONFIG_MTD_SPI_NOR=y
|
||||
CONFIG_MTD_SPI_NOR_USE_VARIABLE_ERASE=y
|
||||
CONFIG_MTD_SPLIT_FIRMWARE=y
|
||||
CONFIG_MTD_SPLIT_FIT_FW=y
|
||||
CONFIG_MTD_UBI=y
|
||||
CONFIG_MTD_UBI_BEB_LIMIT=20
|
||||
CONFIG_MTD_UBI_BLOCK=y
|
||||
CONFIG_MTD_UBI_FASTMAP=y
|
||||
CONFIG_MTD_UBI_NVMEM=y
|
||||
CONFIG_MTD_UBI_WL_THRESHOLD=4096
|
||||
# CONFIG_MTK_CMDQ is not set
|
||||
CONFIG_MTK_CPUX_TIMER=y
|
||||
# CONFIG_MTK_CQDMA is not set
|
||||
CONFIG_MTK_HSDMA=y
|
||||
CONFIG_MTK_INFRACFG=y
|
||||
# CONFIG_MTK_LVTS_THERMAL is not set
|
||||
CONFIG_MTK_NET_PHYLIB=y
|
||||
CONFIG_MTK_PMIC_WRAP=y
|
||||
CONFIG_MTK_REGULATOR_COUPLER=y
|
||||
CONFIG_MTK_SCPSYS=y
|
||||
CONFIG_MTK_SCPSYS_PM_DOMAINS=y
|
||||
# CONFIG_MTK_SOCINFO is not set
|
||||
CONFIG_MTK_SOC_THERMAL=y
|
||||
# CONFIG_MTK_SVS is not set
|
||||
CONFIG_MTK_THERMAL=y
|
||||
CONFIG_MTK_TIMER=y
|
||||
# CONFIG_MTK_UART_APDMA is not set
|
||||
CONFIG_MUTEX_SPIN_ON_OWNER=y
|
||||
CONFIG_NEED_DMA_MAP_STATE=y
|
||||
CONFIG_NEED_SG_DMA_LENGTH=y
|
||||
# CONFIG_NET_AIROHA is not set
|
||||
CONFIG_NET_DEVLINK=y
|
||||
CONFIG_NET_DSA=y
|
||||
CONFIG_NET_DSA_MT7530=y
|
||||
CONFIG_NET_DSA_MT7530_MDIO=y
|
||||
# CONFIG_NET_DSA_MT7530_MMIO is not set
|
||||
CONFIG_NET_DSA_TAG_MTK=y
|
||||
CONFIG_NET_EGRESS=y
|
||||
CONFIG_NET_FLOW_LIMIT=y
|
||||
CONFIG_NET_INGRESS=y
|
||||
CONFIG_NET_MEDIATEK_SOC=y
|
||||
CONFIG_NET_MEDIATEK_SOC_WED=y
|
||||
CONFIG_NET_SELFTESTS=y
|
||||
CONFIG_NET_VENDOR_MEDIATEK=y
|
||||
CONFIG_NET_XGRESS=y
|
||||
CONFIG_NLS=y
|
||||
CONFIG_NO_HZ_COMMON=y
|
||||
CONFIG_NO_HZ_IDLE=y
|
||||
CONFIG_NR_CPUS=2
|
||||
CONFIG_NVMEM=y
|
||||
CONFIG_NVMEM_BLOCK=y
|
||||
CONFIG_NVMEM_LAYOUTS=y
|
||||
CONFIG_NVMEM_LAYOUT_ADTRAN=y
|
||||
CONFIG_NVMEM_MTK_EFUSE=y
|
||||
CONFIG_NVMEM_SYSFS=y
|
||||
CONFIG_OF=y
|
||||
CONFIG_OF_ADDRESS=y
|
||||
CONFIG_OF_DYNAMIC=y
|
||||
CONFIG_OF_EARLY_FLATTREE=y
|
||||
CONFIG_OF_FLATTREE=y
|
||||
CONFIG_OF_GPIO=y
|
||||
CONFIG_OF_IRQ=y
|
||||
CONFIG_OF_KOBJ=y
|
||||
CONFIG_OF_MDIO=y
|
||||
CONFIG_OF_OVERLAY=y
|
||||
CONFIG_OF_RESOLVE=y
|
||||
CONFIG_PADATA=y
|
||||
CONFIG_PAGE_POOL=y
|
||||
CONFIG_PAGE_POOL_STATS=y
|
||||
CONFIG_PAGE_SIZE_LESS_THAN_256KB=y
|
||||
CONFIG_PAGE_SIZE_LESS_THAN_64KB=y
|
||||
CONFIG_PARTITION_PERCPU=y
|
||||
CONFIG_PCI=y
|
||||
CONFIG_PCIEAER=y
|
||||
CONFIG_PCIEASPM=y
|
||||
# CONFIG_PCIEASPM_DEFAULT is not set
|
||||
CONFIG_PCIEASPM_PERFORMANCE=y
|
||||
# CONFIG_PCIEASPM_POWERSAVE is not set
|
||||
# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set
|
||||
CONFIG_PCIEPORTBUS=y
|
||||
CONFIG_PCIE_MEDIATEK=y
|
||||
CONFIG_PCIE_PME=y
|
||||
CONFIG_PCI_DEBUG=y
|
||||
CONFIG_PCI_DOMAINS=y
|
||||
CONFIG_PCI_DOMAINS_GENERIC=y
|
||||
CONFIG_PCI_MSI=y
|
||||
CONFIG_PCS_MTK_LYNXI=y
|
||||
CONFIG_PERF_EVENTS=y
|
||||
CONFIG_PER_VMA_LOCK=y
|
||||
CONFIG_PGTABLE_LEVELS=3
|
||||
CONFIG_PHYLIB=y
|
||||
CONFIG_PHYLIB_LEDS=y
|
||||
CONFIG_PHYLINK=y
|
||||
CONFIG_PHYS_ADDR_T_64BIT=y
|
||||
# CONFIG_PHY_MTK_DP is not set
|
||||
# CONFIG_PHY_MTK_MIPI_CSI_0_5 is not set
|
||||
# CONFIG_PHY_MTK_PCIE is not set
|
||||
CONFIG_PHY_MTK_TPHY=y
|
||||
# CONFIG_PHY_MTK_UFS is not set
|
||||
# CONFIG_PHY_MTK_XSPHY is not set
|
||||
CONFIG_PINCTRL=y
|
||||
# CONFIG_PINCTRL_MT2712 is not set
|
||||
# CONFIG_PINCTRL_MT6765 is not set
|
||||
# CONFIG_PINCTRL_MT6795 is not set
|
||||
# CONFIG_PINCTRL_MT6797 is not set
|
||||
CONFIG_PINCTRL_MT7622=y
|
||||
# CONFIG_PINCTRL_MT7981 is not set
|
||||
# CONFIG_PINCTRL_MT7986 is not set
|
||||
# CONFIG_PINCTRL_MT7987 is not set
|
||||
# CONFIG_PINCTRL_MT7988 is not set
|
||||
# CONFIG_PINCTRL_MT8173 is not set
|
||||
# CONFIG_PINCTRL_MT8183 is not set
|
||||
# CONFIG_PINCTRL_MT8186 is not set
|
||||
# CONFIG_PINCTRL_MT8188 is not set
|
||||
# CONFIG_PINCTRL_MT8516 is not set
|
||||
CONFIG_PINCTRL_MTK_MOORE=y
|
||||
CONFIG_PINCTRL_MTK_V2=y
|
||||
CONFIG_PM=y
|
||||
CONFIG_PM_CLK=y
|
||||
CONFIG_PM_GENERIC_DOMAINS=y
|
||||
CONFIG_PM_GENERIC_DOMAINS_OF=y
|
||||
CONFIG_PM_OPP=y
|
||||
CONFIG_POLYNOMIAL=y
|
||||
CONFIG_POSIX_CPU_TIMERS_TASK_WORK=y
|
||||
CONFIG_POWER_RESET=y
|
||||
CONFIG_POWER_RESET_SYSCON=y
|
||||
CONFIG_POWER_SUPPLY=y
|
||||
CONFIG_PRINTK_TIME=y
|
||||
CONFIG_PSTORE=y
|
||||
CONFIG_PSTORE_COMPRESS=y
|
||||
CONFIG_PSTORE_CONSOLE=y
|
||||
CONFIG_PSTORE_PMSG=y
|
||||
CONFIG_PSTORE_RAM=y
|
||||
CONFIG_PTP_1588_CLOCK_OPTIONAL=y
|
||||
CONFIG_PWM=y
|
||||
CONFIG_PWM_MEDIATEK=y
|
||||
# CONFIG_PWM_MTK_DISP is not set
|
||||
CONFIG_QUEUED_RWLOCKS=y
|
||||
CONFIG_QUEUED_SPINLOCKS=y
|
||||
CONFIG_RANDOMIZE_BASE=y
|
||||
CONFIG_RANDOMIZE_MODULE_REGION_FULL=y
|
||||
CONFIG_RANDSTRUCT_NONE=y
|
||||
CONFIG_RAS=y
|
||||
CONFIG_RATIONAL=y
|
||||
# CONFIG_RAVE_SP_CORE is not set
|
||||
CONFIG_REALTEK_PHY=y
|
||||
CONFIG_REALTEK_PHY_HWMON=y
|
||||
CONFIG_REED_SOLOMON=y
|
||||
CONFIG_REED_SOLOMON_DEC8=y
|
||||
CONFIG_REED_SOLOMON_ENC8=y
|
||||
CONFIG_REGMAP=y
|
||||
CONFIG_REGMAP_MMIO=y
|
||||
CONFIG_REGULATOR=y
|
||||
CONFIG_REGULATOR_FIXED_VOLTAGE=y
|
||||
CONFIG_REGULATOR_MT6380=y
|
||||
CONFIG_RELOCATABLE=y
|
||||
CONFIG_RESET_CONTROLLER=y
|
||||
CONFIG_RFS_ACCEL=y
|
||||
CONFIG_RODATA_FULL_DEFAULT_ENABLED=y
|
||||
CONFIG_RPS=y
|
||||
CONFIG_RTC_CLASS=y
|
||||
CONFIG_RTC_DRV_MT7622=y
|
||||
CONFIG_RTC_I2C_AND_SPI=y
|
||||
CONFIG_RTL8367S_GSW=y
|
||||
CONFIG_RWSEM_SPIN_ON_OWNER=y
|
||||
CONFIG_SCHED_MC=y
|
||||
CONFIG_SCSI=y
|
||||
CONFIG_SCSI_COMMON=y
|
||||
# CONFIG_SECTION_MISMATCH_WARN_ONLY is not set
|
||||
CONFIG_SERIAL_8250_FSL=y
|
||||
CONFIG_SERIAL_8250_MT6577=y
|
||||
CONFIG_SERIAL_8250_NR_UARTS=3
|
||||
CONFIG_SERIAL_8250_RUNTIME_UARTS=3
|
||||
CONFIG_SERIAL_DEV_BUS=y
|
||||
CONFIG_SERIAL_DEV_CTRL_TTYPORT=y
|
||||
CONFIG_SERIAL_MCTRL_GPIO=y
|
||||
CONFIG_SERIAL_OF_PLATFORM=y
|
||||
CONFIG_SGL_ALLOC=y
|
||||
CONFIG_SG_POOL=y
|
||||
CONFIG_SMP=y
|
||||
CONFIG_SOCK_RX_QUEUE_MAPPING=y
|
||||
CONFIG_SOC_BUS=y
|
||||
CONFIG_SOFTIRQ_ON_OWN_STACK=y
|
||||
CONFIG_SPARSEMEM=y
|
||||
CONFIG_SPARSEMEM_EXTREME=y
|
||||
CONFIG_SPARSEMEM_VMEMMAP=y
|
||||
CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
|
||||
CONFIG_SPARSE_IRQ=y
|
||||
CONFIG_SPI=y
|
||||
CONFIG_SPI_DYNAMIC=y
|
||||
CONFIG_SPI_MASTER=y
|
||||
CONFIG_SPI_MEM=y
|
||||
CONFIG_SPI_MT65XX=y
|
||||
CONFIG_SPI_MTK_NOR=y
|
||||
CONFIG_SPI_MTK_SNFI=y
|
||||
CONFIG_SWCONFIG=y
|
||||
CONFIG_SWIOTLB=y
|
||||
CONFIG_SWPHY=y
|
||||
CONFIG_SYSCTL_EXCEPTION_TRACE=y
|
||||
# CONFIG_TEST_FPU is not set
|
||||
CONFIG_THERMAL=y
|
||||
CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
|
||||
CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
|
||||
CONFIG_THERMAL_EMULATION=y
|
||||
CONFIG_THERMAL_GOV_BANG_BANG=y
|
||||
CONFIG_THERMAL_GOV_FAIR_SHARE=y
|
||||
CONFIG_THERMAL_GOV_STEP_WISE=y
|
||||
CONFIG_THERMAL_GOV_USER_SPACE=y
|
||||
CONFIG_THERMAL_HWMON=y
|
||||
CONFIG_THERMAL_OF=y
|
||||
CONFIG_THREAD_INFO_IN_TASK=y
|
||||
CONFIG_TICK_CPU_ACCOUNTING=y
|
||||
CONFIG_TIMER_OF=y
|
||||
CONFIG_TIMER_PROBE=y
|
||||
CONFIG_TRACE_IRQFLAGS_NMI_SUPPORT=y
|
||||
CONFIG_TREE_RCU=y
|
||||
CONFIG_TREE_SRCU=y
|
||||
CONFIG_UBIFS_FS=y
|
||||
# CONFIG_UCLAMP_TASK is not set
|
||||
CONFIG_UIMAGE_FIT_BLK=y
|
||||
# CONFIG_UNMAP_KERNEL_AT_EL0 is not set
|
||||
CONFIG_USB_SUPPORT=y
|
||||
CONFIG_USER_STACKTRACE_SUPPORT=y
|
||||
CONFIG_VDSO_GETRANDOM=y
|
||||
CONFIG_VMAP_STACK=y
|
||||
CONFIG_WATCHDOG_CORE=y
|
||||
CONFIG_WATCHDOG_PRETIMEOUT_DEFAULT_GOV_PANIC=y
|
||||
CONFIG_WATCHDOG_PRETIMEOUT_GOV=y
|
||||
# CONFIG_WATCHDOG_PRETIMEOUT_GOV_NOOP is not set
|
||||
CONFIG_WATCHDOG_PRETIMEOUT_GOV_PANIC=y
|
||||
CONFIG_WATCHDOG_PRETIMEOUT_GOV_SEL=m
|
||||
CONFIG_WATCHDOG_SYSFS=y
|
||||
CONFIG_XPS=y
|
||||
CONFIG_XXHASH=y
|
||||
CONFIG_ZLIB_DEFLATE=y
|
||||
CONFIG_ZLIB_INFLATE=y
|
||||
CONFIG_ZONE_DMA32=y
|
||||
CONFIG_ZSTD_COMMON=y
|
||||
CONFIG_ZSTD_COMPRESS=y
|
||||
CONFIG_ZSTD_DECOMPRESS=y
|
||||
@ -1,525 +0,0 @@
|
||||
# CONFIG_AIO is not set
|
||||
# CONFIG_AIROHA_EN8801SC_PHY is not set
|
||||
# CONFIG_AIR_AN8855_PHY is not set
|
||||
CONFIG_ARCH_MEDIATEK=y
|
||||
CONFIG_ARCH_MULTIPLATFORM=y
|
||||
CONFIG_ARCH_MULTI_V6_V7=y
|
||||
CONFIG_ARCH_MULTI_V7=y
|
||||
CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT=y
|
||||
CONFIG_ARM_APPENDED_DTB=y
|
||||
CONFIG_ARM_ARCH_TIMER=y
|
||||
CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
|
||||
# CONFIG_ARM_ATAG_DTB_COMPAT is not set
|
||||
CONFIG_ARM_CPU_SUSPEND=y
|
||||
# CONFIG_ARM_CPU_TOPOLOGY is not set
|
||||
CONFIG_ARM_DMA_IOMMU_ALIGNMENT=8
|
||||
CONFIG_ARM_DMA_USE_IOMMU=y
|
||||
CONFIG_ARM_GIC=y
|
||||
CONFIG_ARM_L1_CACHE_SHIFT=6
|
||||
CONFIG_ARM_L1_CACHE_SHIFT_6=y
|
||||
# CONFIG_ARM_MEDIATEK_CCI_DEVFREQ is not set
|
||||
CONFIG_ARM_MEDIATEK_CPUFREQ=y
|
||||
CONFIG_ARM_PAN=y
|
||||
CONFIG_ARM_PATCH_IDIV=y
|
||||
CONFIG_ARM_PATCH_PHYS_VIRT=y
|
||||
# CONFIG_ARM_SMMU is not set
|
||||
CONFIG_ARM_THUMB=y
|
||||
CONFIG_ARM_THUMBEE=y
|
||||
CONFIG_ARM_VIRT_EXT=y
|
||||
CONFIG_ASYNC_TX_ENABLE_CHANNEL_SWITCH=y
|
||||
CONFIG_ATAGS=y
|
||||
CONFIG_AUTO_ZRELADDR=y
|
||||
CONFIG_BACKLIGHT_CLASS_DEVICE=y
|
||||
CONFIG_BACKLIGHT_GPIO=y
|
||||
CONFIG_BACKLIGHT_LED=y
|
||||
CONFIG_BACKLIGHT_PWM=y
|
||||
CONFIG_BLK_DEV_LOOP=y
|
||||
CONFIG_BLK_MQ_PCI=y
|
||||
CONFIG_BLK_PM=y
|
||||
CONFIG_BOUNCE=y
|
||||
CONFIG_BUFFER_HEAD=y
|
||||
# CONFIG_CACHE_L2X0 is not set
|
||||
CONFIG_CLKSRC_MMIO=y
|
||||
CONFIG_CMDLINE="earlyprintk console=ttyS0,115200 rootfstype=squashfs,jffs2"
|
||||
CONFIG_CMDLINE_FROM_BOOTLOADER=y
|
||||
# CONFIG_CMDLINE_OVERRIDE is not set
|
||||
CONFIG_CMDLINE_PARTITION=y
|
||||
CONFIG_COMMON_CLK_MEDIATEK=y
|
||||
CONFIG_COMMON_CLK_MT2701=y
|
||||
CONFIG_COMMON_CLK_MT2701_AUDSYS=y
|
||||
CONFIG_COMMON_CLK_MT2701_BDPSYS=y
|
||||
CONFIG_COMMON_CLK_MT2701_ETHSYS=y
|
||||
CONFIG_COMMON_CLK_MT2701_G3DSYS=y
|
||||
CONFIG_COMMON_CLK_MT2701_HIFSYS=y
|
||||
CONFIG_COMMON_CLK_MT2701_IMGSYS=y
|
||||
CONFIG_COMMON_CLK_MT2701_MMSYS=y
|
||||
CONFIG_COMMON_CLK_MT2701_VDECSYS=y
|
||||
# CONFIG_COMMON_CLK_MT6795 is not set
|
||||
# CONFIG_COMMON_CLK_MT7622 is not set
|
||||
# CONFIG_COMMON_CLK_MT7629 is not set
|
||||
# CONFIG_COMMON_CLK_MT7981 is not set
|
||||
# CONFIG_COMMON_CLK_MT7986 is not set
|
||||
# CONFIG_COMMON_CLK_MT7987 is not set
|
||||
# CONFIG_COMMON_CLK_MT7988 is not set
|
||||
# CONFIG_COMMON_CLK_MT8135 is not set
|
||||
# CONFIG_COMMON_CLK_MT8365 is not set
|
||||
# CONFIG_COMMON_CLK_MT8516 is not set
|
||||
CONFIG_COMPAT_32BIT_TIME=y
|
||||
CONFIG_CONFIGFS_FS=y
|
||||
CONFIG_CONSOLE_TRANSLATIONS=y
|
||||
CONFIG_CONTEXT_TRACKING=y
|
||||
CONFIG_CONTEXT_TRACKING_IDLE=y
|
||||
CONFIG_COREDUMP=y
|
||||
CONFIG_CPU_32v6K=y
|
||||
CONFIG_CPU_32v7=y
|
||||
CONFIG_CPU_ABRT_EV7=y
|
||||
# CONFIG_CPU_BIG_ENDIAN is not set
|
||||
CONFIG_CPU_CACHE_V7=y
|
||||
CONFIG_CPU_CACHE_VIPT=y
|
||||
CONFIG_CPU_COPY_V6=y
|
||||
CONFIG_CPU_FREQ=y
|
||||
CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
|
||||
CONFIG_CPU_FREQ_GOV_ATTR_SET=y
|
||||
CONFIG_CPU_FREQ_GOV_COMMON=y
|
||||
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
|
||||
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
|
||||
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
|
||||
CONFIG_CPU_FREQ_GOV_POWERSAVE=y
|
||||
# CONFIG_CPU_FREQ_GOV_USERSPACE is not set
|
||||
CONFIG_CPU_FREQ_STAT=y
|
||||
CONFIG_CPU_HAS_ASID=y
|
||||
CONFIG_CPU_LITTLE_ENDIAN=y
|
||||
CONFIG_CPU_PABRT_V7=y
|
||||
CONFIG_CPU_PM=y
|
||||
CONFIG_CPU_RMAP=y
|
||||
CONFIG_CPU_SPECTRE=y
|
||||
CONFIG_CPU_TLB_V7=y
|
||||
CONFIG_CPU_V7=y
|
||||
CONFIG_CRC16=y
|
||||
CONFIG_CROSS_MEMORY_ATTACH=y
|
||||
CONFIG_CRYPTO_CRC32=y
|
||||
CONFIG_CRYPTO_CRC32C=y
|
||||
CONFIG_CRYPTO_DEFLATE=y
|
||||
CONFIG_CRYPTO_DRBG=y
|
||||
CONFIG_CRYPTO_DRBG_HMAC=y
|
||||
CONFIG_CRYPTO_DRBG_MENU=y
|
||||
CONFIG_CRYPTO_GENIV=y
|
||||
CONFIG_CRYPTO_HASH_INFO=y
|
||||
CONFIG_CRYPTO_HMAC=y
|
||||
CONFIG_CRYPTO_HW=y
|
||||
CONFIG_CRYPTO_JITTERENTROPY=y
|
||||
CONFIG_CRYPTO_JITTERENTROPY_MEMORY_BLOCKS=64
|
||||
CONFIG_CRYPTO_JITTERENTROPY_MEMORY_BLOCKSIZE=32
|
||||
CONFIG_CRYPTO_JITTERENTROPY_OSR=1
|
||||
CONFIG_CRYPTO_LIB_SHA256=y
|
||||
CONFIG_CRYPTO_LZO=y
|
||||
CONFIG_CRYPTO_RNG=y
|
||||
CONFIG_CRYPTO_RNG_DEFAULT=y
|
||||
CONFIG_CRYPTO_SEQIV=y
|
||||
CONFIG_CRYPTO_SHA1=y
|
||||
CONFIG_CRYPTO_SHA256=y
|
||||
CONFIG_CRYPTO_SHA3=y
|
||||
CONFIG_CRYPTO_SHA512=y
|
||||
CONFIG_CRYPTO_ZSTD=y
|
||||
CONFIG_CURRENT_POINTER_IN_TPIDRURO=y
|
||||
CONFIG_DCACHE_WORD_ACCESS=y
|
||||
CONFIG_DEBUG_ALIGN_RODATA=y
|
||||
CONFIG_DEBUG_BUGVERBOSE=y
|
||||
CONFIG_DEBUG_GPIO=y
|
||||
CONFIG_DEBUG_LL=y
|
||||
CONFIG_DEBUG_LL_INCLUDE="debug/8250.S"
|
||||
CONFIG_DEBUG_MISC=y
|
||||
CONFIG_DEBUG_MT6589_UART0=y
|
||||
# CONFIG_DEBUG_MT8127_UART0 is not set
|
||||
# CONFIG_DEBUG_MT8135_UART3 is not set
|
||||
CONFIG_DEBUG_UART_8250=y
|
||||
CONFIG_DEBUG_UART_8250_SHIFT=2
|
||||
CONFIG_DEBUG_UART_PHYS=0x11004000
|
||||
CONFIG_DEBUG_UART_VIRT=0xf1004000
|
||||
# CONFIG_DEVFREQ_GOV_PASSIVE is not set
|
||||
# CONFIG_DEVFREQ_GOV_PERFORMANCE is not set
|
||||
# CONFIG_DEVFREQ_GOV_POWERSAVE is not set
|
||||
CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y
|
||||
# CONFIG_DEVFREQ_GOV_USERSPACE is not set
|
||||
# CONFIG_DEVFREQ_THERMAL is not set
|
||||
CONFIG_DMADEVICES=y
|
||||
CONFIG_DMA_ENGINE=y
|
||||
CONFIG_DMA_OF=y
|
||||
CONFIG_DMA_SHARED_BUFFER=y
|
||||
CONFIG_DMA_VIRTUAL_CHANNELS=y
|
||||
CONFIG_DRM=y
|
||||
CONFIG_DRM_BRIDGE=y
|
||||
CONFIG_DRM_BRIDGE_CONNECTOR=y
|
||||
CONFIG_DRM_DISPLAY_CONNECTOR=y
|
||||
CONFIG_DRM_DISPLAY_HDMI_HELPER=y
|
||||
CONFIG_DRM_DISPLAY_HDMI_STATE_HELPER=y
|
||||
CONFIG_DRM_DISPLAY_HELPER=y
|
||||
CONFIG_DRM_FBDEV_EMULATION=y
|
||||
CONFIG_DRM_FBDEV_OVERALLOC=100
|
||||
CONFIG_DRM_GEM_DMA_HELPER=y
|
||||
CONFIG_DRM_GEM_SHMEM_HELPER=y
|
||||
CONFIG_DRM_KMS_HELPER=y
|
||||
CONFIG_DRM_LIMA=y
|
||||
CONFIG_DRM_LVDS_CODEC=y
|
||||
CONFIG_DRM_MEDIATEK=y
|
||||
# CONFIG_DRM_MEDIATEK_DP is not set
|
||||
CONFIG_DRM_MEDIATEK_HDMI=y
|
||||
CONFIG_DRM_MIPI_DSI=y
|
||||
CONFIG_DRM_PANEL=y
|
||||
CONFIG_DRM_PANEL_BRIDGE=y
|
||||
CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y
|
||||
CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=y
|
||||
CONFIG_DRM_SCHED=y
|
||||
CONFIG_DRM_SIMPLE_BRIDGE=y
|
||||
CONFIG_DUMMY_CONSOLE=y
|
||||
CONFIG_EARLY_PRINTK=y
|
||||
CONFIG_EINT_MTK=y
|
||||
CONFIG_ELF_CORE=y
|
||||
CONFIG_EXT4_FS=y
|
||||
CONFIG_EXTCON=y
|
||||
CONFIG_F2FS_FS=y
|
||||
CONFIG_FB=y
|
||||
CONFIG_FB_CORE=y
|
||||
CONFIG_FB_DEFERRED_IO=y
|
||||
CONFIG_FB_DEVICE=y
|
||||
CONFIG_FB_DMAMEM_HELPERS=y
|
||||
CONFIG_FB_DMAMEM_HELPERS_DEFERRED=y
|
||||
CONFIG_FB_SYSMEM_FOPS=y
|
||||
CONFIG_FB_SYSMEM_HELPERS=y
|
||||
CONFIG_FB_SYSMEM_HELPERS_DEFERRED=y
|
||||
CONFIG_FB_SYS_COPYAREA=y
|
||||
CONFIG_FB_SYS_FILLRECT=y
|
||||
CONFIG_FB_SYS_IMAGEBLIT=y
|
||||
CONFIG_FIXED_PHY=y
|
||||
CONFIG_FONT_8x16=y
|
||||
CONFIG_FONT_8x8=y
|
||||
CONFIG_FONT_SUPPORT=y
|
||||
CONFIG_FRAMEBUFFER_CONSOLE=y
|
||||
CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
|
||||
CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
|
||||
CONFIG_FREEZER=y
|
||||
CONFIG_FS_MBCACHE=y
|
||||
CONFIG_FWNODE_MDIO=y
|
||||
CONFIG_FW_CACHE=y
|
||||
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
|
||||
CONFIG_GENERIC_CPU_VULNERABILITIES=y
|
||||
CONFIG_GENERIC_GETTIMEOFDAY=y
|
||||
CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y
|
||||
CONFIG_GENERIC_IRQ_MIGRATION=y
|
||||
CONFIG_GENERIC_MSI_IRQ=y
|
||||
CONFIG_GENERIC_PHY=y
|
||||
CONFIG_GENERIC_PINCONF=y
|
||||
CONFIG_GENERIC_PINCTRL_GROUPS=y
|
||||
CONFIG_GENERIC_PINMUX_FUNCTIONS=y
|
||||
CONFIG_GENERIC_TIME_VSYSCALL=y
|
||||
CONFIG_GENERIC_VDSO_32=y
|
||||
CONFIG_GRO_CELLS=y
|
||||
# CONFIG_HARDEN_BRANCH_HISTORY is not set
|
||||
# CONFIG_HARDEN_BRANCH_PREDICTOR is not set
|
||||
CONFIG_HAVE_SMP=y
|
||||
CONFIG_HDMI=y
|
||||
CONFIG_HID=y
|
||||
CONFIG_HID_SUPPORT=y
|
||||
CONFIG_HIGHMEM=y
|
||||
CONFIG_HIGHPTE=y
|
||||
CONFIG_HOTPLUG_CORE_SYNC=y
|
||||
CONFIG_HOTPLUG_CORE_SYNC_DEAD=y
|
||||
CONFIG_HOTPLUG_CPU=y
|
||||
CONFIG_HWMON=y
|
||||
CONFIG_HW_RANDOM=y
|
||||
CONFIG_HW_RANDOM_MTK=y
|
||||
# CONFIG_HZ_PERIODIC is not set
|
||||
CONFIG_I2C=y
|
||||
CONFIG_I2C_ALGOBIT=y
|
||||
CONFIG_I2C_BOARDINFO=y
|
||||
CONFIG_I2C_CHARDEV=y
|
||||
CONFIG_I2C_MT65XX=y
|
||||
CONFIG_ICPLUS_PHY=y
|
||||
CONFIG_IIO=y
|
||||
CONFIG_INPUT=y
|
||||
CONFIG_INPUT_EVDEV=y
|
||||
CONFIG_INPUT_KEYBOARD=y
|
||||
CONFIG_INPUT_TOUCHSCREEN=y
|
||||
# CONFIG_IOMMUFD is not set
|
||||
CONFIG_IOMMU_API=y
|
||||
# CONFIG_IOMMU_DEBUGFS is not set
|
||||
# CONFIG_IOMMU_DEFAULT_DMA_LAZY is not set
|
||||
CONFIG_IOMMU_DEFAULT_DMA_STRICT=y
|
||||
# CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set
|
||||
CONFIG_IOMMU_IO_PGTABLE=y
|
||||
CONFIG_IOMMU_IO_PGTABLE_ARMV7S=y
|
||||
# CONFIG_IOMMU_IO_PGTABLE_ARMV7S_SELFTEST is not set
|
||||
# CONFIG_IOMMU_IO_PGTABLE_LPAE is not set
|
||||
CONFIG_IOMMU_SUPPORT=y
|
||||
CONFIG_IRQ_DOMAIN_HIERARCHY=y
|
||||
CONFIG_JBD2=y
|
||||
CONFIG_KALLSYMS=y
|
||||
CONFIG_KCMP=y
|
||||
CONFIG_KEYBOARD_MTK_PMIC=y
|
||||
CONFIG_KMAP_LOCAL=y
|
||||
CONFIG_KMAP_LOCAL_NON_LINEAR_PTE_ARRAY=y
|
||||
CONFIG_LCD_CLASS_DEVICE=y
|
||||
CONFIG_LCD_PLATFORM=y
|
||||
CONFIG_LEDS_MT6323=y
|
||||
# CONFIG_LEDS_QCOM_LPG is not set
|
||||
# CONFIG_LEDS_SMARTRG_LED is not set
|
||||
CONFIG_LOCK_SPIN_ON_OWNER=y
|
||||
CONFIG_LOGO=y
|
||||
CONFIG_LOGO_LINUX_CLUT224=y
|
||||
# CONFIG_LOGO_LINUX_MONO is not set
|
||||
# CONFIG_LOGO_LINUX_VGA16 is not set
|
||||
CONFIG_LZO_COMPRESS=y
|
||||
CONFIG_LZO_DECOMPRESS=y
|
||||
# CONFIG_MACH_MT2701 is not set
|
||||
# CONFIG_MACH_MT6589 is not set
|
||||
# CONFIG_MACH_MT6592 is not set
|
||||
CONFIG_MACH_MT7623=y
|
||||
# CONFIG_MACH_MT7629 is not set
|
||||
# CONFIG_MACH_MT8127 is not set
|
||||
# CONFIG_MACH_MT8135 is not set
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
CONFIG_MAILBOX=y
|
||||
# CONFIG_MAILBOX_TEST is not set
|
||||
CONFIG_MDIO_BITBANG=y
|
||||
CONFIG_MDIO_BUS=y
|
||||
CONFIG_MDIO_DEVICE=y
|
||||
CONFIG_MDIO_DEVRES=y
|
||||
CONFIG_MDIO_GPIO=y
|
||||
CONFIG_MEDIATEK_GE_PHY=y
|
||||
# CONFIG_MEDIATEK_MT6359_AUXADC is not set
|
||||
CONFIG_MEDIATEK_MT6577_AUXADC=y
|
||||
CONFIG_MEDIATEK_WATCHDOG=y
|
||||
CONFIG_MEMORY=y
|
||||
# CONFIG_MFD_AIROHA_AN8855 is not set
|
||||
CONFIG_MFD_CORE=y
|
||||
# CONFIG_MFD_HI6421_SPMI is not set
|
||||
CONFIG_MFD_MT6397=y
|
||||
CONFIG_MFD_SYSCON=y
|
||||
CONFIG_MIGHT_HAVE_CACHE_L2X0=y
|
||||
CONFIG_MMC=y
|
||||
CONFIG_MMC_BLOCK=y
|
||||
CONFIG_MMC_CQHCI=y
|
||||
CONFIG_MMC_MTK=y
|
||||
CONFIG_MMC_SDHCI=y
|
||||
CONFIG_MMC_SDHCI_PLTFM=y
|
||||
CONFIG_MTD_CMDLINE_PARTS=y
|
||||
# CONFIG_MTD_NAND_ECC_MEDIATEK is not set
|
||||
CONFIG_MTD_SPI_NOR=y
|
||||
CONFIG_MTD_SPLIT_FIRMWARE=y
|
||||
CONFIG_MTD_SPLIT_UIMAGE_FW=y
|
||||
CONFIG_MTD_UBI=y
|
||||
CONFIG_MTD_UBI_BEB_LIMIT=20
|
||||
CONFIG_MTD_UBI_BLOCK=y
|
||||
CONFIG_MTD_UBI_WL_THRESHOLD=4096
|
||||
# CONFIG_MTK_ADSP_MBOX is not set
|
||||
CONFIG_MTK_CMDQ=y
|
||||
CONFIG_MTK_CMDQ_MBOX=y
|
||||
CONFIG_MTK_CPUX_TIMER=y
|
||||
CONFIG_MTK_CQDMA=y
|
||||
# CONFIG_MTK_HSDMA is not set
|
||||
CONFIG_MTK_INFRACFG=y
|
||||
CONFIG_MTK_IOMMU=y
|
||||
CONFIG_MTK_IOMMU_V1=y
|
||||
# CONFIG_MTK_LVTS_THERMAL is not set
|
||||
CONFIG_MTK_MMSYS=y
|
||||
CONFIG_MTK_NET_PHYLIB=y
|
||||
CONFIG_MTK_PMIC_WRAP=y
|
||||
CONFIG_MTK_REGULATOR_COUPLER=y
|
||||
CONFIG_MTK_SCPSYS=y
|
||||
CONFIG_MTK_SCPSYS_PM_DOMAINS=y
|
||||
CONFIG_MTK_SMI=y
|
||||
# CONFIG_MTK_SOCINFO is not set
|
||||
CONFIG_MTK_SOC_THERMAL=y
|
||||
# CONFIG_MTK_SVS is not set
|
||||
CONFIG_MTK_THERMAL=y
|
||||
CONFIG_MTK_TIMER=y
|
||||
# CONFIG_MTK_UART_APDMA is not set
|
||||
# CONFIG_MUSB_PIO_ONLY is not set
|
||||
CONFIG_MUTEX_SPIN_ON_OWNER=y
|
||||
CONFIG_NEED_SG_DMA_LENGTH=y
|
||||
CONFIG_NEED_SRCU_NMI_SAFE=y
|
||||
CONFIG_NEON=y
|
||||
# CONFIG_NET_AIROHA is not set
|
||||
CONFIG_NET_DEVLINK=y
|
||||
CONFIG_NET_DEVMEM=y
|
||||
CONFIG_NET_DSA=y
|
||||
CONFIG_NET_DSA_MT7530=y
|
||||
CONFIG_NET_DSA_MT7530_MDIO=y
|
||||
# CONFIG_NET_DSA_MT7530_MMIO is not set
|
||||
CONFIG_NET_DSA_TAG_MTK=y
|
||||
CONFIG_NET_FLOW_LIMIT=y
|
||||
CONFIG_NET_MEDIATEK_SOC=y
|
||||
CONFIG_NET_MEDIATEK_SOC_WED=y
|
||||
CONFIG_NET_SELFTESTS=y
|
||||
CONFIG_NET_VENDOR_MEDIATEK=y
|
||||
# CONFIG_NET_VENDOR_WIZNET is not set
|
||||
CONFIG_NLS=y
|
||||
CONFIG_NOP_USB_XCEIV=y
|
||||
CONFIG_NO_HZ=y
|
||||
CONFIG_NO_HZ_COMMON=y
|
||||
CONFIG_NO_HZ_IDLE=y
|
||||
CONFIG_NR_CPUS=4
|
||||
CONFIG_NVMEM=y
|
||||
CONFIG_NVMEM_LAYOUTS=y
|
||||
# CONFIG_NVMEM_LAYOUT_ADTRAN is not set
|
||||
CONFIG_NVMEM_MTK_EFUSE=y
|
||||
# CONFIG_NVMEM_SPMI_SDAM is not set
|
||||
CONFIG_NVMEM_SYSFS=y
|
||||
CONFIG_OF_DYNAMIC=y
|
||||
CONFIG_OF_IOMMU=y
|
||||
CONFIG_OF_MDIO=y
|
||||
CONFIG_OF_OVERLAY=y
|
||||
CONFIG_OF_RESOLVE=y
|
||||
CONFIG_PADATA=y
|
||||
CONFIG_PAGE_POOL_STATS=y
|
||||
CONFIG_PCI=y
|
||||
CONFIG_PCIEAER=y
|
||||
CONFIG_PCIEPORTBUS=y
|
||||
CONFIG_PCIE_MEDIATEK=y
|
||||
CONFIG_PCIE_PME=y
|
||||
CONFIG_PCI_DOMAINS=y
|
||||
CONFIG_PCI_DOMAINS_GENERIC=y
|
||||
CONFIG_PCI_MSI=y
|
||||
CONFIG_PCS_MTK_LYNXI=y
|
||||
CONFIG_PER_VMA_LOCK=y
|
||||
CONFIG_PHYLIB=y
|
||||
CONFIG_PHYLIB_LEDS=y
|
||||
CONFIG_PHYLINK=y
|
||||
# CONFIG_PHY_MTK_DP is not set
|
||||
CONFIG_PHY_MTK_HDMI=y
|
||||
# CONFIG_PHY_MTK_MIPI_CSI_0_5 is not set
|
||||
CONFIG_PHY_MTK_MIPI_DSI=y
|
||||
# CONFIG_PHY_MTK_PCIE is not set
|
||||
CONFIG_PHY_MTK_TPHY=y
|
||||
# CONFIG_PHY_MTK_UFS is not set
|
||||
# CONFIG_PHY_MTK_XSPHY is not set
|
||||
CONFIG_PINCTRL=y
|
||||
CONFIG_PINCTRL_MT2701=y
|
||||
# CONFIG_PINCTRL_MT6397 is not set
|
||||
CONFIG_PINCTRL_MT7623=y
|
||||
CONFIG_PINCTRL_MTK=y
|
||||
CONFIG_PINCTRL_MTK_MOORE=y
|
||||
CONFIG_PINCTRL_MTK_V2=y
|
||||
CONFIG_PM=y
|
||||
CONFIG_PM_CLK=y
|
||||
CONFIG_PM_DEVFREQ=y
|
||||
# CONFIG_PM_DEVFREQ_EVENT is not set
|
||||
CONFIG_PM_GENERIC_DOMAINS=y
|
||||
CONFIG_PM_GENERIC_DOMAINS_OF=y
|
||||
CONFIG_PM_GENERIC_DOMAINS_SLEEP=y
|
||||
CONFIG_PM_OPP=y
|
||||
CONFIG_PM_SLEEP=y
|
||||
CONFIG_PM_SLEEP_SMP=y
|
||||
CONFIG_POWER_RESET=y
|
||||
# CONFIG_POWER_RESET_MT6323 is not set
|
||||
CONFIG_POWER_SUPPLY=y
|
||||
CONFIG_POWER_SUPPLY_HWMON=y
|
||||
CONFIG_PRINTK_TIME=y
|
||||
CONFIG_PWM=y
|
||||
CONFIG_PWM_MEDIATEK=y
|
||||
# CONFIG_PWM_MTK_DISP is not set
|
||||
CONFIG_RAS=y
|
||||
CONFIG_REGMAP=y
|
||||
CONFIG_REGMAP_I2C=y
|
||||
CONFIG_REGMAP_MMIO=y
|
||||
CONFIG_REGULATOR=y
|
||||
CONFIG_REGULATOR_FIXED_VOLTAGE=y
|
||||
CONFIG_REGULATOR_GPIO=y
|
||||
CONFIG_REGULATOR_MT6323=y
|
||||
# CONFIG_REGULATOR_MT6331 is not set
|
||||
# CONFIG_REGULATOR_MT6332 is not set
|
||||
# CONFIG_REGULATOR_MT6357 is not set
|
||||
# CONFIG_REGULATOR_MT6358 is not set
|
||||
# CONFIG_REGULATOR_MT6380 is not set
|
||||
# CONFIG_REGULATOR_MT6397 is not set
|
||||
CONFIG_RESET_CONTROLLER=y
|
||||
CONFIG_RFS_ACCEL=y
|
||||
CONFIG_RPS=y
|
||||
CONFIG_RTC_CLASS=y
|
||||
# CONFIG_RTC_DRV_MT6397 is not set
|
||||
# CONFIG_RTC_DRV_MT7622 is not set
|
||||
CONFIG_RTC_I2C_AND_SPI=y
|
||||
CONFIG_RTC_MC146818_LIB=y
|
||||
# CONFIG_RTL8367S_GSW is not set
|
||||
CONFIG_RWSEM_SPIN_ON_OWNER=y
|
||||
# CONFIG_SERIAL_8250_DMA is not set
|
||||
CONFIG_SERIAL_8250_MT6577=y
|
||||
CONFIG_SERIAL_8250_NR_UARTS=4
|
||||
CONFIG_SERIAL_8250_RUNTIME_UARTS=4
|
||||
CONFIG_SGL_ALLOC=y
|
||||
CONFIG_SMP=y
|
||||
# CONFIG_SMP_ON_UP is not set
|
||||
CONFIG_SOCK_RX_QUEUE_MAPPING=y
|
||||
CONFIG_SPI=y
|
||||
CONFIG_SPI_BITBANG=y
|
||||
CONFIG_SPI_DYNAMIC=y
|
||||
CONFIG_SPI_MASTER=y
|
||||
CONFIG_SPI_MEM=y
|
||||
CONFIG_SPI_MT65XX=y
|
||||
# CONFIG_SPI_MTK_NOR is not set
|
||||
CONFIG_SPLIT_PTE_PTLOCKS=y
|
||||
CONFIG_SPMI=y
|
||||
# CONFIG_SPMI_HISI3670 is not set
|
||||
# CONFIG_SPMI_MTK_PMIF is not set
|
||||
# CONFIG_STRIP_ASM_SYMS is not set
|
||||
CONFIG_SUSPEND=y
|
||||
CONFIG_SUSPEND_FREEZER=y
|
||||
CONFIG_SWPHY=y
|
||||
CONFIG_SWP_EMULATE=y
|
||||
CONFIG_SYNC_FILE=y
|
||||
CONFIG_THERMAL=y
|
||||
CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
|
||||
CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
|
||||
CONFIG_THERMAL_GOV_STEP_WISE=y
|
||||
CONFIG_THERMAL_OF=y
|
||||
CONFIG_TOUCHSCREEN_EDT_FT5X06=y
|
||||
CONFIG_TREE_RCU=y
|
||||
CONFIG_TREE_SRCU=y
|
||||
CONFIG_UBIFS_FS=y
|
||||
CONFIG_UEVENT_HELPER_PATH=""
|
||||
CONFIG_UIMAGE_FIT_BLK=y
|
||||
CONFIG_UNWINDER_ARM=y
|
||||
CONFIG_USB=y
|
||||
CONFIG_USB_COMMON=y
|
||||
CONFIG_USB_F_ACM=y
|
||||
CONFIG_USB_F_ECM=y
|
||||
CONFIG_USB_F_MASS_STORAGE=y
|
||||
CONFIG_USB_GADGET=y
|
||||
CONFIG_USB_GPIO_VBUS=y
|
||||
CONFIG_USB_G_MULTI=y
|
||||
CONFIG_USB_G_MULTI_CDC=y
|
||||
# CONFIG_USB_G_MULTI_RNDIS is not set
|
||||
CONFIG_USB_HID=y
|
||||
CONFIG_USB_HIDDEV=y
|
||||
CONFIG_USB_INVENTRA_DMA=y
|
||||
CONFIG_USB_LIBCOMPOSITE=y
|
||||
CONFIG_USB_MUSB_DUAL_ROLE=y
|
||||
CONFIG_USB_MUSB_HDRC=y
|
||||
CONFIG_USB_MUSB_MEDIATEK=y
|
||||
CONFIG_USB_OTG=y
|
||||
CONFIG_USB_PHY=y
|
||||
CONFIG_USB_ROLE_SWITCH=y
|
||||
CONFIG_USB_SUPPORT=y
|
||||
CONFIG_USB_U_ETHER=y
|
||||
CONFIG_USB_U_SERIAL=y
|
||||
CONFIG_VFP=y
|
||||
CONFIG_VFPv3=y
|
||||
CONFIG_VIDEO=y
|
||||
CONFIG_VIDEOMODE_HELPERS=y
|
||||
CONFIG_VM_EVENT_COUNTERS=y
|
||||
CONFIG_VT=y
|
||||
CONFIG_VT_CONSOLE=y
|
||||
CONFIG_VT_CONSOLE_SLEEP=y
|
||||
CONFIG_VT_HW_CONSOLE_BINDING=y
|
||||
CONFIG_WATCHDOG_CORE=y
|
||||
CONFIG_XPS=y
|
||||
CONFIG_XXHASH=y
|
||||
CONFIG_XZ_DEC_ARM=y
|
||||
CONFIG_XZ_DEC_BCJ=y
|
||||
CONFIG_ZBOOT_ROM_BSS=0
|
||||
CONFIG_ZBOOT_ROM_TEXT=0
|
||||
CONFIG_ZLIB_DEFLATE=y
|
||||
CONFIG_ZLIB_INFLATE=y
|
||||
CONFIG_ZSTD_COMMON=y
|
||||
CONFIG_ZSTD_COMPRESS=y
|
||||
CONFIG_ZSTD_DECOMPRESS=y
|
||||
@ -1,367 +0,0 @@
|
||||
# CONFIG_AIROHA_EN8801SC_PHY is not set
|
||||
# CONFIG_AIR_AN8855_PHY is not set
|
||||
CONFIG_ALIGNMENT_TRAP=y
|
||||
CONFIG_ARCH_32BIT_OFF_T=y
|
||||
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
|
||||
CONFIG_ARCH_KEEP_MEMBLOCK=y
|
||||
CONFIG_ARCH_MEDIATEK=y
|
||||
CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
|
||||
CONFIG_ARCH_MULTIPLATFORM=y
|
||||
CONFIG_ARCH_MULTI_V6_V7=y
|
||||
CONFIG_ARCH_MULTI_V7=y
|
||||
CONFIG_ARCH_OPTIONAL_KERNEL_RWX=y
|
||||
CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT=y
|
||||
CONFIG_ARCH_SELECT_MEMORY_MODEL=y
|
||||
CONFIG_ARCH_SPARSEMEM_ENABLE=y
|
||||
CONFIG_ARCH_STACKWALK=y
|
||||
CONFIG_ARCH_SUSPEND_POSSIBLE=y
|
||||
CONFIG_ARM=y
|
||||
CONFIG_ARM_ARCH_TIMER=y
|
||||
CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
|
||||
# CONFIG_ARM_DEBUG_WX is not set
|
||||
CONFIG_ARM_GIC=y
|
||||
CONFIG_ARM_HAS_GROUP_RELOCS=y
|
||||
CONFIG_ARM_HEAVY_MB=y
|
||||
CONFIG_ARM_L1_CACHE_SHIFT=6
|
||||
CONFIG_ARM_L1_CACHE_SHIFT_6=y
|
||||
CONFIG_ARM_PAN=y
|
||||
CONFIG_ARM_PATCH_IDIV=y
|
||||
CONFIG_ARM_PATCH_PHYS_VIRT=y
|
||||
CONFIG_ARM_THUMB=y
|
||||
CONFIG_ARM_UNWIND=y
|
||||
CONFIG_ARM_VIRT_EXT=y
|
||||
CONFIG_ATAGS=y
|
||||
CONFIG_AUTO_ZRELADDR=y
|
||||
CONFIG_BINFMT_FLAT_ARGVP_ENVP_ON_STACK=y
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
CONFIG_BLK_MQ_PCI=y
|
||||
CONFIG_BLK_PM=y
|
||||
CONFIG_BSD_PROCESS_ACCT=y
|
||||
CONFIG_BSD_PROCESS_ACCT_V3=y
|
||||
CONFIG_CACHE_L2X0=y
|
||||
CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
|
||||
# CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE is not set
|
||||
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
|
||||
CONFIG_CHR_DEV_SCH=y
|
||||
CONFIG_CLKSRC_MMIO=y
|
||||
CONFIG_CLONE_BACKWARDS=y
|
||||
CONFIG_CMDLINE="rootfstype=squashfs,jffs2"
|
||||
CONFIG_CMDLINE_FROM_BOOTLOADER=y
|
||||
CONFIG_CMDLINE_OVERRIDE=y
|
||||
CONFIG_COMMON_CLK=y
|
||||
CONFIG_COMMON_CLK_MEDIATEK=y
|
||||
# CONFIG_COMMON_CLK_MT2701 is not set
|
||||
# CONFIG_COMMON_CLK_MT6795 is not set
|
||||
# CONFIG_COMMON_CLK_MT7622 is not set
|
||||
CONFIG_COMMON_CLK_MT7629=y
|
||||
CONFIG_COMMON_CLK_MT7629_ETHSYS=y
|
||||
CONFIG_COMMON_CLK_MT7629_HIFSYS=y
|
||||
# CONFIG_COMMON_CLK_MT7981 is not set
|
||||
# CONFIG_COMMON_CLK_MT7986 is not set
|
||||
# CONFIG_COMMON_CLK_MT7987 is not set
|
||||
# CONFIG_COMMON_CLK_MT7988 is not set
|
||||
# CONFIG_COMMON_CLK_MT8135 is not set
|
||||
# CONFIG_COMMON_CLK_MT8365 is not set
|
||||
# CONFIG_COMMON_CLK_MT8516 is not set
|
||||
CONFIG_COMPACT_UNEVICTABLE_DEFAULT=1
|
||||
CONFIG_COMPAT_32BIT_TIME=y
|
||||
CONFIG_CONTEXT_TRACKING=y
|
||||
CONFIG_CONTEXT_TRACKING_IDLE=y
|
||||
CONFIG_CPU_32v6K=y
|
||||
CONFIG_CPU_32v7=y
|
||||
CONFIG_CPU_ABRT_EV7=y
|
||||
CONFIG_CPU_CACHE_V7=y
|
||||
CONFIG_CPU_CACHE_VIPT=y
|
||||
CONFIG_CPU_COPY_V6=y
|
||||
CONFIG_CPU_CP15=y
|
||||
CONFIG_CPU_CP15_MMU=y
|
||||
CONFIG_CPU_HAS_ASID=y
|
||||
CONFIG_CPU_IDLE=y
|
||||
CONFIG_CPU_IDLE_GOV_MENU=y
|
||||
CONFIG_CPU_LITTLE_ENDIAN=y
|
||||
CONFIG_CPU_MITIGATIONS=y
|
||||
CONFIG_CPU_PABRT_V7=y
|
||||
CONFIG_CPU_PM=y
|
||||
CONFIG_CPU_RMAP=y
|
||||
CONFIG_CPU_SPECTRE=y
|
||||
CONFIG_CPU_THUMB_CAPABLE=y
|
||||
CONFIG_CPU_TLB_V7=y
|
||||
CONFIG_CPU_V7=y
|
||||
CONFIG_CRC16=y
|
||||
CONFIG_CRYPTO_DEFLATE=y
|
||||
CONFIG_CRYPTO_ECB=y
|
||||
CONFIG_CRYPTO_HASH_INFO=y
|
||||
CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y
|
||||
CONFIG_CRYPTO_LIB_GF128MUL=y
|
||||
CONFIG_CRYPTO_LIB_UTILS=y
|
||||
CONFIG_CRYPTO_LZO=y
|
||||
CONFIG_CRYPTO_ZSTD=y
|
||||
CONFIG_CURRENT_POINTER_IN_TPIDRURO=y
|
||||
CONFIG_DCACHE_WORD_ACCESS=y
|
||||
CONFIG_DEBUG_INFO=y
|
||||
CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S"
|
||||
CONFIG_DEBUG_MISC=y
|
||||
CONFIG_DEFAULT_HOSTNAME="(mt7629)"
|
||||
CONFIG_DMA_NEED_SYNC=y
|
||||
CONFIG_DMA_OPS_HELPERS=y
|
||||
CONFIG_DTC=y
|
||||
CONFIG_EDAC_ATOMIC_SCRUB=y
|
||||
CONFIG_EDAC_SUPPORT=y
|
||||
CONFIG_EINT_MTK=y
|
||||
CONFIG_EXCLUSIVE_SYSTEM_RAM=y
|
||||
CONFIG_FIXED_PHY=y
|
||||
CONFIG_FIX_EARLYCON_MEM=y
|
||||
CONFIG_FS_IOMAP=y
|
||||
CONFIG_FUNCTION_ALIGNMENT=0
|
||||
CONFIG_FWNODE_MDIO=y
|
||||
CONFIG_FW_LOADER_PAGED_BUF=y
|
||||
CONFIG_FW_LOADER_SYSFS=y
|
||||
CONFIG_GENERIC_ALLOCATOR=y
|
||||
CONFIG_GENERIC_ARCH_TOPOLOGY=y
|
||||
CONFIG_GENERIC_BUG=y
|
||||
CONFIG_GENERIC_CLOCKEVENTS=y
|
||||
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
|
||||
CONFIG_GENERIC_CPU_AUTOPROBE=y
|
||||
CONFIG_GENERIC_CPU_DEVICES=y
|
||||
CONFIG_GENERIC_CPU_VULNERABILITIES=y
|
||||
CONFIG_GENERIC_EARLY_IOREMAP=y
|
||||
CONFIG_GENERIC_GETTIMEOFDAY=y
|
||||
CONFIG_GENERIC_IDLE_POLL_SETUP=y
|
||||
CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y
|
||||
CONFIG_GENERIC_IRQ_MIGRATION=y
|
||||
CONFIG_GENERIC_IRQ_MULTI_HANDLER=y
|
||||
CONFIG_GENERIC_IRQ_SHOW=y
|
||||
CONFIG_GENERIC_IRQ_SHOW_LEVEL=y
|
||||
CONFIG_GENERIC_LIB_DEVMEM_IS_ALLOWED=y
|
||||
CONFIG_GENERIC_MSI_IRQ=y
|
||||
CONFIG_GENERIC_PCI_IOMAP=y
|
||||
CONFIG_GENERIC_PHY=y
|
||||
CONFIG_GENERIC_PINCONF=y
|
||||
CONFIG_GENERIC_PINCTRL_GROUPS=y
|
||||
CONFIG_GENERIC_PINMUX_FUNCTIONS=y
|
||||
CONFIG_GENERIC_SCHED_CLOCK=y
|
||||
CONFIG_GENERIC_SMP_IDLE_THREAD=y
|
||||
CONFIG_GENERIC_STRNCPY_FROM_USER=y
|
||||
CONFIG_GENERIC_STRNLEN_USER=y
|
||||
CONFIG_GENERIC_TIME_VSYSCALL=y
|
||||
CONFIG_GENERIC_VDSO_32=y
|
||||
CONFIG_GPIO_CDEV=y
|
||||
CONFIG_GRO_CELLS=y
|
||||
# CONFIG_HARDEN_BRANCH_HISTORY is not set
|
||||
# CONFIG_HARDEN_BRANCH_PREDICTOR is not set
|
||||
CONFIG_HARDIRQS_SW_RESEND=y
|
||||
CONFIG_HAS_DMA=y
|
||||
CONFIG_HAS_IOMEM=y
|
||||
CONFIG_HAS_IOPORT=y
|
||||
CONFIG_HAS_IOPORT_MAP=y
|
||||
CONFIG_HAVE_SMP=y
|
||||
CONFIG_HOTPLUG_CORE_SYNC=y
|
||||
CONFIG_HOTPLUG_CORE_SYNC_DEAD=y
|
||||
CONFIG_HOTPLUG_CPU=y
|
||||
CONFIG_HW_RANDOM=y
|
||||
CONFIG_HW_RANDOM_MTK=y
|
||||
CONFIG_HZ_FIXED=0
|
||||
# CONFIG_IDPF is not set
|
||||
CONFIG_INITRAMFS_SOURCE=""
|
||||
CONFIG_IRQCHIP=y
|
||||
CONFIG_IRQSTACKS=y
|
||||
CONFIG_IRQ_DOMAIN=y
|
||||
CONFIG_IRQ_DOMAIN_HIERARCHY=y
|
||||
CONFIG_IRQ_FORCED_THREADING=y
|
||||
CONFIG_IRQ_TIME_ACCOUNTING=y
|
||||
CONFIG_IRQ_WORK=y
|
||||
# CONFIG_LEDS_BRIGHTNESS_HW_CHANGED is not set
|
||||
# CONFIG_LEDS_SMARTRG_LED is not set
|
||||
CONFIG_LIBFDT=y
|
||||
CONFIG_LOCK_DEBUGGING_SUPPORT=y
|
||||
CONFIG_LOCK_SPIN_ON_OWNER=y
|
||||
CONFIG_LZO_COMPRESS=y
|
||||
CONFIG_LZO_DECOMPRESS=y
|
||||
# CONFIG_MACH_MT2701 is not set
|
||||
# CONFIG_MACH_MT6589 is not set
|
||||
# CONFIG_MACH_MT6592 is not set
|
||||
# CONFIG_MACH_MT7623 is not set
|
||||
CONFIG_MACH_MT7629=y
|
||||
# CONFIG_MACH_MT8127 is not set
|
||||
# CONFIG_MACH_MT8135 is not set
|
||||
CONFIG_MDIO_BUS=y
|
||||
CONFIG_MDIO_DEVICE=y
|
||||
CONFIG_MDIO_DEVRES=y
|
||||
CONFIG_MEDIATEK_GE_PHY=y
|
||||
CONFIG_MEDIATEK_WATCHDOG=y
|
||||
# CONFIG_MFD_AIROHA_AN8855 is not set
|
||||
CONFIG_MFD_SYSCON=y
|
||||
CONFIG_MIGHT_HAVE_CACHE_L2X0=y
|
||||
CONFIG_MIGRATION=y
|
||||
CONFIG_MMU_LAZY_TLB_REFCOUNT=y
|
||||
CONFIG_MODULES_USE_ELF_REL=y
|
||||
CONFIG_MTD_NAND_CORE=y
|
||||
CONFIG_MTD_NAND_ECC=y
|
||||
CONFIG_MTD_NAND_ECC_MEDIATEK=y
|
||||
CONFIG_MTD_NAND_ECC_SW_HAMMING=y
|
||||
CONFIG_MTD_NAND_MTK_BMT=y
|
||||
CONFIG_MTD_RAW_NAND=y
|
||||
CONFIG_MTD_SPI_NAND=y
|
||||
CONFIG_MTD_SPI_NOR=y
|
||||
CONFIG_MTD_SPLIT_FIRMWARE=y
|
||||
CONFIG_MTD_SPLIT_FIT_FW=y
|
||||
CONFIG_MTD_UBI=y
|
||||
CONFIG_MTD_UBI_BEB_LIMIT=20
|
||||
CONFIG_MTD_UBI_BLOCK=y
|
||||
CONFIG_MTD_UBI_WL_THRESHOLD=4096
|
||||
# CONFIG_MTK_CMDQ is not set
|
||||
CONFIG_MTK_CPUX_TIMER=y
|
||||
CONFIG_MTK_INFRACFG=y
|
||||
CONFIG_MTK_NET_PHYLIB=y
|
||||
# CONFIG_MTK_PMIC_WRAP is not set
|
||||
CONFIG_MTK_SCPSYS=y
|
||||
CONFIG_MTK_SCPSYS_PM_DOMAINS=y
|
||||
CONFIG_MTK_TIMER=y
|
||||
CONFIG_MUTEX_SPIN_ON_OWNER=y
|
||||
CONFIG_NEED_DMA_MAP_STATE=y
|
||||
CONFIG_NEED_SRCU_NMI_SAFE=y
|
||||
CONFIG_NETFILTER=y
|
||||
CONFIG_NETFILTER_BPF_LINK=y
|
||||
# CONFIG_NET_AIROHA is not set
|
||||
CONFIG_NET_DEVLINK=y
|
||||
CONFIG_NET_DSA=y
|
||||
CONFIG_NET_DSA_MT7530=y
|
||||
CONFIG_NET_DSA_MT7530_MDIO=y
|
||||
# CONFIG_NET_DSA_MT7530_MMIO is not set
|
||||
CONFIG_NET_DSA_TAG_MTK=y
|
||||
CONFIG_NET_EGRESS=y
|
||||
CONFIG_NET_FLOW_LIMIT=y
|
||||
CONFIG_NET_INGRESS=y
|
||||
CONFIG_NET_MEDIATEK_SOC=y
|
||||
CONFIG_NET_MEDIATEK_SOC_WED=y
|
||||
CONFIG_NET_SELFTESTS=y
|
||||
CONFIG_NET_VENDOR_MEDIATEK=y
|
||||
CONFIG_NET_XGRESS=y
|
||||
CONFIG_NLS=y
|
||||
CONFIG_NO_HZ_COMMON=y
|
||||
CONFIG_NO_HZ_IDLE=y
|
||||
CONFIG_NR_CPUS=2
|
||||
CONFIG_NVMEM=y
|
||||
CONFIG_NVMEM_LAYOUTS=y
|
||||
# CONFIG_NVMEM_LAYOUT_ADTRAN is not set
|
||||
CONFIG_NVMEM_LAYOUT_ASCII_ENV=y
|
||||
# CONFIG_NVMEM_MTK_EFUSE is not set
|
||||
CONFIG_NVMEM_SYSFS=y
|
||||
CONFIG_OF=y
|
||||
CONFIG_OF_ADDRESS=y
|
||||
CONFIG_OF_EARLY_FLATTREE=y
|
||||
CONFIG_OF_FLATTREE=y
|
||||
CONFIG_OF_GPIO=y
|
||||
CONFIG_OF_IRQ=y
|
||||
CONFIG_OF_KOBJ=y
|
||||
CONFIG_OF_MDIO=y
|
||||
CONFIG_OLD_SIGACTION=y
|
||||
CONFIG_OLD_SIGSUSPEND3=y
|
||||
CONFIG_OUTER_CACHE=y
|
||||
CONFIG_OUTER_CACHE_SYNC=y
|
||||
CONFIG_PADATA=y
|
||||
CONFIG_PAGE_OFFSET=0xC0000000
|
||||
CONFIG_PAGE_POOL=y
|
||||
CONFIG_PAGE_POOL_STATS=y
|
||||
CONFIG_PAGE_SIZE_LESS_THAN_256KB=y
|
||||
CONFIG_PAGE_SIZE_LESS_THAN_64KB=y
|
||||
CONFIG_PCI=y
|
||||
CONFIG_PCIEAER=y
|
||||
CONFIG_PCIEPORTBUS=y
|
||||
CONFIG_PCIE_MEDIATEK=y
|
||||
CONFIG_PCIE_PME=y
|
||||
CONFIG_PCI_DOMAINS=y
|
||||
CONFIG_PCI_DOMAINS_GENERIC=y
|
||||
CONFIG_PCI_MSI=y
|
||||
CONFIG_PCS_MTK_LYNXI=y
|
||||
CONFIG_PERF_USE_VMALLOC=y
|
||||
CONFIG_PER_VMA_LOCK=y
|
||||
CONFIG_PGTABLE_LEVELS=2
|
||||
CONFIG_PHYLIB=y
|
||||
CONFIG_PHYLIB_LEDS=y
|
||||
CONFIG_PHYLINK=y
|
||||
# CONFIG_PHY_MTK_DP is not set
|
||||
# CONFIG_PHY_MTK_MIPI_CSI_0_5 is not set
|
||||
# CONFIG_PHY_MTK_PCIE is not set
|
||||
CONFIG_PHY_MTK_TPHY=y
|
||||
# CONFIG_PHY_MTK_UFS is not set
|
||||
# CONFIG_PHY_MTK_XSPHY is not set
|
||||
CONFIG_PINCTRL=y
|
||||
CONFIG_PINCTRL_MT7629=y
|
||||
CONFIG_PINCTRL_MTK_MOORE=y
|
||||
CONFIG_PINCTRL_MTK_V2=y
|
||||
CONFIG_PM=y
|
||||
CONFIG_PM_CLK=y
|
||||
CONFIG_PM_GENERIC_DOMAINS=y
|
||||
CONFIG_PM_GENERIC_DOMAINS_OF=y
|
||||
CONFIG_PTP_1588_CLOCK_OPTIONAL=y
|
||||
CONFIG_PWM=y
|
||||
CONFIG_PWM_MEDIATEK=y
|
||||
# CONFIG_PWM_MTK_DISP is not set
|
||||
CONFIG_RANDSTRUCT_NONE=y
|
||||
CONFIG_RAS=y
|
||||
CONFIG_RATIONAL=y
|
||||
CONFIG_REGMAP=y
|
||||
CONFIG_REGMAP_MMIO=y
|
||||
CONFIG_RESET_CONTROLLER=y
|
||||
CONFIG_RFS_ACCEL=y
|
||||
CONFIG_RPS=y
|
||||
# CONFIG_RTL8367S_GSW is not set
|
||||
CONFIG_RWSEM_SPIN_ON_OWNER=y
|
||||
CONFIG_SCSI=y
|
||||
CONFIG_SCSI_COMMON=y
|
||||
CONFIG_SERIAL_8250_FSL=y
|
||||
CONFIG_SERIAL_8250_MT6577=y
|
||||
CONFIG_SERIAL_8250_NR_UARTS=3
|
||||
CONFIG_SERIAL_8250_RUNTIME_UARTS=3
|
||||
CONFIG_SERIAL_MCTRL_GPIO=y
|
||||
CONFIG_SERIAL_OF_PLATFORM=y
|
||||
CONFIG_SGL_ALLOC=y
|
||||
CONFIG_SG_POOL=y
|
||||
CONFIG_SMP=y
|
||||
CONFIG_SMP_ON_UP=y
|
||||
CONFIG_SOCK_RX_QUEUE_MAPPING=y
|
||||
CONFIG_SOFTIRQ_ON_OWN_STACK=y
|
||||
CONFIG_SPARSE_IRQ=y
|
||||
CONFIG_SPI=y
|
||||
CONFIG_SPI_MASTER=y
|
||||
CONFIG_SPI_MEM=y
|
||||
CONFIG_SPI_MT65XX=y
|
||||
CONFIG_SPI_MTK_NOR=y
|
||||
CONFIG_SPI_MTK_SNFI=y
|
||||
CONFIG_STACKTRACE=y
|
||||
# CONFIG_SWAP is not set
|
||||
CONFIG_SWCONFIG=y
|
||||
CONFIG_SWPHY=y
|
||||
CONFIG_SWP_EMULATE=y
|
||||
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
|
||||
CONFIG_THREAD_INFO_IN_TASK=y
|
||||
CONFIG_TICK_CPU_ACCOUNTING=y
|
||||
CONFIG_TIMER_OF=y
|
||||
CONFIG_TIMER_PROBE=y
|
||||
CONFIG_TREE_RCU=y
|
||||
CONFIG_TREE_SRCU=y
|
||||
CONFIG_UBIFS_FS=y
|
||||
CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h"
|
||||
CONFIG_UNWINDER_ARM=y
|
||||
CONFIG_USB=y
|
||||
CONFIG_USB_COMMON=y
|
||||
CONFIG_USB_SUPPORT=y
|
||||
CONFIG_USB_XHCI_HCD=y
|
||||
CONFIG_USB_XHCI_MTK=y
|
||||
# CONFIG_USB_XHCI_PLATFORM is not set
|
||||
CONFIG_USE_OF=y
|
||||
# CONFIG_VFP is not set
|
||||
CONFIG_WATCHDOG_CORE=y
|
||||
# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set
|
||||
CONFIG_XPS=y
|
||||
CONFIG_XXHASH=y
|
||||
CONFIG_XZ_DEC_ARM=y
|
||||
CONFIG_XZ_DEC_BCJ=y
|
||||
CONFIG_ZBOOT_ROM_BSS=0
|
||||
CONFIG_ZBOOT_ROM_TEXT=0
|
||||
CONFIG_ZLIB_DEFLATE=y
|
||||
CONFIG_ZLIB_INFLATE=y
|
||||
CONFIG_ZSTD_COMMON=y
|
||||
CONFIG_ZSTD_COMPRESS=y
|
||||
CONFIG_ZSTD_DECOMPRESS=y
|
||||
@ -1,151 +0,0 @@
|
||||
From 1673d720b7e2862a5ff1994922558b7427f8a56b Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Golle <daniel@makrotopia.org>
|
||||
Date: Tue, 17 Dec 2024 09:54:26 +0100
|
||||
Subject: [PATCH 1/2] pinctrl: mediatek: add support for MTK_PULL_PD_TYPE
|
||||
|
||||
The MediaTek MT7988 SoC got some pins which only got configurable
|
||||
pull-down but unlike previous designs there is no pull-up option.
|
||||
Add new type MTK_PULL_PD_TYPE to support configuring such pins.
|
||||
|
||||
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
|
||||
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
Link: https://lore.kernel.org/20241217085435.9586-2-linux@fw-web.de
|
||||
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
|
||||
---
|
||||
.../pinctrl/mediatek/pinctrl-mtk-common-v2.c | 73 ++++++++++++++++---
|
||||
.../pinctrl/mediatek/pinctrl-mtk-common-v2.h | 1 +
|
||||
2 files changed, 63 insertions(+), 11 deletions(-)
|
||||
|
||||
--- a/drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.c
|
||||
+++ b/drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.c
|
||||
@@ -573,7 +573,7 @@ EXPORT_SYMBOL_GPL(mtk_pinconf_bias_get_r
|
||||
*/
|
||||
static int mtk_pinconf_bias_set_pu_pd(struct mtk_pinctrl *hw,
|
||||
const struct mtk_pin_desc *desc,
|
||||
- u32 pullup, u32 arg)
|
||||
+ u32 pullup, u32 arg, bool pd_only)
|
||||
{
|
||||
int err, pu, pd;
|
||||
|
||||
@@ -587,18 +587,34 @@ static int mtk_pinconf_bias_set_pu_pd(st
|
||||
pu = 0;
|
||||
pd = 1;
|
||||
} else {
|
||||
- err = -EINVAL;
|
||||
- goto out;
|
||||
+ return -EINVAL;
|
||||
}
|
||||
|
||||
- err = mtk_hw_set_value(hw, desc, PINCTRL_PIN_REG_PU, pu);
|
||||
- if (err)
|
||||
- goto out;
|
||||
+ if (!pd_only) {
|
||||
+ err = mtk_hw_set_value(hw, desc, PINCTRL_PIN_REG_PU, pu);
|
||||
+ if (err)
|
||||
+ return err;
|
||||
+ }
|
||||
|
||||
- err = mtk_hw_set_value(hw, desc, PINCTRL_PIN_REG_PD, pd);
|
||||
+ return mtk_hw_set_value(hw, desc, PINCTRL_PIN_REG_PD, pd);
|
||||
+}
|
||||
+
|
||||
+static int mtk_pinconf_bias_set_pd(struct mtk_pinctrl *hw,
|
||||
+ const struct mtk_pin_desc *desc,
|
||||
+ u32 pullup, u32 arg)
|
||||
+{
|
||||
+ int err, pd;
|
||||
+
|
||||
+ if (arg != MTK_DISABLE && arg != MTK_ENABLE)
|
||||
+ return -EINVAL;
|
||||
+
|
||||
+ if (arg == MTK_DISABLE || pullup)
|
||||
+ pd = 0;
|
||||
+ else if (!pullup)
|
||||
+ pd = 1;
|
||||
+
|
||||
+ return mtk_hw_set_value(hw, desc, PINCTRL_PIN_REG_PD, pd);
|
||||
|
||||
-out:
|
||||
- return err;
|
||||
}
|
||||
|
||||
static int mtk_pinconf_bias_set_pullsel_pullen(struct mtk_pinctrl *hw,
|
||||
@@ -737,7 +753,7 @@ static int mtk_pinconf_bias_set_pu_pd_rs
|
||||
return err;
|
||||
}
|
||||
|
||||
- return mtk_pinconf_bias_set_pu_pd(hw, desc, pullup, enable);
|
||||
+ return mtk_pinconf_bias_set_pu_pd(hw, desc, pullup, enable, false);
|
||||
}
|
||||
|
||||
int mtk_pinconf_bias_set_combo(struct mtk_pinctrl *hw,
|
||||
@@ -758,8 +774,14 @@ int mtk_pinconf_bias_set_combo(struct mt
|
||||
return 0;
|
||||
}
|
||||
|
||||
+ if (try_all_type & MTK_PULL_PD_TYPE) {
|
||||
+ err = mtk_pinconf_bias_set_pu_pd(hw, desc, pullup, arg, true);
|
||||
+ if (!err)
|
||||
+ return err;
|
||||
+ }
|
||||
+
|
||||
if (try_all_type & MTK_PULL_PU_PD_TYPE) {
|
||||
- err = mtk_pinconf_bias_set_pu_pd(hw, desc, pullup, arg);
|
||||
+ err = mtk_pinconf_bias_set_pu_pd(hw, desc, pullup, arg, false);
|
||||
if (!err)
|
||||
return 0;
|
||||
}
|
||||
@@ -878,6 +900,29 @@ out:
|
||||
return err;
|
||||
}
|
||||
|
||||
+static int mtk_pinconf_bias_get_pd(struct mtk_pinctrl *hw,
|
||||
+ const struct mtk_pin_desc *desc,
|
||||
+ u32 *pullup, u32 *enable)
|
||||
+{
|
||||
+ int err, pd;
|
||||
+
|
||||
+ err = mtk_hw_get_value(hw, desc, PINCTRL_PIN_REG_PD, &pd);
|
||||
+ if (err)
|
||||
+ goto out;
|
||||
+
|
||||
+ if (pd == 0) {
|
||||
+ *pullup = 0;
|
||||
+ *enable = MTK_DISABLE;
|
||||
+ } else if (pd == 1) {
|
||||
+ *pullup = 0;
|
||||
+ *enable = MTK_ENABLE;
|
||||
+ } else
|
||||
+ err = -EINVAL;
|
||||
+
|
||||
+out:
|
||||
+ return err;
|
||||
+}
|
||||
+
|
||||
static int mtk_pinconf_bias_get_pullsel_pullen(struct mtk_pinctrl *hw,
|
||||
const struct mtk_pin_desc *desc,
|
||||
u32 *pullup, u32 *enable)
|
||||
@@ -947,6 +992,12 @@ int mtk_pinconf_bias_get_combo(struct mt
|
||||
return 0;
|
||||
}
|
||||
|
||||
+ if (try_all_type & MTK_PULL_PD_TYPE) {
|
||||
+ err = mtk_pinconf_bias_get_pd(hw, desc, pullup, enable);
|
||||
+ if (!err)
|
||||
+ return err;
|
||||
+ }
|
||||
+
|
||||
if (try_all_type & MTK_PULL_PU_PD_TYPE) {
|
||||
err = mtk_pinconf_bias_get_pu_pd(hw, desc, pullup, enable);
|
||||
if (!err)
|
||||
--- a/drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.h
|
||||
+++ b/drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.h
|
||||
@@ -24,6 +24,7 @@
|
||||
* turned on/off itself. But it can't be selected pull up/down
|
||||
*/
|
||||
#define MTK_PULL_RSEL_TYPE BIT(3)
|
||||
+#define MTK_PULL_PD_TYPE BIT(4)
|
||||
/* MTK_PULL_PU_PD_RSEL_TYPE is a type which is controlled by
|
||||
* MTK_PULL_PU_PD_TYPE and MTK_PULL_RSEL_TYPE.
|
||||
*/
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,41 +0,0 @@
|
||||
From 0e18b099672160698dfbd7c3c82e03e011c907e6 Mon Sep 17 00:00:00 2001
|
||||
From: Linus Walleij <linus.walleij@linaro.org>
|
||||
Date: Wed, 8 Jan 2025 22:52:44 +0100
|
||||
Subject: [PATCH] pinctrl: mediatek: Drop mtk_pinconf_bias_set_pd()
|
||||
|
||||
This function is unused and causing compile errors, delete it.
|
||||
|
||||
Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
|
||||
Link: https://lore.kernel.org/linux-next/20250106164630.4447cd0d@canb.auug.org.au/
|
||||
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
|
||||
---
|
||||
.../pinctrl/mediatek/pinctrl-mtk-common-v2.c | 18 ------------------
|
||||
1 file changed, 18 deletions(-)
|
||||
|
||||
--- a/drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.c
|
||||
+++ b/drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.c
|
||||
@@ -599,24 +599,6 @@ static int mtk_pinconf_bias_set_pu_pd(st
|
||||
return mtk_hw_set_value(hw, desc, PINCTRL_PIN_REG_PD, pd);
|
||||
}
|
||||
|
||||
-static int mtk_pinconf_bias_set_pd(struct mtk_pinctrl *hw,
|
||||
- const struct mtk_pin_desc *desc,
|
||||
- u32 pullup, u32 arg)
|
||||
-{
|
||||
- int err, pd;
|
||||
-
|
||||
- if (arg != MTK_DISABLE && arg != MTK_ENABLE)
|
||||
- return -EINVAL;
|
||||
-
|
||||
- if (arg == MTK_DISABLE || pullup)
|
||||
- pd = 0;
|
||||
- else if (!pullup)
|
||||
- pd = 1;
|
||||
-
|
||||
- return mtk_hw_set_value(hw, desc, PINCTRL_PIN_REG_PD, pd);
|
||||
-
|
||||
-}
|
||||
-
|
||||
static int mtk_pinconf_bias_set_pullsel_pullen(struct mtk_pinctrl *hw,
|
||||
const struct mtk_pin_desc *desc,
|
||||
u32 pullup, u32 arg)
|
||||
@ -1,71 +0,0 @@
|
||||
From 52e2ca3be4b6d451fef0a2cd337157dd021b830f Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
|
||||
Date: Wed, 5 Jun 2024 10:54:33 +0200
|
||||
Subject: [PATCH 01/32] arm64: dts: mediatek: mt7988: add UART controllers
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
MT7988 has three on-SoC UART controllers that support M16C450 and
|
||||
M16550A modes.
|
||||
|
||||
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
|
||||
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
Link: https://lore.kernel.org/r/20240605085433.26513-2-zajec5@gmail.com
|
||||
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
|
||||
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
---
|
||||
arch/arm64/boot/dts/mediatek/mt7988a.dtsi | 35 ++++++++++++++++++++++-
|
||||
1 file changed, 34 insertions(+), 1 deletion(-)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
@@ -86,7 +86,7 @@
|
||||
#clock-cells = <1>;
|
||||
};
|
||||
|
||||
- clock-controller@1001b000 {
|
||||
+ topckgen: clock-controller@1001b000 {
|
||||
compatible = "mediatek,mt7988-topckgen", "syscon";
|
||||
reg = <0 0x1001b000 0 0x1000>;
|
||||
#clock-cells = <1>;
|
||||
@@ -124,6 +124,39 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
+ serial@11000000 {
|
||||
+ compatible = "mediatek,mt7988-uart", "mediatek,mt6577-uart";
|
||||
+ reg = <0 0x11000000 0 0x100>;
|
||||
+ interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ interrupt-names = "uart", "wakeup";
|
||||
+ clocks = <&topckgen CLK_TOP_UART_SEL>,
|
||||
+ <&infracfg CLK_INFRA_52M_UART0_CK>;
|
||||
+ clock-names = "baud", "bus";
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+
|
||||
+ serial@11000100 {
|
||||
+ compatible = "mediatek,mt7988-uart", "mediatek,mt6577-uart";
|
||||
+ reg = <0 0x11000100 0 0x100>;
|
||||
+ interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ interrupt-names = "uart", "wakeup";
|
||||
+ clocks = <&topckgen CLK_TOP_UART_SEL>,
|
||||
+ <&infracfg CLK_INFRA_52M_UART1_CK>;
|
||||
+ clock-names = "baud", "bus";
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+
|
||||
+ serial@11000200 {
|
||||
+ compatible = "mediatek,mt7988-uart", "mediatek,mt6577-uart";
|
||||
+ reg = <0 0x11000200 0 0x100>;
|
||||
+ interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ interrupt-names = "uart", "wakeup";
|
||||
+ clocks = <&topckgen CLK_TOP_UART_SEL>,
|
||||
+ <&infracfg CLK_INFRA_52M_UART2_CK>;
|
||||
+ clock-names = "baud", "bus";
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+
|
||||
i2c@11003000 {
|
||||
compatible = "mediatek,mt7981-i2c";
|
||||
reg = <0 0x11003000 0 0x1000>,
|
||||
@ -1,35 +0,0 @@
|
||||
From 390529e00d5586eb6d7f4c33c23dee7f43ac14e7 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
|
||||
Date: Thu, 13 Jun 2024 21:59:33 +0200
|
||||
Subject: [PATCH 02/32] arm64: dts: mediatek: mt7988: add efuse block
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
MT7988 (AKA MediaTek Filogic 880) uses efuse for storing calibration
|
||||
data.
|
||||
|
||||
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
|
||||
Link: https://lore.kernel.org/r/20240613195933.31089-2-zajec5@gmail.com
|
||||
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
|
||||
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
---
|
||||
arch/arm64/boot/dts/mediatek/mt7988a.dtsi | 7 +++++++
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
@@ -234,6 +234,13 @@
|
||||
#clock-cells = <1>;
|
||||
};
|
||||
|
||||
+ efuse@11f50000 {
|
||||
+ compatible = "mediatek,mt7988-efuse", "mediatek,efuse";
|
||||
+ reg = <0 0x11f50000 0 0x1000>;
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <1>;
|
||||
+ };
|
||||
+
|
||||
clock-controller@15000000 {
|
||||
compatible = "mediatek,mt7988-ethsys", "syscon";
|
||||
reg = <0 0x15000000 0 0x1000>;
|
||||
@ -1,85 +0,0 @@
|
||||
From a01cc71a8c55e7fc12cb37109953ad9c58a12d4f Mon Sep 17 00:00:00 2001
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
Date: Tue, 17 Dec 2024 09:54:29 +0100
|
||||
Subject: [PATCH 03/32] arm64: dts: mediatek: mt7988: Add pinctrl support
|
||||
|
||||
Add mt7988a pinctrl node.
|
||||
|
||||
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/20241217085435.9586-5-linux@fw-web.de
|
||||
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
---
|
||||
arch/arm64/boot/dts/mediatek/mt7988a.dtsi | 54 +++++++++++++++++++++++
|
||||
1 file changed, 54 insertions(+)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
@@ -3,6 +3,7 @@
|
||||
#include <dt-bindings/clock/mediatek,mt7988-clk.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
#include <dt-bindings/phy/phy.h>
|
||||
+#include <dt-bindings/pinctrl/mt65xx.h>
|
||||
|
||||
/ {
|
||||
compatible = "mediatek,mt7988a";
|
||||
@@ -105,6 +106,59 @@
|
||||
#clock-cells = <1>;
|
||||
};
|
||||
|
||||
+ pio: pinctrl@1001f000 {
|
||||
+ compatible = "mediatek,mt7988-pinctrl";
|
||||
+ reg = <0 0x1001f000 0 0x1000>,
|
||||
+ <0 0x11c10000 0 0x1000>,
|
||||
+ <0 0x11d00000 0 0x1000>,
|
||||
+ <0 0x11d20000 0 0x1000>,
|
||||
+ <0 0x11e00000 0 0x1000>,
|
||||
+ <0 0x11f00000 0 0x1000>,
|
||||
+ <0 0x1000b000 0 0x1000>;
|
||||
+ reg-names = "gpio", "iocfg_tr",
|
||||
+ "iocfg_br", "iocfg_rb",
|
||||
+ "iocfg_lb", "iocfg_tl", "eint";
|
||||
+ gpio-controller;
|
||||
+ #gpio-cells = <2>;
|
||||
+ gpio-ranges = <&pio 0 0 84>;
|
||||
+ interrupt-controller;
|
||||
+ interrupts = <GIC_SPI 225 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ interrupt-parent = <&gic>;
|
||||
+ #interrupt-cells = <2>;
|
||||
+
|
||||
+ pcie0_pins: pcie0-pins {
|
||||
+ mux {
|
||||
+ function = "pcie";
|
||||
+ groups = "pcie_2l_0_pereset", "pcie_clk_req_n0_0",
|
||||
+ "pcie_wake_n0_0";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ pcie1_pins: pcie1-pins {
|
||||
+ mux {
|
||||
+ function = "pcie";
|
||||
+ groups = "pcie_2l_1_pereset", "pcie_clk_req_n1",
|
||||
+ "pcie_wake_n1_0";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ pcie2_pins: pcie2-pins {
|
||||
+ mux {
|
||||
+ function = "pcie";
|
||||
+ groups = "pcie_1l_0_pereset", "pcie_clk_req_n2_0",
|
||||
+ "pcie_wake_n2_0";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ pcie3_pins: pcie3-pins {
|
||||
+ mux {
|
||||
+ function = "pcie";
|
||||
+ groups = "pcie_1l_1_pereset", "pcie_clk_req_n3",
|
||||
+ "pcie_wake_n3_0";
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
pwm@10048000 {
|
||||
compatible = "mediatek,mt7988-pwm";
|
||||
reg = <0 0x10048000 0 0x1000>;
|
||||
@ -1,37 +0,0 @@
|
||||
From b3bb498ff23f5bcaa95614e0f8c9176690af8acb Mon Sep 17 00:00:00 2001
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
Date: Tue, 17 Dec 2024 10:12:15 +0100
|
||||
Subject: [PATCH 04/32] arm64: dts: mediatek: mt7988: Add reserved memory
|
||||
|
||||
Add memory range handled by ATF to not be touched by linux kernel.
|
||||
ATF is SoC specific and not board-specific so add it to mt7988.dtsi.
|
||||
|
||||
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/20241217091238.16032-2-linux@fw-web.de
|
||||
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
---
|
||||
arch/arm64/boot/dts/mediatek/mt7988a.dtsi | 12 ++++++++++++
|
||||
1 file changed, 12 insertions(+)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
@@ -62,6 +62,18 @@
|
||||
method = "smc";
|
||||
};
|
||||
|
||||
+ reserved-memory {
|
||||
+ #address-cells = <2>;
|
||||
+ #size-cells = <2>;
|
||||
+ ranges;
|
||||
+
|
||||
+ /* 320 KiB reserved for ARM Trusted Firmware (BL31 and BL32) */
|
||||
+ secmon@43000000 {
|
||||
+ reg = <0 0x43000000 0 0x50000>;
|
||||
+ no-map;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
soc {
|
||||
compatible = "simple-bus";
|
||||
ranges;
|
||||
@ -1,52 +0,0 @@
|
||||
From de6ba1a3ef621762394e841888de3e0ed127e20a Mon Sep 17 00:00:00 2001
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
Date: Tue, 17 Dec 2024 10:12:16 +0100
|
||||
Subject: [PATCH 05/32] arm64: dts: mediatek: mt7988: Add mmc support
|
||||
|
||||
Add devicetree node for MMC controller.
|
||||
|
||||
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/20241217091238.16032-3-linux@fw-web.de
|
||||
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
---
|
||||
arch/arm64/boot/dts/mediatek/mt7988a.dtsi | 21 ++++++++++++++++++++-
|
||||
1 file changed, 20 insertions(+), 1 deletion(-)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
@@ -112,7 +112,7 @@
|
||||
#reset-cells = <1>;
|
||||
};
|
||||
|
||||
- clock-controller@1001e000 {
|
||||
+ apmixedsys: clock-controller@1001e000 {
|
||||
compatible = "mediatek,mt7988-apmixedsys";
|
||||
reg = <0 0x1001e000 0 0x1000>;
|
||||
#clock-cells = <1>;
|
||||
@@ -293,6 +293,25 @@
|
||||
clock-names = "sys_ck", "ref_ck", "mcu_ck", "dma_ck", "xhci_ck";
|
||||
};
|
||||
|
||||
+ mmc0: mmc@11230000 {
|
||||
+ compatible = "mediatek,mt7988-mmc";
|
||||
+ reg = <0 0x11230000 0 0x1000>,
|
||||
+ <0 0x11D60000 0 0x1000>;
|
||||
+ interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ clocks = <&infracfg CLK_INFRA_MSDC400>,
|
||||
+ <&infracfg CLK_INFRA_MSDC2_HCK>,
|
||||
+ <&infracfg CLK_INFRA_66M_MSDC_0_HCK>,
|
||||
+ <&infracfg CLK_INFRA_133M_MSDC_0_HCK>;
|
||||
+ assigned-clocks = <&topckgen CLK_TOP_EMMC_250M_SEL>,
|
||||
+ <&topckgen CLK_TOP_EMMC_400M_SEL>;
|
||||
+ assigned-clock-parents = <&topckgen CLK_TOP_NET1PLL_D5_D2>,
|
||||
+ <&apmixedsys CLK_APMIXED_MSDCPLL>;
|
||||
+ clock-names = "source", "hclk", "axi_cg", "ahb_cg";
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+
|
||||
clock-controller@11f40000 {
|
||||
compatible = "mediatek,mt7988-xfi-pll";
|
||||
reg = <0 0x11f40000 0 0x1000>;
|
||||
@ -1,62 +0,0 @@
|
||||
From f07e0e093c42736df56f4830179c19f48f8b0725 Mon Sep 17 00:00:00 2001
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
Date: Tue, 17 Dec 2024 10:12:17 +0100
|
||||
Subject: [PATCH 06/32] arm64: dts: mediatek: mt7988: Add lvts node
|
||||
|
||||
Add Low Voltage Thermal Sensor (LVTS) node for mt7988 SoC.
|
||||
|
||||
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/20241217091238.16032-4-linux@fw-web.de
|
||||
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
---
|
||||
arch/arm64/boot/dts/mediatek/mt7988a.dtsi | 17 +++++++++++++++++
|
||||
1 file changed, 17 insertions(+)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
@@ -4,6 +4,7 @@
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
#include <dt-bindings/phy/phy.h>
|
||||
#include <dt-bindings/pinctrl/mt65xx.h>
|
||||
+#include <dt-bindings/reset/mediatek,mt7988-resets.h>
|
||||
|
||||
/ {
|
||||
compatible = "mediatek,mt7988a";
|
||||
@@ -97,6 +98,7 @@
|
||||
compatible = "mediatek,mt7988-infracfg", "syscon";
|
||||
reg = <0 0x10001000 0 0x1000>;
|
||||
#clock-cells = <1>;
|
||||
+ #reset-cells = <1>;
|
||||
};
|
||||
|
||||
topckgen: clock-controller@1001b000 {
|
||||
@@ -265,6 +267,17 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
+ lvts: lvts@1100a000 {
|
||||
+ compatible = "mediatek,mt7988-lvts-ap";
|
||||
+ #thermal-sensor-cells = <1>;
|
||||
+ reg = <0 0x1100a000 0 0x1000>;
|
||||
+ clocks = <&infracfg CLK_INFRA_26M_THERM_SYSTEM>;
|
||||
+ interrupts = <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ resets = <&infracfg MT7988_INFRA_RST1_THERM_CTRL_SWRST>;
|
||||
+ nvmem-cells = <&lvts_calibration>;
|
||||
+ nvmem-cell-names = "lvts-calib-data-1";
|
||||
+ };
|
||||
+
|
||||
usb@11190000 {
|
||||
compatible = "mediatek,mt7988-xhci", "mediatek,mtk-xhci";
|
||||
reg = <0 0x11190000 0 0x2e00>,
|
||||
@@ -324,6 +337,10 @@
|
||||
reg = <0 0x11f50000 0 0x1000>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
+
|
||||
+ lvts_calibration: calib@918 {
|
||||
+ reg = <0x918 0x28>;
|
||||
+ };
|
||||
};
|
||||
|
||||
clock-controller@15000000 {
|
||||
@ -1,39 +0,0 @@
|
||||
From 122ed9fc41b948d79ac357f95f5438a4bd6786b8 Mon Sep 17 00:00:00 2001
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
Date: Tue, 17 Dec 2024 10:12:18 +0100
|
||||
Subject: [PATCH 07/32] arm64: dts: mediatek: mt7988: Add thermal-zone
|
||||
|
||||
Add basic thermal-zone node.
|
||||
|
||||
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/20241217091238.16032-5-linux@fw-web.de
|
||||
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
---
|
||||
arch/arm64/boot/dts/mediatek/mt7988a.dtsi | 15 +++++++++++++++
|
||||
1 file changed, 15 insertions(+)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
@@ -358,6 +358,21 @@
|
||||
};
|
||||
};
|
||||
|
||||
+ thermal-zones {
|
||||
+ cpu_thermal: cpu-thermal {
|
||||
+ polling-delay-passive = <1000>;
|
||||
+ polling-delay = <1000>;
|
||||
+ thermal-sensors = <&lvts 0>;
|
||||
+ trips {
|
||||
+ cpu_trip_crit: crit {
|
||||
+ temperature = <125000>;
|
||||
+ hysteresis = <2000>;
|
||||
+ type = "critical";
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
timer {
|
||||
compatible = "arm,armv8-timer";
|
||||
interrupt-parent = <&gic>;
|
||||
@ -1,31 +0,0 @@
|
||||
From 7fa08d530548ed57752703e9f011eeeb809ef9b0 Mon Sep 17 00:00:00 2001
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
Date: Tue, 17 Dec 2024 10:12:20 +0100
|
||||
Subject: [PATCH 08/32] arm64: dts: mediatek: mt7988: Add mcu-sys node for cpu
|
||||
|
||||
In preparation for adding support for CPU DVFS and clock tables for it,
|
||||
add the MCUSYS clock controller node.
|
||||
|
||||
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/20241217091238.16032-7-linux@fw-web.de
|
||||
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
---
|
||||
arch/arm64/boot/dts/mediatek/mt7988a.dtsi | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
@@ -192,6 +192,12 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
+ mcusys: mcusys@100e0000 {
|
||||
+ compatible = "mediatek,mt7988-mcusys", "syscon";
|
||||
+ reg = <0 0x100e0000 0 0x1000>;
|
||||
+ #clock-cells = <1>;
|
||||
+ };
|
||||
+
|
||||
serial@11000000 {
|
||||
compatible = "mediatek,mt7988-uart", "mediatek,mt6577-uart";
|
||||
reg = <0 0x11000000 0 0x100>;
|
||||
@ -1,84 +0,0 @@
|
||||
From b10331c8faa1208c61fb98d9b65da2828e239113 Mon Sep 17 00:00:00 2001
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
Date: Tue, 17 Dec 2024 10:12:21 +0100
|
||||
Subject: [PATCH 09/32] arm64: dts: mediatek: mt7988: Add CPU OPP table for
|
||||
clock scaling
|
||||
|
||||
Add operating points defining frequency/voltages of cpu cores.
|
||||
|
||||
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/20241217091238.16032-8-linux@fw-web.de
|
||||
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
---
|
||||
arch/arm64/boot/dts/mediatek/mt7988a.dtsi | 38 +++++++++++++++++++++++
|
||||
1 file changed, 38 insertions(+)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
@@ -21,6 +21,10 @@
|
||||
reg = <0x0>;
|
||||
device_type = "cpu";
|
||||
enable-method = "psci";
|
||||
+ clocks = <&mcusys CLK_MCU_ARM_DIV_SEL>,
|
||||
+ <&topckgen CLK_TOP_XTAL>;
|
||||
+ clock-names = "cpu", "intermediate";
|
||||
+ operating-points-v2 = <&cluster0_opp>;
|
||||
};
|
||||
|
||||
cpu@1 {
|
||||
@@ -28,6 +32,10 @@
|
||||
reg = <0x1>;
|
||||
device_type = "cpu";
|
||||
enable-method = "psci";
|
||||
+ clocks = <&mcusys CLK_MCU_ARM_DIV_SEL>,
|
||||
+ <&topckgen CLK_TOP_XTAL>;
|
||||
+ clock-names = "cpu", "intermediate";
|
||||
+ operating-points-v2 = <&cluster0_opp>;
|
||||
};
|
||||
|
||||
cpu@2 {
|
||||
@@ -35,6 +43,10 @@
|
||||
reg = <0x2>;
|
||||
device_type = "cpu";
|
||||
enable-method = "psci";
|
||||
+ clocks = <&mcusys CLK_MCU_ARM_DIV_SEL>,
|
||||
+ <&topckgen CLK_TOP_XTAL>;
|
||||
+ clock-names = "cpu", "intermediate";
|
||||
+ operating-points-v2 = <&cluster0_opp>;
|
||||
};
|
||||
|
||||
cpu@3 {
|
||||
@@ -42,6 +54,32 @@
|
||||
reg = <0x3>;
|
||||
device_type = "cpu";
|
||||
enable-method = "psci";
|
||||
+ clocks = <&mcusys CLK_MCU_ARM_DIV_SEL>,
|
||||
+ <&topckgen CLK_TOP_XTAL>;
|
||||
+ clock-names = "cpu", "intermediate";
|
||||
+ operating-points-v2 = <&cluster0_opp>;
|
||||
+ };
|
||||
+
|
||||
+ cluster0_opp: opp-table-0 {
|
||||
+ compatible = "operating-points-v2";
|
||||
+ opp-shared;
|
||||
+
|
||||
+ opp-800000000 {
|
||||
+ opp-hz = /bits/ 64 <800000000>;
|
||||
+ opp-microvolt = <850000>;
|
||||
+ };
|
||||
+ opp-1100000000 {
|
||||
+ opp-hz = /bits/ 64 <1100000000>;
|
||||
+ opp-microvolt = <850000>;
|
||||
+ };
|
||||
+ opp-1500000000 {
|
||||
+ opp-hz = /bits/ 64 <1500000000>;
|
||||
+ opp-microvolt = <850000>;
|
||||
+ };
|
||||
+ opp-1800000000 {
|
||||
+ opp-hz = /bits/ 64 <1800000000>;
|
||||
+ opp-microvolt = <900000>;
|
||||
+ };
|
||||
};
|
||||
};
|
||||
|
||||
@ -1,34 +0,0 @@
|
||||
From 39bb12c26f556046e55f3638e2e4184bfbfd0564 Mon Sep 17 00:00:00 2001
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
Date: Tue, 17 Dec 2024 10:12:22 +0100
|
||||
Subject: [PATCH 10/32] arm64: dts: mediatek: mt7988: Disable usb controllers
|
||||
by default
|
||||
|
||||
The controllers should be enabled at board level if used.
|
||||
|
||||
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/20241217091238.16032-9-linux@fw-web.de
|
||||
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
---
|
||||
arch/arm64/boot/dts/mediatek/mt7988a.dtsi | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
@@ -334,6 +334,7 @@
|
||||
<&infracfg CLK_INFRA_133M_USB_HCK>,
|
||||
<&infracfg CLK_INFRA_USB_XHCI>;
|
||||
clock-names = "sys_ck", "ref_ck", "mcu_ck", "dma_ck", "xhci_ck";
|
||||
+ status = "disabled";
|
||||
};
|
||||
|
||||
usb@11200000 {
|
||||
@@ -348,6 +349,7 @@
|
||||
<&infracfg CLK_INFRA_133M_USB_HCK_CK_P1>,
|
||||
<&infracfg CLK_INFRA_USB_XHCI_CK_P1>;
|
||||
clock-names = "sys_ck", "ref_ck", "mcu_ck", "dma_ck", "xhci_ck";
|
||||
+ status = "disabled";
|
||||
};
|
||||
|
||||
mmc0: mmc@11230000 {
|
||||
@ -1,59 +0,0 @@
|
||||
From 46d056b6c2376d3ef866f9ab5212879c97588892 Mon Sep 17 00:00:00 2001
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
Date: Tue, 17 Dec 2024 10:12:23 +0100
|
||||
Subject: [PATCH 11/32] arm64: dts: mediatek: mt7988: Add t-phy for ssusb1
|
||||
|
||||
USB controller needs phys for working properly.
|
||||
On mt7988 ssusb0 uses a xs-phy, ssusb uses t-phy.
|
||||
For now add the t-phy for ssusb1. We can reuse the mt7986 compatible
|
||||
here.
|
||||
|
||||
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/20241217091238.16032-10-linux@fw-web.de
|
||||
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
---
|
||||
arch/arm64/boot/dts/mediatek/mt7988a.dtsi | 25 +++++++++++++++++++++++
|
||||
1 file changed, 25 insertions(+)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
@@ -349,6 +349,8 @@
|
||||
<&infracfg CLK_INFRA_133M_USB_HCK_CK_P1>,
|
||||
<&infracfg CLK_INFRA_USB_XHCI_CK_P1>;
|
||||
clock-names = "sys_ck", "ref_ck", "mcu_ck", "dma_ck", "xhci_ck";
|
||||
+ phys = <&tphyu2port0 PHY_TYPE_USB2>,
|
||||
+ <&tphyu3port0 PHY_TYPE_USB3>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
@@ -371,6 +373,29 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
+ t-phy@11c50000 {
|
||||
+ compatible = "mediatek,mt7986-tphy",
|
||||
+ "mediatek,generic-tphy-v2";
|
||||
+ #address-cells = <2>;
|
||||
+ #size-cells = <2>;
|
||||
+ ranges;
|
||||
+ status = "disabled";
|
||||
+
|
||||
+ tphyu2port0: usb-phy@11c50000 {
|
||||
+ reg = <0 0x11c50000 0 0x700>;
|
||||
+ clocks = <&infracfg CLK_INFRA_USB_UTMI_CK_P1>;
|
||||
+ clock-names = "ref";
|
||||
+ #phy-cells = <1>;
|
||||
+ };
|
||||
+
|
||||
+ tphyu3port0: usb-phy@11c50700 {
|
||||
+ reg = <0 0x11c50700 0 0x900>;
|
||||
+ clocks = <&infracfg CLK_INFRA_USB_PIPE_CK_P1>;
|
||||
+ clock-names = "ref";
|
||||
+ #phy-cells = <1>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
clock-controller@11f40000 {
|
||||
compatible = "mediatek,mt7988-xfi-pll";
|
||||
reg = <0 0x11f40000 0 0x1000>;
|
||||
@ -1,176 +0,0 @@
|
||||
From aac2eb27ee500ca2828fe0fd1895ec6f9ef83787 Mon Sep 17 00:00:00 2001
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
Date: Tue, 17 Dec 2024 10:12:24 +0100
|
||||
Subject: [PATCH 12/32] arm64: dts: mediatek: mt7988: Add pcie nodes
|
||||
|
||||
Add pcie controllers for mt7988. Reuse mt7986 compatible.
|
||||
|
||||
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/20241217091238.16032-11-linux@fw-web.de
|
||||
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
---
|
||||
arch/arm64/boot/dts/mediatek/mt7988a.dtsi | 152 ++++++++++++++++++++++
|
||||
1 file changed, 152 insertions(+)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
@@ -373,6 +373,158 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
+ pcie@11280000 {
|
||||
+ compatible = "mediatek,mt7986-pcie",
|
||||
+ "mediatek,mt8192-pcie";
|
||||
+ device_type = "pci";
|
||||
+ #address-cells = <3>;
|
||||
+ #size-cells = <2>;
|
||||
+ reg = <0 0x11280000 0 0x2000>;
|
||||
+ reg-names = "pcie-mac";
|
||||
+ linux,pci-domain = <3>;
|
||||
+ interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ bus-range = <0x00 0xff>;
|
||||
+ ranges = <0x81000000 0x00 0x20000000 0x00
|
||||
+ 0x20000000 0x00 0x00200000>,
|
||||
+ <0x82000000 0x00 0x20200000 0x00
|
||||
+ 0x20200000 0x00 0x07e00000>;
|
||||
+ clocks = <&infracfg CLK_INFRA_PCIE_PIPE_P2>,
|
||||
+ <&infracfg CLK_INFRA_PCIE_GFMUX_TL_P2>,
|
||||
+ <&infracfg CLK_INFRA_PCIE_PERI_26M_CK_P2>,
|
||||
+ <&infracfg CLK_INFRA_133M_PCIE_CK_P2>;
|
||||
+ clock-names = "pl_250m", "tl_26m", "peri_26m",
|
||||
+ "top_133m";
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&pcie2_pins>;
|
||||
+ status = "disabled";
|
||||
+
|
||||
+ #interrupt-cells = <1>;
|
||||
+ interrupt-map-mask = <0 0 0 0x7>;
|
||||
+ interrupt-map = <0 0 0 1 &pcie_intc2 0>,
|
||||
+ <0 0 0 2 &pcie_intc2 1>,
|
||||
+ <0 0 0 3 &pcie_intc2 2>,
|
||||
+ <0 0 0 4 &pcie_intc2 3>;
|
||||
+ pcie_intc2: interrupt-controller {
|
||||
+ #address-cells = <0>;
|
||||
+ #interrupt-cells = <1>;
|
||||
+ interrupt-controller;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ pcie@11290000 {
|
||||
+ compatible = "mediatek,mt7986-pcie",
|
||||
+ "mediatek,mt8192-pcie";
|
||||
+ device_type = "pci";
|
||||
+ #address-cells = <3>;
|
||||
+ #size-cells = <2>;
|
||||
+ reg = <0 0x11290000 0 0x2000>;
|
||||
+ reg-names = "pcie-mac";
|
||||
+ linux,pci-domain = <2>;
|
||||
+ interrupts = <GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ bus-range = <0x00 0xff>;
|
||||
+ ranges = <0x81000000 0x00 0x28000000 0x00
|
||||
+ 0x28000000 0x00 0x00200000>,
|
||||
+ <0x82000000 0x00 0x28200000 0x00
|
||||
+ 0x28200000 0x00 0x07e00000>;
|
||||
+ clocks = <&infracfg CLK_INFRA_PCIE_PIPE_P3>,
|
||||
+ <&infracfg CLK_INFRA_PCIE_GFMUX_TL_P3>,
|
||||
+ <&infracfg CLK_INFRA_PCIE_PERI_26M_CK_P3>,
|
||||
+ <&infracfg CLK_INFRA_133M_PCIE_CK_P3>;
|
||||
+ clock-names = "pl_250m", "tl_26m", "peri_26m",
|
||||
+ "top_133m";
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&pcie3_pins>;
|
||||
+ status = "disabled";
|
||||
+
|
||||
+ #interrupt-cells = <1>;
|
||||
+ interrupt-map-mask = <0 0 0 0x7>;
|
||||
+ interrupt-map = <0 0 0 1 &pcie_intc3 0>,
|
||||
+ <0 0 0 2 &pcie_intc3 1>,
|
||||
+ <0 0 0 3 &pcie_intc3 2>,
|
||||
+ <0 0 0 4 &pcie_intc3 3>;
|
||||
+ pcie_intc3: interrupt-controller {
|
||||
+ #address-cells = <0>;
|
||||
+ #interrupt-cells = <1>;
|
||||
+ interrupt-controller;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ pcie@11300000 {
|
||||
+ compatible = "mediatek,mt7986-pcie",
|
||||
+ "mediatek,mt8192-pcie";
|
||||
+ device_type = "pci";
|
||||
+ #address-cells = <3>;
|
||||
+ #size-cells = <2>;
|
||||
+ reg = <0 0x11300000 0 0x2000>;
|
||||
+ reg-names = "pcie-mac";
|
||||
+ linux,pci-domain = <0>;
|
||||
+ interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ bus-range = <0x00 0xff>;
|
||||
+ ranges = <0x81000000 0x00 0x30000000 0x00
|
||||
+ 0x30000000 0x00 0x00200000>,
|
||||
+ <0x82000000 0x00 0x30200000 0x00
|
||||
+ 0x30200000 0x00 0x07e00000>;
|
||||
+ clocks = <&infracfg CLK_INFRA_PCIE_PIPE_P0>,
|
||||
+ <&infracfg CLK_INFRA_PCIE_GFMUX_TL_P0>,
|
||||
+ <&infracfg CLK_INFRA_PCIE_PERI_26M_CK_P0>,
|
||||
+ <&infracfg CLK_INFRA_133M_PCIE_CK_P0>;
|
||||
+ clock-names = "pl_250m", "tl_26m", "peri_26m",
|
||||
+ "top_133m";
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&pcie0_pins>;
|
||||
+ status = "disabled";
|
||||
+
|
||||
+ #interrupt-cells = <1>;
|
||||
+ interrupt-map-mask = <0 0 0 0x7>;
|
||||
+ interrupt-map = <0 0 0 1 &pcie_intc0 0>,
|
||||
+ <0 0 0 2 &pcie_intc0 1>,
|
||||
+ <0 0 0 3 &pcie_intc0 2>,
|
||||
+ <0 0 0 4 &pcie_intc0 3>;
|
||||
+ pcie_intc0: interrupt-controller {
|
||||
+ #address-cells = <0>;
|
||||
+ #interrupt-cells = <1>;
|
||||
+ interrupt-controller;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ pcie@11310000 {
|
||||
+ compatible = "mediatek,mt7986-pcie",
|
||||
+ "mediatek,mt8192-pcie";
|
||||
+ device_type = "pci";
|
||||
+ #address-cells = <3>;
|
||||
+ #size-cells = <2>;
|
||||
+ reg = <0 0x11310000 0 0x2000>;
|
||||
+ reg-names = "pcie-mac";
|
||||
+ linux,pci-domain = <1>;
|
||||
+ interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ bus-range = <0x00 0xff>;
|
||||
+ ranges = <0x81000000 0x00 0x38000000 0x00
|
||||
+ 0x38000000 0x00 0x00200000>,
|
||||
+ <0x82000000 0x00 0x38200000 0x00
|
||||
+ 0x38200000 0x00 0x07e00000>;
|
||||
+ clocks = <&infracfg CLK_INFRA_PCIE_PIPE_P1>,
|
||||
+ <&infracfg CLK_INFRA_PCIE_GFMUX_TL_P1>,
|
||||
+ <&infracfg CLK_INFRA_PCIE_PERI_26M_CK_P1>,
|
||||
+ <&infracfg CLK_INFRA_133M_PCIE_CK_P1>;
|
||||
+ clock-names = "pl_250m", "tl_26m", "peri_26m",
|
||||
+ "top_133m";
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&pcie1_pins>;
|
||||
+ status = "disabled";
|
||||
+
|
||||
+ #interrupt-cells = <1>;
|
||||
+ interrupt-map-mask = <0 0 0 0x7>;
|
||||
+ interrupt-map = <0 0 0 1 &pcie_intc1 0>,
|
||||
+ <0 0 0 2 &pcie_intc1 1>,
|
||||
+ <0 0 0 3 &pcie_intc1 2>,
|
||||
+ <0 0 0 4 &pcie_intc1 3>;
|
||||
+ pcie_intc1: interrupt-controller {
|
||||
+ #address-cells = <0>;
|
||||
+ #interrupt-cells = <1>;
|
||||
+ interrupt-controller;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
t-phy@11c50000 {
|
||||
compatible = "mediatek,mt7986-tphy",
|
||||
"mediatek,generic-tphy-v2";
|
||||
@ -1,211 +0,0 @@
|
||||
From 6b116c43782a153bcde18bd54d3220d81b476859 Mon Sep 17 00:00:00 2001
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
Date: Tue, 17 Dec 2024 09:54:30 +0100
|
||||
Subject: [PATCH 13/32] arm64: dts: mediatek: mt7988a-bpi-r4: Add pinctrl
|
||||
subnodes for bpi-r4
|
||||
|
||||
Add board specific pinctrl configurations on Bananapi R4.
|
||||
|
||||
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/20241217085435.9586-6-linux@fw-web.de
|
||||
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
---
|
||||
.../dts/mediatek/mt7988a-bananapi-bpi-r4.dts | 189 ++++++++++++++++++
|
||||
1 file changed, 189 insertions(+)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts
|
||||
@@ -9,3 +9,192 @@
|
||||
model = "Banana Pi BPI-R4";
|
||||
chassis-type = "embedded";
|
||||
};
|
||||
+
|
||||
+&pio {
|
||||
+ mdio0_pins: mdio0-pins {
|
||||
+ mux {
|
||||
+ function = "eth";
|
||||
+ groups = "mdc_mdio0";
|
||||
+ };
|
||||
+
|
||||
+ conf {
|
||||
+ pins = "SMI_0_MDC", "SMI_0_MDIO";
|
||||
+ drive-strength = <8>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ i2c0_pins: i2c0-g0-pins {
|
||||
+ mux {
|
||||
+ function = "i2c";
|
||||
+ groups = "i2c0_1";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ i2c1_pins: i2c1-g0-pins {
|
||||
+ mux {
|
||||
+ function = "i2c";
|
||||
+ groups = "i2c1_0";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ i2c1_sfp_pins: i2c1-sfp-g0-pins {
|
||||
+ mux {
|
||||
+ function = "i2c";
|
||||
+ groups = "i2c1_sfp";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ i2c2_0_pins: i2c2-g0-pins {
|
||||
+ mux {
|
||||
+ function = "i2c";
|
||||
+ groups = "i2c2_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";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ gbe0_led1_pins: gbe0-led1-pins {
|
||||
+ mux {
|
||||
+ function = "led";
|
||||
+ groups = "gbe0_led1";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ gbe1_led1_pins: gbe1-led1-pins {
|
||||
+ mux {
|
||||
+ function = "led";
|
||||
+ groups = "gbe1_led1";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ gbe2_led1_pins: gbe2-led1-pins {
|
||||
+ mux {
|
||||
+ function = "led";
|
||||
+ groups = "gbe2_led1";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ gbe3_led1_pins: gbe3-led1-pins {
|
||||
+ mux {
|
||||
+ function = "led";
|
||||
+ groups = "gbe3_led1";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ i2p5gbe_led0_pins: 2p5gbe-led0-pins {
|
||||
+ mux {
|
||||
+ function = "led";
|
||||
+ groups = "2p5gbe_led0";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ i2p5gbe_led1_pins: 2p5gbe-led1-pins {
|
||||
+ mux {
|
||||
+ function = "led";
|
||||
+ groups = "2p5gbe_led1";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ 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";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ uart0_pins: uart0-pins {
|
||||
+ mux {
|
||||
+ function = "uart";
|
||||
+ groups = "uart0";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ snfi_pins: snfi-pins {
|
||||
+ mux {
|
||||
+ function = "flash";
|
||||
+ groups = "snfi";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ spi0_pins: spi0-pins {
|
||||
+ mux {
|
||||
+ function = "spi";
|
||||
+ groups = "spi0";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ spi0_flash_pins: spi0-flash-pins {
|
||||
+ mux {
|
||||
+ function = "spi";
|
||||
+ groups = "spi0", "spi0_wp_hold";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ spi1_pins: spi1-pins {
|
||||
+ mux {
|
||||
+ function = "spi";
|
||||
+ groups = "spi1";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ spi2_pins: spi2-pins {
|
||||
+ mux {
|
||||
+ function = "spi";
|
||||
+ groups = "spi2";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ spi2_flash_pins: spi2-flash-pins {
|
||||
+ mux {
|
||||
+ function = "spi";
|
||||
+ groups = "spi2", "spi2_wp_hold";
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
@ -1,25 +0,0 @@
|
||||
From 6b6f2f1ee88b8b5763f4112babbc9fc45a94999a Mon Sep 17 00:00:00 2001
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
Date: Tue, 17 Dec 2024 10:12:25 +0100
|
||||
Subject: [PATCH 14/32] arm64: dts: mediatek: mt7988a-bpi-r4: Enable watchdog
|
||||
|
||||
Enable the watchdog on Bananapi R4 board.
|
||||
|
||||
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/20241217091238.16032-12-linux@fw-web.de
|
||||
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
---
|
||||
arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts
|
||||
@@ -198,3 +198,7 @@
|
||||
};
|
||||
};
|
||||
};
|
||||
+
|
||||
+&watchdog {
|
||||
+ status = "okay";
|
||||
+};
|
||||
@ -1,48 +0,0 @@
|
||||
From 72b0a6f181c5ca417405e594c80d724baee54813 Mon Sep 17 00:00:00 2001
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
Date: Tue, 17 Dec 2024 10:12:26 +0100
|
||||
Subject: [PATCH 15/32] arm64: dts: mediatek: mt7988a-bpi-r4: Add fixed
|
||||
regulators for 1v8 and 3v3
|
||||
|
||||
Add regulator nodes used for mmc to Bananapi R4 board.
|
||||
This board has 1 MMC controller used for SDMMC and eMMC where only one can
|
||||
be used at one time, selected by hardware switches. SD uses 3v3 for both
|
||||
supplies and emmc uses both regulators.
|
||||
So defining both regulators in board dts and referencing them in the dt
|
||||
overlay.
|
||||
|
||||
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/20241217091238.16032-13-linux@fw-web.de
|
||||
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
---
|
||||
.../dts/mediatek/mt7988a-bananapi-bpi-r4.dts | 18 ++++++++++++++++++
|
||||
1 file changed, 18 insertions(+)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts
|
||||
@@ -8,6 +8,24 @@
|
||||
compatible = "bananapi,bpi-r4", "mediatek,mt7988a";
|
||||
model = "Banana Pi BPI-R4";
|
||||
chassis-type = "embedded";
|
||||
+
|
||||
+ 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;
|
||||
+ };
|
||||
};
|
||||
|
||||
&pio {
|
||||
@ -1,54 +0,0 @@
|
||||
From 67511ea667d3c4da827588fd460772562d7b054e Mon Sep 17 00:00:00 2001
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
Date: Tue, 17 Dec 2024 10:12:28 +0100
|
||||
Subject: [PATCH 16/32] arm64: dts: mediatek: mt7988a-bpi-r4: Add thermal
|
||||
configuration
|
||||
|
||||
Add additional thermal trips to Bananapi R4 board.
|
||||
SoC only contains the critical trip.
|
||||
|
||||
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/20241217091238.16032-15-linux@fw-web.de
|
||||
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
---
|
||||
.../dts/mediatek/mt7988a-bananapi-bpi-r4.dts | 28 +++++++++++++++++++
|
||||
1 file changed, 28 insertions(+)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts
|
||||
@@ -28,6 +28,34 @@
|
||||
};
|
||||
};
|
||||
|
||||
+&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";
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
&pio {
|
||||
mdio0_pins: mdio0-pins {
|
||||
mux {
|
||||
@ -1,41 +0,0 @@
|
||||
From a9df5ed2333b01546b4f906e2f6fd21dd5b146aa Mon Sep 17 00:00:00 2001
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
Date: Tue, 17 Dec 2024 10:12:29 +0100
|
||||
Subject: [PATCH 17/32] arm64: dts: mediatek: mt7988a-bpi-r4: Enable serial0
|
||||
debug uart
|
||||
|
||||
Enable the debug uart on Bananapi R4 board.
|
||||
|
||||
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/20241217091238.16032-16-linux@fw-web.de
|
||||
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
---
|
||||
arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts | 4 ++++
|
||||
arch/arm64/boot/dts/mediatek/mt7988a.dtsi | 2 +-
|
||||
2 files changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts
|
||||
@@ -245,6 +245,10 @@
|
||||
};
|
||||
};
|
||||
|
||||
+&serial0 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
&watchdog {
|
||||
status = "okay";
|
||||
};
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
@@ -236,7 +236,7 @@
|
||||
#clock-cells = <1>;
|
||||
};
|
||||
|
||||
- serial@11000000 {
|
||||
+ serial0: serial@11000000 {
|
||||
compatible = "mediatek,mt7988-uart", "mediatek,mt6577-uart";
|
||||
reg = <0 0x11000000 0 0x100>;
|
||||
interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
|
||||
@ -1,29 +0,0 @@
|
||||
From 3dfb0dcb194e3f32ed931747131be08bfc429522 Mon Sep 17 00:00:00 2001
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
Date: Tue, 17 Dec 2024 10:12:30 +0100
|
||||
Subject: [PATCH 18/32] arm64: dts: mediatek: mt7988a-bpi-r4: Add default UART
|
||||
stdout
|
||||
|
||||
Add chosen node on Bananapi R4 board with stdout and default bootargs.
|
||||
|
||||
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/20241217091238.16032-17-linux@fw-web.de
|
||||
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
---
|
||||
arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts
|
||||
@@ -9,6 +9,10 @@
|
||||
model = "Banana Pi BPI-R4";
|
||||
chassis-type = "embedded";
|
||||
|
||||
+ chosen {
|
||||
+ stdout-path = "serial0:115200n8";
|
||||
+ };
|
||||
+
|
||||
reg_1p8v: regulator-1p8v {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "fixed-1.8V";
|
||||
@ -1,72 +0,0 @@
|
||||
From 90d4eb65db14a3f2e776d2a8b1dc832e70198328 Mon Sep 17 00:00:00 2001
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
Date: Tue, 17 Dec 2024 10:12:31 +0100
|
||||
Subject: [PATCH 19/32] arm64: dts: mediatek: mt7988a-bpi-r4: Enable I2C
|
||||
controllers
|
||||
|
||||
Enable the I2C0, I2C2 controllers found on the BananaPi R4 board.
|
||||
Both controllers are not accessible from user and having fixed spare
|
||||
devices. I2C0 have a pmic connected, I2C2 is used with I2C-multiplexer
|
||||
for e.g. SFP cages.
|
||||
The missing I2C1 is connected to GPIO header which can have either GPIO
|
||||
mode or I2C mode.
|
||||
|
||||
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/20241217091238.16032-18-linux@fw-web.de
|
||||
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
---
|
||||
.../boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts | 12 ++++++++++++
|
||||
arch/arm64/boot/dts/mediatek/mt7988a.dtsi | 6 +++---
|
||||
2 files changed, 15 insertions(+), 3 deletions(-)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts
|
||||
@@ -60,6 +60,18 @@
|
||||
};
|
||||
};
|
||||
|
||||
+&i2c0 {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&i2c0_pins>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&i2c2 {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&i2c2_1_pins>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
&pio {
|
||||
mdio0_pins: mdio0-pins {
|
||||
mux {
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
@@ -269,7 +269,7 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
- i2c@11003000 {
|
||||
+ i2c0: i2c@11003000 {
|
||||
compatible = "mediatek,mt7981-i2c";
|
||||
reg = <0 0x11003000 0 0x1000>,
|
||||
<0 0x10217080 0 0x80>;
|
||||
@@ -283,7 +283,7 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
- i2c@11004000 {
|
||||
+ i2c1: i2c@11004000 {
|
||||
compatible = "mediatek,mt7981-i2c";
|
||||
reg = <0 0x11004000 0 0x1000>,
|
||||
<0 0x10217100 0 0x80>;
|
||||
@@ -297,7 +297,7 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
- i2c@11005000 {
|
||||
+ i2c2: i2c@11005000 {
|
||||
compatible = "mediatek,mt7981-i2c";
|
||||
reg = <0 0x11005000 0 0x1000>,
|
||||
<0 0x10217180 0 0x80>;
|
||||
@ -1,74 +0,0 @@
|
||||
From dde7d741329616025e4cfa350eb3935b495ae140 Mon Sep 17 00:00:00 2001
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
Date: Tue, 17 Dec 2024 10:12:32 +0100
|
||||
Subject: [PATCH 20/32] arm64: dts: mediatek: mt7988a-bpi-r4: Add PCA9545 I2C
|
||||
Mux
|
||||
|
||||
Bananapi R4 uses an i2c multiplexer for SFP slots, rtc and eeprom.
|
||||
Add its node to the right i2c controller.
|
||||
|
||||
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/20241217091238.16032-19-linux@fw-web.de
|
||||
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
---
|
||||
.../dts/mediatek/mt7988a-bananapi-bpi-r4.dts | 41 +++++++++++++++++++
|
||||
1 file changed, 41 insertions(+)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
+#include <dt-bindings/gpio/gpio.h>
|
||||
+
|
||||
#include "mt7988a.dtsi"
|
||||
|
||||
/ {
|
||||
@@ -70,6 +72,45 @@
|
||||
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>;
|
||||
+ };
|
||||
+
|
||||
+ i2c_sfp2: i2c@2 {
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+ reg = <2>;
|
||||
+ };
|
||||
+ };
|
||||
};
|
||||
|
||||
&pio {
|
||||
@ -1,41 +0,0 @@
|
||||
From dfe00be85da20d9823d39775c92139c569a7960d Mon Sep 17 00:00:00 2001
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
Date: Tue, 17 Dec 2024 10:12:33 +0100
|
||||
Subject: [PATCH 21/32] arm64: dts: mediatek: mt7988a-bpi-r4: Enable t-phy for
|
||||
ssusb1
|
||||
|
||||
Bananapi R4 uses t-phy for usb. Enable its node at board level.
|
||||
|
||||
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/20241217091238.16032-20-linux@fw-web.de
|
||||
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
---
|
||||
arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts | 4 ++++
|
||||
arch/arm64/boot/dts/mediatek/mt7988a.dtsi | 2 +-
|
||||
2 files changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts
|
||||
@@ -306,6 +306,10 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
+&tphy {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
&watchdog {
|
||||
status = "okay";
|
||||
};
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
@@ -525,7 +525,7 @@
|
||||
};
|
||||
};
|
||||
|
||||
- t-phy@11c50000 {
|
||||
+ tphy: t-phy@11c50000 {
|
||||
compatible = "mediatek,mt7986-tphy",
|
||||
"mediatek,generic-tphy-v2";
|
||||
#address-cells = <2>;
|
||||
@ -1,41 +0,0 @@
|
||||
From 2b03ef47273db52e0c0010e963c3626e6842204f Mon Sep 17 00:00:00 2001
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
Date: Tue, 17 Dec 2024 10:12:34 +0100
|
||||
Subject: [PATCH 22/32] arm64: dts: mediatek: mt7988a-bpi-r4: Enable ssusb1 on
|
||||
bpi-r4
|
||||
|
||||
Enable usb on Bananapi R4 board.
|
||||
|
||||
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/20241217091238.16032-21-linux@fw-web.de
|
||||
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
---
|
||||
arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts | 4 ++++
|
||||
arch/arm64/boot/dts/mediatek/mt7988a.dtsi | 2 +-
|
||||
2 files changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts
|
||||
@@ -306,6 +306,10 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
+&ssusb1 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
&tphy {
|
||||
status = "okay";
|
||||
};
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
@@ -337,7 +337,7 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
- usb@11200000 {
|
||||
+ ssusb1: usb@11200000 {
|
||||
compatible = "mediatek,mt7988-xhci", "mediatek,mtk-xhci";
|
||||
reg = <0 0x11200000 0 0x2e00>,
|
||||
<0 0x11203e00 0 0x0100>;
|
||||
@ -1,40 +0,0 @@
|
||||
From b074487a4180aeee440b61fc00a865fc2a4bd32a Mon Sep 17 00:00:00 2001
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
Date: Tue, 17 Dec 2024 10:12:35 +0100
|
||||
Subject: [PATCH 23/32] arm64: dts: mediatek: mt7988a-bpi-r4: Enable pwm
|
||||
|
||||
Enable pwm on Bananapi R4 board.
|
||||
|
||||
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/20241217091238.16032-22-linux@fw-web.de
|
||||
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
---
|
||||
arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts | 4 ++++
|
||||
arch/arm64/boot/dts/mediatek/mt7988a.dtsi | 2 +-
|
||||
2 files changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts
|
||||
@@ -302,6 +302,10 @@
|
||||
};
|
||||
};
|
||||
|
||||
+&pwm {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
&serial0 {
|
||||
status = "okay";
|
||||
};
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
@@ -211,7 +211,7 @@
|
||||
};
|
||||
};
|
||||
|
||||
- pwm@10048000 {
|
||||
+ pwm: pwm@10048000 {
|
||||
compatible = "mediatek,mt7988-pwm";
|
||||
reg = <0 0x10048000 0 0x1000>;
|
||||
clocks = <&infracfg CLK_INFRA_66M_PWM_BCK>,
|
||||
@ -1,83 +0,0 @@
|
||||
From 72bc814e8609e8be59dff8bc6e0e185b5005ace8 Mon Sep 17 00:00:00 2001
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
Date: Tue, 17 Dec 2024 10:12:36 +0100
|
||||
Subject: [PATCH 24/32] arm64: dts: mediatek: mt7988a-bpi-r4: Enable pcie
|
||||
|
||||
Enable the pci controllers on BPI-R4.
|
||||
|
||||
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/20241217091238.16032-23-linux@fw-web.de
|
||||
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
---
|
||||
.../dts/mediatek/mt7988a-bananapi-bpi-r4.dts | 20 +++++++++++++++++++
|
||||
arch/arm64/boot/dts/mediatek/mt7988a.dtsi | 8 ++++----
|
||||
2 files changed, 24 insertions(+), 4 deletions(-)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts
|
||||
@@ -113,6 +113,26 @@
|
||||
};
|
||||
};
|
||||
|
||||
+/* 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 {
|
||||
mdio0_pins: mdio0-pins {
|
||||
mux {
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
@@ -373,7 +373,7 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
- pcie@11280000 {
|
||||
+ pcie2: pcie@11280000 {
|
||||
compatible = "mediatek,mt7986-pcie",
|
||||
"mediatek,mt8192-pcie";
|
||||
device_type = "pci";
|
||||
@@ -411,7 +411,7 @@
|
||||
};
|
||||
};
|
||||
|
||||
- pcie@11290000 {
|
||||
+ pcie3: pcie@11290000 {
|
||||
compatible = "mediatek,mt7986-pcie",
|
||||
"mediatek,mt8192-pcie";
|
||||
device_type = "pci";
|
||||
@@ -449,7 +449,7 @@
|
||||
};
|
||||
};
|
||||
|
||||
- pcie@11300000 {
|
||||
+ pcie0: pcie@11300000 {
|
||||
compatible = "mediatek,mt7986-pcie",
|
||||
"mediatek,mt8192-pcie";
|
||||
device_type = "pci";
|
||||
@@ -487,7 +487,7 @@
|
||||
};
|
||||
};
|
||||
|
||||
- pcie@11310000 {
|
||||
+ pcie1: pcie@11310000 {
|
||||
compatible = "mediatek,mt7986-pcie",
|
||||
"mediatek,mt8192-pcie";
|
||||
device_type = "pci";
|
||||
@ -1,96 +0,0 @@
|
||||
From 84087157052afba2f61cea7c99ccabfe9681b643 Mon Sep 17 00:00:00 2001
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
Date: Fri, 20 Dec 2024 17:38:35 +0100
|
||||
Subject: [PATCH 25/32] arm64: dts: mediatek: mt7988a-bpi-r4: Add MediaTek
|
||||
MT6682A/RT5190A PMIC
|
||||
|
||||
Bananapi R4 Board contains a MT6682A pmic which is compatible to rt5190a.
|
||||
Add its node to the i2 controller.
|
||||
|
||||
The BananaPi R4 board has a MediaTek MT6682A PMIC, a rebrand of the
|
||||
Richtek RT5190A chip, connected to the I2C0 bus.
|
||||
|
||||
Add the relevant node and, while at it, also configure the regulators
|
||||
from this PMIC that are used on this board.
|
||||
|
||||
Only Buck2/Buck3 voltage can be controlled by software.
|
||||
|
||||
BUCK4 input is 5V from BUCK1 output, and the resistor (mapped to RP30/RP31
|
||||
on BPI-R4) configures BUCK4 output to 1.8V.
|
||||
LDO input is 3.3V from 3.3VD, and the resistor (mapped to RP38/RP40 on
|
||||
BPI-R4) configures LDO output to 1.8V.
|
||||
|
||||
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/20241220163838.114786-2-linux@fw-web.de
|
||||
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
---
|
||||
.../dts/mediatek/mt7988a-bananapi-bpi-r4.dts | 50 +++++++++++++++++++
|
||||
1 file changed, 50 insertions(+)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts
|
||||
@@ -3,6 +3,7 @@
|
||||
/dts-v1/;
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
+#include <dt-bindings/regulator/richtek,rt5190a-regulator.h>
|
||||
|
||||
#include "mt7988a.dtsi"
|
||||
|
||||
@@ -66,6 +67,55 @@
|
||||
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 {
|
||||
@ -1,80 +0,0 @@
|
||||
From c0a17ddd90c2094dfe4610b0d965db8a3b987e32 Mon Sep 17 00:00:00 2001
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
Date: Fri, 20 Dec 2024 17:38:36 +0100
|
||||
Subject: [PATCH 26/32] arm64: dts: mediatek: mt7988a-bpi-r4: Add proc-supply
|
||||
for cpus
|
||||
|
||||
Add proc-supply property to cpus on Bananapi R4 board.
|
||||
|
||||
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/20241220163838.114786-3-linux@fw-web.de
|
||||
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
---
|
||||
.../dts/mediatek/mt7988a-bananapi-bpi-r4.dts | 16 ++++++++++++++++
|
||||
arch/arm64/boot/dts/mediatek/mt7988a.dtsi | 8 ++++----
|
||||
2 files changed, 20 insertions(+), 4 deletions(-)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts
|
||||
@@ -35,6 +35,22 @@
|
||||
};
|
||||
};
|
||||
|
||||
+&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 {
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
@@ -16,7 +16,7 @@
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
- cpu@0 {
|
||||
+ cpu0: cpu@0 {
|
||||
compatible = "arm,cortex-a73";
|
||||
reg = <0x0>;
|
||||
device_type = "cpu";
|
||||
@@ -27,7 +27,7 @@
|
||||
operating-points-v2 = <&cluster0_opp>;
|
||||
};
|
||||
|
||||
- cpu@1 {
|
||||
+ cpu1: cpu@1 {
|
||||
compatible = "arm,cortex-a73";
|
||||
reg = <0x1>;
|
||||
device_type = "cpu";
|
||||
@@ -38,7 +38,7 @@
|
||||
operating-points-v2 = <&cluster0_opp>;
|
||||
};
|
||||
|
||||
- cpu@2 {
|
||||
+ cpu2: cpu@2 {
|
||||
compatible = "arm,cortex-a73";
|
||||
reg = <0x2>;
|
||||
device_type = "cpu";
|
||||
@@ -49,7 +49,7 @@
|
||||
operating-points-v2 = <&cluster0_opp>;
|
||||
};
|
||||
|
||||
- cpu@3 {
|
||||
+ cpu3: cpu@3 {
|
||||
compatible = "arm,cortex-a73";
|
||||
reg = <0x3>;
|
||||
device_type = "cpu";
|
||||
@ -1,169 +0,0 @@
|
||||
From b7ae3528a588a4006ff9c9cc581efa317df1c1ed Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Golle <daniel@makrotopia.org>
|
||||
Date: Tue, 22 Apr 2025 15:24:29 +0200
|
||||
Subject: [PATCH] phy: mediatek: xsphy: support type switch by pericfg
|
||||
|
||||
Patch from Sam Shih <sam.shih@mediatek.com> found in MediaTek SDK
|
||||
released under GPL.
|
||||
|
||||
Get syscon and use it to set the PHY type.
|
||||
Extend support to PCIe and SGMII mode in addition to USB2 and USB3.
|
||||
|
||||
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
|
||||
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
---
|
||||
drivers/phy/mediatek/phy-mtk-xsphy.c | 85 +++++++++++++++++++++++++++-
|
||||
1 file changed, 84 insertions(+), 1 deletion(-)
|
||||
|
||||
--- a/drivers/phy/mediatek/phy-mtk-xsphy.c
|
||||
+++ b/drivers/phy/mediatek/phy-mtk-xsphy.c
|
||||
@@ -11,10 +11,12 @@
|
||||
#include <linux/clk.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/iopoll.h>
|
||||
+#include <linux/mfd/syscon.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_address.h>
|
||||
#include <linux/phy/phy.h>
|
||||
#include <linux/platform_device.h>
|
||||
+#include <linux/regmap.h>
|
||||
|
||||
#include "phy-mtk-io.h"
|
||||
|
||||
@@ -81,12 +83,22 @@
|
||||
#define XSP_SR_COEF_DIVISOR 1000
|
||||
#define XSP_FM_DET_CYCLE_CNT 1024
|
||||
|
||||
+/* PHY switch between pcie/usb3/sgmii */
|
||||
+#define USB_PHY_SWITCH_CTRL 0x0
|
||||
+#define RG_PHY_SW_TYPE GENMASK(3, 0)
|
||||
+#define RG_PHY_SW_PCIE 0x0
|
||||
+#define RG_PHY_SW_USB3 0x1
|
||||
+#define RG_PHY_SW_SGMII 0x2
|
||||
+
|
||||
struct xsphy_instance {
|
||||
struct phy *phy;
|
||||
void __iomem *port_base;
|
||||
struct clk *ref_clk; /* reference clock of anolog phy */
|
||||
u32 index;
|
||||
u32 type;
|
||||
+ struct regmap *type_sw;
|
||||
+ u32 type_sw_reg;
|
||||
+ u32 type_sw_index;
|
||||
/* only for HQA test */
|
||||
int efuse_intr;
|
||||
int efuse_tx_imp;
|
||||
@@ -259,6 +271,10 @@ static void phy_parse_property(struct mt
|
||||
inst->efuse_intr, inst->efuse_tx_imp,
|
||||
inst->efuse_rx_imp);
|
||||
break;
|
||||
+ case PHY_TYPE_PCIE:
|
||||
+ case PHY_TYPE_SGMII:
|
||||
+ /* nothing to do */
|
||||
+ break;
|
||||
default:
|
||||
dev_err(xsphy->dev, "incompatible phy type\n");
|
||||
return;
|
||||
@@ -305,6 +321,62 @@ static void u3_phy_props_set(struct mtk_
|
||||
RG_XTP_LN0_RX_IMPSEL, inst->efuse_rx_imp);
|
||||
}
|
||||
|
||||
+/* type switch for usb3/pcie/sgmii */
|
||||
+static int phy_type_syscon_get(struct xsphy_instance *instance,
|
||||
+ struct device_node *dn)
|
||||
+{
|
||||
+ struct of_phandle_args args;
|
||||
+ int ret;
|
||||
+
|
||||
+ /* type switch function is optional */
|
||||
+ if (!of_property_present(dn, "mediatek,syscon-type"))
|
||||
+ return 0;
|
||||
+
|
||||
+ ret = of_parse_phandle_with_fixed_args(dn, "mediatek,syscon-type",
|
||||
+ 2, 0, &args);
|
||||
+ if (ret)
|
||||
+ return ret;
|
||||
+
|
||||
+ instance->type_sw_reg = args.args[0];
|
||||
+ instance->type_sw_index = args.args[1] & 0x3; /* <=3 */
|
||||
+ instance->type_sw = syscon_node_to_regmap(args.np);
|
||||
+ of_node_put(args.np);
|
||||
+ dev_info(&instance->phy->dev, "type_sw - reg %#x, index %d\n",
|
||||
+ instance->type_sw_reg, instance->type_sw_index);
|
||||
+
|
||||
+ return PTR_ERR_OR_ZERO(instance->type_sw);
|
||||
+}
|
||||
+
|
||||
+static int phy_type_set(struct xsphy_instance *instance)
|
||||
+{
|
||||
+ int type;
|
||||
+ u32 offset;
|
||||
+
|
||||
+ if (!instance->type_sw)
|
||||
+ return 0;
|
||||
+
|
||||
+ switch (instance->type) {
|
||||
+ case PHY_TYPE_USB3:
|
||||
+ type = RG_PHY_SW_USB3;
|
||||
+ break;
|
||||
+ case PHY_TYPE_PCIE:
|
||||
+ type = RG_PHY_SW_PCIE;
|
||||
+ break;
|
||||
+ case PHY_TYPE_SGMII:
|
||||
+ type = RG_PHY_SW_SGMII;
|
||||
+ break;
|
||||
+ case PHY_TYPE_USB2:
|
||||
+ default:
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
+ offset = instance->type_sw_index * BITS_PER_BYTE;
|
||||
+ regmap_update_bits(instance->type_sw, instance->type_sw_reg,
|
||||
+ RG_PHY_SW_TYPE << offset, type << offset);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
static int mtk_phy_init(struct phy *phy)
|
||||
{
|
||||
struct xsphy_instance *inst = phy_get_drvdata(phy);
|
||||
@@ -325,6 +397,10 @@ static int mtk_phy_init(struct phy *phy)
|
||||
case PHY_TYPE_USB3:
|
||||
u3_phy_props_set(xsphy, inst);
|
||||
break;
|
||||
+ case PHY_TYPE_PCIE:
|
||||
+ case PHY_TYPE_SGMII:
|
||||
+ /* nothing to do, only used to set type */
|
||||
+ break;
|
||||
default:
|
||||
dev_err(xsphy->dev, "incompatible phy type\n");
|
||||
clk_disable_unprepare(inst->ref_clk);
|
||||
@@ -403,12 +479,15 @@ static struct phy *mtk_phy_xlate(struct
|
||||
|
||||
inst->type = args->args[0];
|
||||
if (!(inst->type == PHY_TYPE_USB2 ||
|
||||
- inst->type == PHY_TYPE_USB3)) {
|
||||
+ inst->type == PHY_TYPE_USB3 ||
|
||||
+ inst->type == PHY_TYPE_PCIE ||
|
||||
+ inst->type == PHY_TYPE_SGMII)) {
|
||||
dev_err(dev, "unsupported phy type: %d\n", inst->type);
|
||||
return ERR_PTR(-EINVAL);
|
||||
}
|
||||
|
||||
phy_parse_property(xsphy, inst);
|
||||
+ phy_type_set(inst);
|
||||
|
||||
return inst->phy;
|
||||
}
|
||||
@@ -510,6 +589,10 @@ static int mtk_xsphy_probe(struct platfo
|
||||
dev_err(dev, "failed to get ref_clk(id-%d)\n", port);
|
||||
return PTR_ERR(inst->ref_clk);
|
||||
}
|
||||
+
|
||||
+ retval = phy_type_syscon_get(inst, child_np);
|
||||
+ if (retval)
|
||||
+ return retval;
|
||||
}
|
||||
|
||||
provider = devm_of_phy_provider_register(dev, mtk_phy_xlate);
|
||||
@ -1,60 +0,0 @@
|
||||
From f9c0c36eefaa8c6ee224634bf9c0b8b4ed87b43a Mon Sep 17 00:00:00 2001
|
||||
From: Sakari Ailus <sakari.ailus@linux.intel.com>
|
||||
Date: Thu, 10 Apr 2025 18:22:38 +0300
|
||||
Subject: [PATCH] hwrng: mtk - Add struct device pointer to device context struct
|
||||
|
||||
Add a struct device pointer field to the device's context struct. This
|
||||
makes using the unsigned long priv pointer in struct hwrng unnecessary, so
|
||||
remove that one as well.
|
||||
|
||||
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
|
||||
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
|
||||
---
|
||||
drivers/char/hw_random/mtk-rng.c | 9 +++++----
|
||||
1 file changed, 5 insertions(+), 4 deletions(-)
|
||||
|
||||
--- a/drivers/char/hw_random/mtk-rng.c
|
||||
+++ b/drivers/char/hw_random/mtk-rng.c
|
||||
@@ -36,6 +36,7 @@ struct mtk_rng {
|
||||
void __iomem *base;
|
||||
struct clk *clk;
|
||||
struct hwrng rng;
|
||||
+ struct device *dev;
|
||||
};
|
||||
|
||||
static int mtk_rng_init(struct hwrng *rng)
|
||||
@@ -85,7 +86,7 @@ static int mtk_rng_read(struct hwrng *rn
|
||||
struct mtk_rng *priv = to_mtk_rng(rng);
|
||||
int retval = 0;
|
||||
|
||||
- pm_runtime_get_sync((struct device *)priv->rng.priv);
|
||||
+ pm_runtime_get_sync(priv->dev);
|
||||
|
||||
while (max >= sizeof(u32)) {
|
||||
if (!mtk_rng_wait_ready(rng, wait))
|
||||
@@ -97,8 +98,8 @@ static int mtk_rng_read(struct hwrng *rn
|
||||
max -= sizeof(u32);
|
||||
}
|
||||
|
||||
- pm_runtime_mark_last_busy((struct device *)priv->rng.priv);
|
||||
- pm_runtime_put_sync_autosuspend((struct device *)priv->rng.priv);
|
||||
+ pm_runtime_mark_last_busy(priv->dev);
|
||||
+ pm_runtime_put_sync_autosuspend(priv->dev);
|
||||
|
||||
return retval || !wait ? retval : -EIO;
|
||||
}
|
||||
@@ -112,13 +113,13 @@ static int mtk_rng_probe(struct platform
|
||||
if (!priv)
|
||||
return -ENOMEM;
|
||||
|
||||
+ priv->dev = &pdev->dev;
|
||||
priv->rng.name = pdev->name;
|
||||
#ifndef CONFIG_PM
|
||||
priv->rng.init = mtk_rng_init;
|
||||
priv->rng.cleanup = mtk_rng_cleanup;
|
||||
#endif
|
||||
priv->rng.read = mtk_rng_read;
|
||||
- priv->rng.priv = (unsigned long)&pdev->dev;
|
||||
priv->rng.quality = 900;
|
||||
|
||||
priv->clk = devm_clk_get(&pdev->dev, "rng");
|
||||
@ -1,28 +0,0 @@
|
||||
From de6840095f8ed542308279c4f24fa42ba27c2dd3 Mon Sep 17 00:00:00 2001
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
Date: Sat, 12 Oct 2024 16:38:23 +0200
|
||||
Subject: [PATCH] mmc: mtk-sd: add support for mt7988
|
||||
|
||||
Add support for mmc on MT7988 SoC.
|
||||
|
||||
We can use mt7986 platform data in driver, but mt7988 needs different
|
||||
clocks so for binding we need own compatible.
|
||||
|
||||
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
|
||||
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
Message-ID: <20241012143826.7690-3-linux@fw-web.de>
|
||||
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
||||
---
|
||||
drivers/mmc/host/mtk-sd.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
--- a/drivers/mmc/host/mtk-sd.c
|
||||
+++ b/drivers/mmc/host/mtk-sd.c
|
||||
@@ -631,6 +631,7 @@ static const struct of_device_id msdc_of
|
||||
{ .compatible = "mediatek,mt7620-mmc", .data = &mt7620_compat},
|
||||
{ .compatible = "mediatek,mt7622-mmc", .data = &mt7622_compat},
|
||||
{ .compatible = "mediatek,mt7986-mmc", .data = &mt7986_compat},
|
||||
+ { .compatible = "mediatek,mt7988-mmc", .data = &mt7986_compat},
|
||||
{ .compatible = "mediatek,mt8135-mmc", .data = &mt8135_compat},
|
||||
{ .compatible = "mediatek,mt8173-mmc", .data = &mt8173_compat},
|
||||
{ .compatible = "mediatek,mt8183-mmc", .data = &mt8183_compat},
|
||||
@ -1,72 +0,0 @@
|
||||
From 5f271fe1365b63f67fc384ca8d50d473d09de0d1 Mon Sep 17 00:00:00 2001
|
||||
From: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
|
||||
Date: Tue, 3 Dec 2024 07:33:55 +0300
|
||||
Subject: [PATCH] arm64: dts: mediatek: mt7986-bpi-r3: Change fan PWM value for
|
||||
mid speed
|
||||
|
||||
Popular cheap PWM fans for this machine, like the ones coming in
|
||||
heatsink+fan combos will not work properly at the currently defined
|
||||
medium speed. Trying different pwm setting using a command
|
||||
|
||||
echo $value > /sys/devices/platform/pwm-fan/hwmon/hwmon1/pwm1
|
||||
|
||||
I found:
|
||||
|
||||
pwm1 value fan rotation speed cpu temperature notes
|
||||
-----------------------------------------------------------------
|
||||
0 maximal 31.5 Celsius too noisy
|
||||
40 optimal 35.2 Celsius no noise hearable
|
||||
95 minimal
|
||||
above 95 does not rotate 55.5 Celsius
|
||||
-----------------------------------------------------------------
|
||||
|
||||
Thus only cpu-active-high and cpu-active-low modes are usable.
|
||||
I think this is wrong.
|
||||
|
||||
This patch fixes cpu-active-medium settings for bpi-r3 board.
|
||||
|
||||
I know, the patch is not ideal as it can break pwm fan for some users.
|
||||
Likely this is the only official mt7986-bpi-r3 heatsink+fan solution
|
||||
available on the market.
|
||||
|
||||
This patch may not be enough. Users may wants to tweak their thermal_zone0
|
||||
trip points, thus tuning fan rotation speed depending on cpu temperature.
|
||||
That can be done on the base of the following example:
|
||||
|
||||
=== example =========
|
||||
# cpu temperature below 25 Celsius degrees, no rotation
|
||||
echo 25000 > /sys/class/thermal/thermal_zone0/trip_point_4_temp
|
||||
# cpu temperature in [25..32] Celsius degrees, normal rotation speed
|
||||
echo 32000 > /sys/class/thermal/thermal_zone0/trip_point_3_temp
|
||||
# cpu temperature above 50 Celsius degrees, max rotation speed
|
||||
echo 50000 > /sys/class/thermal/thermal_zone0/trip_point_2_temp
|
||||
=====================
|
||||
|
||||
Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
|
||||
Acked-by: Frank Wunderlich <frank-w@public-files.de>
|
||||
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
|
||||
---
|
||||
Changes from v1 to v2:
|
||||
* improve patch description
|
||||
|
||||
Changes from v2 to v3:
|
||||
* added question to Frank Wunderlich
|
||||
|
||||
Changes from v3 to v4:
|
||||
* Acked by Frank Wunderlich
|
||||
---
|
||||
arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3.dts | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3.dts
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3.dts
|
||||
@@ -42,7 +42,7 @@
|
||||
compatible = "pwm-fan";
|
||||
#cooling-cells = <2>;
|
||||
/* cooling level (0, 1, 2) - pwm inverted */
|
||||
- cooling-levels = <255 96 0>;
|
||||
+ cooling-levels = <255 40 0>;
|
||||
pwms = <&pwm 0 10000>;
|
||||
status = "okay";
|
||||
};
|
||||
@ -1,69 +0,0 @@
|
||||
From 0da6f7a0ab5322eb6d091a9c89d799adfeae078d Mon Sep 17 00:00:00 2001
|
||||
From: Aleksander Jan Bajkowski <olek2@wp.pl>
|
||||
Date: Sun, 7 Sep 2025 13:15:09 +0200
|
||||
Subject: [PATCH] arm64: dts: mediatek: add thermal sensor support on mt7981
|
||||
|
||||
The temperature sensor in the MT7981 is same as in the MT7986.
|
||||
|
||||
Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
|
||||
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
Link: https://lore.kernel.org/r/20250907111742.23195-2-olek2@wp.pl
|
||||
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
|
||||
---
|
||||
arch/arm64/boot/dts/mediatek/mt7981b.dtsi | 31 ++++++++++++++++++++++-
|
||||
1 file changed, 30 insertions(+), 1 deletion(-)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7981b.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7981b.dtsi
|
||||
@@ -76,7 +76,7 @@
|
||||
#reset-cells = <1>;
|
||||
};
|
||||
|
||||
- clock-controller@1001e000 {
|
||||
+ apmixedsys: clock-controller@1001e000 {
|
||||
compatible = "mediatek,mt7981-apmixedsys";
|
||||
reg = <0 0x1001e000 0 0x1000>;
|
||||
#clock-cells = <1>;
|
||||
@@ -184,6 +184,31 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
+ thermal@1100c800 {
|
||||
+ compatible = "mediatek,mt7981-thermal",
|
||||
+ "mediatek,mt7986-thermal";
|
||||
+ reg = <0 0x1100c800 0 0x800>;
|
||||
+ interrupts = <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ clocks = <&infracfg CLK_INFRA_THERM_CK>,
|
||||
+ <&infracfg CLK_INFRA_ADC_26M_CK>;
|
||||
+ clock-names = "therm", "auxadc";
|
||||
+ nvmem-cells = <&thermal_calibration>;
|
||||
+ nvmem-cell-names = "calibration-data";
|
||||
+ #thermal-sensor-cells = <1>;
|
||||
+ mediatek,auxadc = <&auxadc>;
|
||||
+ mediatek,apmixedsys = <&apmixedsys>;
|
||||
+ };
|
||||
+
|
||||
+ auxadc: adc@1100d000 {
|
||||
+ compatible = "mediatek,mt7981-auxadc",
|
||||
+ "mediatek,mt7986-auxadc";
|
||||
+ reg = <0 0x1100d000 0 0x1000>;
|
||||
+ clocks = <&infracfg CLK_INFRA_ADC_26M_CK>;
|
||||
+ clock-names = "main";
|
||||
+ #io-channel-cells = <1>;
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+
|
||||
pio: pinctrl@11d00000 {
|
||||
compatible = "mediatek,mt7981-pinctrl";
|
||||
reg = <0 0x11d00000 0 0x1000>,
|
||||
@@ -211,6 +236,10 @@
|
||||
reg = <0 0x11f20000 0 0x1000>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
+
|
||||
+ thermal_calibration: thermal-calib@274 {
|
||||
+ reg = <0x274 0xc>;
|
||||
+ };
|
||||
};
|
||||
|
||||
clock-controller@15000000 {
|
||||
@ -1,59 +0,0 @@
|
||||
From 6da9f0cc2717158857f8b8b9369523d0d6770c07 Mon Sep 17 00:00:00 2001
|
||||
From: Shiji Yang <yangshiji66@outlook.com>
|
||||
Date: Sat, 17 Jan 2026 11:04:37 +0800
|
||||
Subject: [PATCH] pinctrl: mediatek: enable ies_present flag for MT798x
|
||||
|
||||
The MT798x series SoCs have IES regiter definitions. I think we
|
||||
must enable the ies_present flag to correctly configure the pin
|
||||
input mode.
|
||||
|
||||
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
|
||||
Signed-off-by: Linus Walleij <linusw@kernel.org>
|
||||
---
|
||||
drivers/pinctrl/mediatek/pinctrl-mt7981.c | 2 +-
|
||||
drivers/pinctrl/mediatek/pinctrl-mt7986.c | 4 ++--
|
||||
drivers/pinctrl/mediatek/pinctrl-mt7988.c | 2 +-
|
||||
3 files changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
--- a/drivers/pinctrl/mediatek/pinctrl-mt7981.c
|
||||
+++ b/drivers/pinctrl/mediatek/pinctrl-mt7981.c
|
||||
@@ -1019,7 +1019,7 @@ static struct mtk_pin_soc mt7981_data =
|
||||
.nfuncs = ARRAY_SIZE(mt7981_functions),
|
||||
.eint_hw = &mt7981_eint_hw,
|
||||
.gpio_m = 0,
|
||||
- .ies_present = false,
|
||||
+ .ies_present = true,
|
||||
.base_names = mt7981_pinctrl_register_base_names,
|
||||
.nbase_names = ARRAY_SIZE(mt7981_pinctrl_register_base_names),
|
||||
.bias_disable_set = mtk_pinconf_bias_disable_set,
|
||||
--- a/drivers/pinctrl/mediatek/pinctrl-mt7986.c
|
||||
+++ b/drivers/pinctrl/mediatek/pinctrl-mt7986.c
|
||||
@@ -919,7 +919,7 @@ static struct mtk_pin_soc mt7986a_data =
|
||||
.nfuncs = ARRAY_SIZE(mt7986_functions),
|
||||
.eint_hw = &mt7986a_eint_hw,
|
||||
.gpio_m = 0,
|
||||
- .ies_present = false,
|
||||
+ .ies_present = true,
|
||||
.base_names = mt7986_pinctrl_register_base_names,
|
||||
.nbase_names = ARRAY_SIZE(mt7986_pinctrl_register_base_names),
|
||||
.bias_disable_set = mtk_pinconf_bias_disable_set,
|
||||
@@ -945,7 +945,7 @@ static struct mtk_pin_soc mt7986b_data =
|
||||
.nfuncs = ARRAY_SIZE(mt7986_functions),
|
||||
.eint_hw = &mt7986b_eint_hw,
|
||||
.gpio_m = 0,
|
||||
- .ies_present = false,
|
||||
+ .ies_present = true,
|
||||
.base_names = mt7986_pinctrl_register_base_names,
|
||||
.nbase_names = ARRAY_SIZE(mt7986_pinctrl_register_base_names),
|
||||
.bias_disable_set = mtk_pinconf_bias_disable_set,
|
||||
--- a/drivers/pinctrl/mediatek/pinctrl-mt7988.c
|
||||
+++ b/drivers/pinctrl/mediatek/pinctrl-mt7988.c
|
||||
@@ -1515,7 +1515,7 @@ static const struct mtk_pin_soc mt7988_d
|
||||
.nfuncs = ARRAY_SIZE(mt7988_functions),
|
||||
.eint_hw = &mt7988_eint_hw,
|
||||
.gpio_m = 0,
|
||||
- .ies_present = false,
|
||||
+ .ies_present = true,
|
||||
.base_names = mt7988_pinctrl_register_base_names,
|
||||
.nbase_names = ARRAY_SIZE(mt7988_pinctrl_register_base_names),
|
||||
.bias_disable_set = mtk_pinconf_bias_disable_set,
|
||||
@ -1,130 +0,0 @@
|
||||
From c46ccb69d17e584479df849a107423175a143c83 Mon Sep 17 00:00:00 2001
|
||||
From: Felix Fietkau <nbd@nbd.name>
|
||||
Date: Sat, 24 Oct 2020 21:15:20 +0200
|
||||
Subject: [PATCH] arm64: dts: mediatek: mt7622-rfb1: update copyright, fix bootargs and GPIO polarity
|
||||
|
||||
Update the copyright header, add an explicit console= argument to the
|
||||
chosen/bootargs property, and fix the GPIO polarity flags on the
|
||||
factory and WPS button keys to use GPIO_ACTIVE_LOW.
|
||||
|
||||
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
---
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts
|
||||
@@ -1,7 +1,6 @@
|
||||
/*
|
||||
- * Copyright (c) 2017 MediaTek Inc.
|
||||
- * Author: Ming Huang <ming.huang@mediatek.com>
|
||||
- * Sean Wang <sean.wang@mediatek.com>
|
||||
+ * Copyright (c) 2018 MediaTek Inc.
|
||||
+ * Author: Ryder Lee <ryder.lee@mediatek.com>
|
||||
*
|
||||
* SPDX-License-Identifier: (GPL-2.0 OR MIT)
|
||||
*/
|
||||
@@ -24,7 +23,7 @@
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial0:115200n8";
|
||||
- bootargs = "earlycon=uart8250,mmio32,0x11002000 swiotlb=512";
|
||||
+ bootargs = "earlycon=uart8250,mmio32,0x11002000 console=ttyS0,115200n1 swiotlb=512";
|
||||
};
|
||||
|
||||
cpus {
|
||||
@@ -45,18 +44,18 @@
|
||||
key-factory {
|
||||
label = "factory";
|
||||
linux,code = <BTN_0>;
|
||||
- gpios = <&pio 0 0>;
|
||||
+ gpios = <&pio 0 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
key-wps {
|
||||
label = "wps";
|
||||
linux,code = <KEY_WPS_BUTTON>;
|
||||
- gpios = <&pio 102 0>;
|
||||
+ gpios = <&pio 102 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
|
||||
memory@40000000 {
|
||||
- reg = <0 0x40000000 0 0x20000000>;
|
||||
+ reg = <0 0x40000000 0 0x40000000>;
|
||||
device_type = "memory";
|
||||
};
|
||||
|
||||
@@ -134,9 +133,9 @@
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
- switch@0 {
|
||||
+ switch@1f {
|
||||
compatible = "mediatek,mt7531";
|
||||
- reg = <0>;
|
||||
+ reg = <31>;
|
||||
reset-gpios = <&pio 54 0>;
|
||||
|
||||
ports {
|
||||
@@ -145,22 +144,22 @@
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
- label = "lan0";
|
||||
+ label = "lan1";
|
||||
};
|
||||
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
- label = "lan1";
|
||||
+ label = "lan2";
|
||||
};
|
||||
|
||||
port@2 {
|
||||
reg = <2>;
|
||||
- label = "lan2";
|
||||
+ label = "lan3";
|
||||
};
|
||||
|
||||
port@3 {
|
||||
reg = <3>;
|
||||
- label = "lan3";
|
||||
+ label = "lan4";
|
||||
};
|
||||
|
||||
port@4 {
|
||||
@@ -264,7 +263,22 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
+&pcie1 {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&pcie1_pins>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
&pio {
|
||||
+ /* Attention: GPIO 90 is used to switch between PCIe@1,0 and
|
||||
+ * SATA functions. i.e. output-high: PCIe, output-low: SATA
|
||||
+ */
|
||||
+ asm_sel {
|
||||
+ gpio-hog;
|
||||
+ gpios = <90 GPIO_ACTIVE_HIGH>;
|
||||
+ output-high;
|
||||
+ };
|
||||
+
|
||||
/* eMMC is shared pin with parallel NAND */
|
||||
emmc_pins_default: emmc-pins-default {
|
||||
mux {
|
||||
@@ -541,11 +555,11 @@
|
||||
};
|
||||
|
||||
&sata {
|
||||
- status = "okay";
|
||||
+ status = "disabled";
|
||||
};
|
||||
|
||||
&sata_phy {
|
||||
- status = "okay";
|
||||
+ status = "disabled";
|
||||
};
|
||||
|
||||
&spi0 {
|
||||
@ -1,73 +0,0 @@
|
||||
From c46ccb69d17e584479df849a107423175a143c83 Mon Sep 17 00:00:00 2001
|
||||
From: Felix Fietkau <nbd@nbd.name>
|
||||
Date: Sat, 24 Oct 2020 21:15:20 +0200
|
||||
Subject: [PATCH] arm: dts: mediatek: mt7629-rfb: add earlycon/console bootargs and MAC address nvmem cells
|
||||
|
||||
Add earlycon= and console= to chosen/bootargs, and wire the two Ethernet
|
||||
MACs (gmac0, gmac1) to their respective MAC address stored in the factory
|
||||
partition via nvmem-cells.
|
||||
|
||||
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
---
|
||||
--- a/arch/arm/boot/dts/mediatek/mt7629-rfb.dts
|
||||
+++ b/arch/arm/boot/dts/mediatek/mt7629-rfb.dts
|
||||
@@ -18,6 +18,7 @@
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial0:115200n8";
|
||||
+ bootargs = "earlycon=uart8250,mmio32,0x11002000 console=ttyS0,115200n8";
|
||||
};
|
||||
|
||||
gpio-keys {
|
||||
@@ -70,6 +71,10 @@
|
||||
compatible = "mediatek,eth-mac";
|
||||
reg = <0>;
|
||||
phy-mode = "2500base-x";
|
||||
+
|
||||
+ nvmem-cells = <&macaddr_factory_2a>;
|
||||
+ nvmem-cell-names = "mac-address";
|
||||
+
|
||||
fixed-link {
|
||||
speed = <2500>;
|
||||
full-duplex;
|
||||
@@ -82,6 +87,9 @@
|
||||
reg = <1>;
|
||||
phy-mode = "gmii";
|
||||
phy-handle = <&phy0>;
|
||||
+
|
||||
+ nvmem-cells = <&macaddr_factory_24>;
|
||||
+ nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
mdio: mdio-bus {
|
||||
@@ -133,8 +141,9 @@
|
||||
};
|
||||
|
||||
partition@b0000 {
|
||||
- label = "kernel";
|
||||
+ label = "firmware";
|
||||
reg = <0xb0000 0xb50000>;
|
||||
+ compatible = "denx,fit";
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -273,3 +282,19 @@
|
||||
pinctrl-0 = <&watchdog_pins>;
|
||||
status = "okay";
|
||||
};
|
||||
+
|
||||
+&factory {
|
||||
+ nvmem-layout {
|
||||
+ compatible = "fixed-layout";
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <1>;
|
||||
+
|
||||
+ macaddr_factory_24: macaddr@24 {
|
||||
+ reg = <0x24 0x6>;
|
||||
+ };
|
||||
+
|
||||
+ macaddr_factory_2a: macaddr@2a {
|
||||
+ reg = <0x2a 0x6>;
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
@ -1,20 +0,0 @@
|
||||
From d6a596012150960f0f3a214d31bbac4b607dbd1e Mon Sep 17 00:00:00 2001
|
||||
From: Chuanhong Guo <gch981213@gmail.com>
|
||||
Date: Fri, 29 Apr 2022 10:40:56 +0800
|
||||
Subject: [PATCH] arm: mediatek: select arch timer for mt7623
|
||||
|
||||
Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
|
||||
---
|
||||
arch/arm/mach-mediatek/Kconfig | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
--- a/arch/arm/mach-mediatek/Kconfig
|
||||
+++ b/arch/arm/mach-mediatek/Kconfig
|
||||
@@ -26,6 +26,7 @@ config MACH_MT6592
|
||||
config MACH_MT7623
|
||||
bool "MediaTek MT7623 SoCs support"
|
||||
default ARCH_MEDIATEK
|
||||
+ select HAVE_ARM_ARCH_TIMER
|
||||
|
||||
config MACH_MT7629
|
||||
bool "MediaTek MT7629 SoCs support"
|
||||
@ -1,20 +0,0 @@
|
||||
From 99cd44487e2e7205e1521a52faf498dfda6f100c Mon Sep 17 00:00:00 2001
|
||||
From: Chuanhong Guo <gch981213@gmail.com>
|
||||
Date: Sat, 30 Apr 2022 20:24:07 +0800
|
||||
Subject: [PATCH] mediatek: mt7622: add irq for spi-nor controller
|
||||
|
||||
Save some CPU from unnecessary polling and make SPI flash reading
|
||||
a tiny bit faster.
|
||||
|
||||
Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
|
||||
---
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7622.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7622.dtsi
|
||||
@@ -575,6 +575,7 @@
|
||||
compatible = "mediatek,mt7622-nor",
|
||||
"mediatek,mt8173-nor";
|
||||
reg = <0 0x11014000 0 0xe0>;
|
||||
+ interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_LOW>;
|
||||
clocks = <&pericfg CLK_PERI_FLASH_PD>,
|
||||
<&topckgen CLK_TOP_FLASH_SEL>;
|
||||
clock-names = "spi", "sf";
|
||||
@ -1,26 +0,0 @@
|
||||
From e1adb1fa39dd5ef97280ad1b2bb9e8ff4c43674f Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Golle <daniel@makrotopia.org>
|
||||
Date: Fri, 7 May 2021 16:53:09 +0100
|
||||
Subject: [PATCH] arm64: dts: mediatek: mt7622: reserve memory for ramoops/pstore
|
||||
|
||||
Reserve 64KiB of memory for crashlogs and enable PSTORE feature in
|
||||
kernel config for MT7622.
|
||||
|
||||
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
---
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7622.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7622.dtsi
|
||||
@@ -135,6 +135,13 @@
|
||||
#size-cells = <2>;
|
||||
ranges;
|
||||
|
||||
+ /* 64 KiB reserved for ramoops/pstore */
|
||||
+ ramoops@42ff0000 {
|
||||
+ compatible = "ramoops";
|
||||
+ reg = <0 0x42ff0000 0 0x10000>;
|
||||
+ record-size = <0x1000>;
|
||||
+ };
|
||||
+
|
||||
/* 192 KiB reserved for ARM Trusted Firmware (BL31) */
|
||||
secmon_reserved: secmon@43000000 {
|
||||
reg = <0 0x43000000 0 0x30000>;
|
||||
@ -1,35 +0,0 @@
|
||||
From 50416c18dd309fec75b6911221905cd0c0139b25 Mon Sep 17 00:00:00 2001
|
||||
From: Felix Fietkau <nbd@nbd.name>
|
||||
Date: Thu, 21 Dec 2023 21:20:17 +0100
|
||||
Subject: [PATCH] mediatek: disable btif for mt7622 devices
|
||||
|
||||
It breaks built-in SoC WLAN. Can be re-enabled after we've figured out the cause
|
||||
|
||||
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
---
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts
|
||||
@@ -109,10 +109,6 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
-&btif {
|
||||
- status = "okay";
|
||||
-};
|
||||
-
|
||||
&cir {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&irrx_pins>;
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts
|
||||
@@ -90,10 +90,6 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
-&btif {
|
||||
- status = "okay";
|
||||
-};
|
||||
-
|
||||
&cir {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&irrx_pins>;
|
||||
@ -1,20 +0,0 @@
|
||||
From 25d9df670b850a4e3702e084ff249baa1670ae3f Mon Sep 17 00:00:00 2001
|
||||
From: Mark-MC Lee (李明昌) <Mark-MC.Lee@mediatek.com>
|
||||
Date: Mon, 10 Feb 2020 09:33:15 +0100
|
||||
Subject: [PATCH] arm: dts: mediatek: mt7623n-bpi-r2: add console= to bootargs
|
||||
|
||||
Add an explicit console=ttyS2,115200n8 argument to the chosen/bootargs
|
||||
property so that a serial console is available during early boot.
|
||||
|
||||
Signed-off-by: Mark-MC Lee (李明昌) <Mark-MC.Lee@mediatek.com>
|
||||
---
|
||||
--- a/arch/arm/boot/dts/mediatek/mt7623n-bananapi-bpi-r2.dts
|
||||
+++ b/arch/arm/boot/dts/mediatek/mt7623n-bananapi-bpi-r2.dts
|
||||
@@ -19,6 +19,7 @@
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial2:115200n8";
|
||||
+ bootargs = "console=ttyS2,115200n8 console=tty1";
|
||||
};
|
||||
|
||||
connector {
|
||||
@ -1,21 +0,0 @@
|
||||
From 25d9df670b850a4e3702e084ff249baa1670ae3f Mon Sep 17 00:00:00 2001
|
||||
From: Mark-MC Lee (李明昌) <Mark-MC.Lee@mediatek.com>
|
||||
Date: Mon, 10 Feb 2020 09:33:15 +0100
|
||||
Subject: [PATCH] arm64: dts: mediatek: mt7622-bpi-r64: add console= to bootargs
|
||||
|
||||
Add an explicit console=ttyS0,115200n1 argument to the chosen/bootargs
|
||||
property so that a serial console is available during early boot.
|
||||
|
||||
Signed-off-by: Mark-MC Lee (李明昌) <Mark-MC.Lee@mediatek.com>
|
||||
---
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial0:115200n8";
|
||||
- bootargs = "earlycon=uart8250,mmio32,0x11002000 swiotlb=512";
|
||||
+ bootargs = "earlycon=uart8250,mmio32,0x11002000 console=ttyS0,115200n1 swiotlb=512";
|
||||
};
|
||||
|
||||
cpus {
|
||||
@ -1,48 +0,0 @@
|
||||
From dfa0a38d1f4d5bbac768569e3769ae4438a57e73 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Golle <daniel@makrotopia.org>
|
||||
Date: Sat, 27 Feb 2021 14:17:09 +0000
|
||||
Subject: [PATCH] arm64: dts: mediatek: mt7622-bpi-r64: fix LAN port numbering and add ethernet alias
|
||||
|
||||
Renumber the switch LAN port labels from lan0/lan1/lan2 to lan1/lan2/lan3
|
||||
to match the silkscreen labelling on the board, and add an ethernet0 alias
|
||||
pointing to gmac0.
|
||||
|
||||
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
---
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts
|
||||
@@ -20,6 +20,7 @@
|
||||
|
||||
aliases {
|
||||
serial0 = &uart0;
|
||||
+ ethernet0 = &gmac0;
|
||||
};
|
||||
|
||||
chosen {
|
||||
@@ -164,22 +165,22 @@
|
||||
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
- label = "lan0";
|
||||
+ label = "lan1";
|
||||
};
|
||||
|
||||
port@2 {
|
||||
reg = <2>;
|
||||
- label = "lan1";
|
||||
+ label = "lan2";
|
||||
};
|
||||
|
||||
port@3 {
|
||||
reg = <3>;
|
||||
- label = "lan2";
|
||||
+ label = "lan3";
|
||||
};
|
||||
|
||||
port@4 {
|
||||
reg = <4>;
|
||||
- label = "lan3";
|
||||
+ label = "lan4";
|
||||
};
|
||||
|
||||
port@5 {
|
||||
@ -1,61 +0,0 @@
|
||||
From dfa0a38d1f4d5bbac768569e3769ae4438a57e73 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Golle <daniel@makrotopia.org>
|
||||
Date: Sat, 27 Feb 2021 14:17:09 +0000
|
||||
Subject: [PATCH] arm64: dts: mediatek: mt7622-bpi-r64: add LED aliases, fix button labels and MMC aliases
|
||||
|
||||
Add led-boot/led-failsafe/led-running/led-upgrade aliases pointing to
|
||||
the system LEDs, add mmc0/mmc1 aliases for correct MMC device ordering,
|
||||
rename the factory button to "reset" with KEY_RESTART, and update the
|
||||
LED gpio-hog and label names to match their physical function.
|
||||
|
||||
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
---
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts
|
||||
@@ -21,6 +21,12 @@
|
||||
aliases {
|
||||
serial0 = &uart0;
|
||||
ethernet0 = &gmac0;
|
||||
+ led-boot = &led_system_green;
|
||||
+ led-failsafe = &led_system_blue;
|
||||
+ led-running = &led_system_green;
|
||||
+ led-upgrade = &led_system_blue;
|
||||
+ mmc0 = &mmc0;
|
||||
+ mmc1 = &mmc1;
|
||||
};
|
||||
|
||||
chosen {
|
||||
@@ -44,8 +50,8 @@
|
||||
compatible = "gpio-keys";
|
||||
|
||||
factory-key {
|
||||
- label = "factory";
|
||||
- linux,code = <BTN_0>;
|
||||
+ label = "reset";
|
||||
+ linux,code = <KEY_RESTART>;
|
||||
gpios = <&pio 0 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
@@ -59,17 +65,17 @@
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
- led-0 {
|
||||
+ led_system_green: led-0 {
|
||||
label = "bpi-r64:pio:green";
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
gpios = <&pio 89 GPIO_ACTIVE_HIGH>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
- led-1 {
|
||||
- label = "bpi-r64:pio:red";
|
||||
- color = <LED_COLOR_ID_RED>;
|
||||
- gpios = <&pio 88 GPIO_ACTIVE_HIGH>;
|
||||
+ led_system_blue: led-1 {
|
||||
+ label = "bpi-r64:pio:blue";
|
||||
+ color = <LED_COLOR_ID_BLUE>;
|
||||
+ gpios = <&pio 85 GPIO_ACTIVE_HIGH>;
|
||||
default-state = "off";
|
||||
};
|
||||
};
|
||||
@ -1,24 +0,0 @@
|
||||
From 8dd0215676a304456d25ff3ac4542c7303831a90 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Golle <daniel@makrotopia.org>
|
||||
Date: Sat, 6 Mar 2021 18:38:30 +0000
|
||||
Subject: [PATCH] mediatek: disable RTC on Bananapi R64
|
||||
|
||||
The in-SoC RTC of the Bananapi R64 is more disruptive than useful
|
||||
without a battery connected. Disable it to not have Linux use the
|
||||
RTC provided time 2000-01-01 00:00:00 after power-loss.
|
||||
|
||||
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
---
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts
|
||||
@@ -599,6 +599,10 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
+&rtc {
|
||||
+ status = "disabled";
|
||||
+};
|
||||
+
|
||||
&sata {
|
||||
status = "disabled";
|
||||
};
|
||||
@ -1,33 +0,0 @@
|
||||
From 4c4baed29b168e9bf39545a945a9523ea280cb44 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Golle <daniel@makrotopia.org>
|
||||
Date: Sat, 1 Feb 2025 04:24:17 +0000
|
||||
Subject: [PATCH 1/2] Revert "arm64: dts: mediatek: fix t-phy unit name"
|
||||
|
||||
This reverts commit 963c3b0c47ec29b4c49c9f45965cd066f419d17f.
|
||||
---
|
||||
arch/arm64/boot/dts/mediatek/mt7622.dtsi | 2 +-
|
||||
arch/arm64/boot/dts/mediatek/mt7986a.dtsi | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7622.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7622.dtsi
|
||||
@@ -908,7 +908,7 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
- sata_phy: t-phy {
|
||||
+ sata_phy: t-phy@1a243000 {
|
||||
compatible = "mediatek,mt7622-tphy",
|
||||
"mediatek,generic-tphy-v1";
|
||||
#address-cells = <2>;
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7986a.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7986a.dtsi
|
||||
@@ -428,7 +428,7 @@
|
||||
};
|
||||
};
|
||||
|
||||
- pcie_phy: t-phy {
|
||||
+ pcie_phy: t-phy@11c00000 {
|
||||
compatible = "mediatek,mt7986-tphy",
|
||||
"mediatek,generic-tphy-v2";
|
||||
ranges;
|
||||
@ -1,33 +0,0 @@
|
||||
From 98bc223d174c7f544e8f6c4f0caa8fa144f2f4dc Mon Sep 17 00:00:00 2001
|
||||
From: Christian Marangi <ansuelsmth@gmail.com>
|
||||
Date: Fri, 28 Jun 2024 12:55:40 +0200
|
||||
Subject: [PATCH 2/2] arm64: dts: mediatek: mt7622: readd syscon to pciesys
|
||||
node
|
||||
|
||||
Sata node reference the pciesys with the property mediatek,phy-node
|
||||
and that is used as a syscon to access the pciesys regs.
|
||||
|
||||
Readd the syscon compatible to pciesys node to restore correct
|
||||
functionality of the SATA interface.
|
||||
|
||||
Fixes: 3ba5a6159434 ("arm64: dts: mediatek: mt7622: fix clock controllers")
|
||||
Reported-by: Frank Wunderlich <frank-w@public-files.de>
|
||||
Co-developed-by: Frank Wunderlich <frank-w@public-files.de>
|
||||
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
|
||||
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
|
||||
Cc: stable@vger.kernel.org
|
||||
---
|
||||
arch/arm64/boot/dts/mediatek/mt7622.dtsi | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7622.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7622.dtsi
|
||||
@@ -798,7 +798,7 @@
|
||||
};
|
||||
|
||||
pciesys: clock-controller@1a100800 {
|
||||
- compatible = "mediatek,mt7622-pciesys";
|
||||
+ compatible = "mediatek,mt7622-pciesys", "syscon";
|
||||
reg = <0 0x1a100800 0 0x1000>;
|
||||
#clock-cells = <1>;
|
||||
#reset-cells = <1>;
|
||||
@ -1,657 +0,0 @@
|
||||
From 3986156b3ba97a9c280f4dfe0efbccf52e1fc488 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Golle <daniel@makrotopia.org>
|
||||
Date: Wed, 28 Dec 2022 23:44:42 +0000
|
||||
Subject: [PATCH] complete mt7981 dts
|
||||
|
||||
working:
|
||||
* Ethernet (fully working incl. ppe)
|
||||
* UART
|
||||
* SPI-NAND flash
|
||||
* thermal sensors (SoC and mxl-gpy)
|
||||
* random number generator via SMC
|
||||
* USB 1.1, 2.0 and 3.0
|
||||
* WiFi with MT7976C 2.4G+5G DBDC incl. WED offloading
|
||||
* PWM
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7981b.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7981b.dtsi
|
||||
@@ -1,7 +1,14 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only OR MIT
|
||||
|
||||
#include <dt-bindings/clock/mediatek,mt7981-clk.h>
|
||||
+#include <dt-bindings/gpio/gpio.h>
|
||||
+#include <dt-bindings/input/linux-event-codes.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
+#include <dt-bindings/interrupt-controller/irq.h>
|
||||
+#include <dt-bindings/leds/common.h>
|
||||
+#include <dt-bindings/mux/mux.h>
|
||||
+#include <dt-bindings/pinctrl/mt65xx.h>
|
||||
+#include <dt-bindings/phy/phy.h>
|
||||
#include <dt-bindings/reset/mt7986-resets.h>
|
||||
|
||||
/ {
|
||||
@@ -41,6 +48,57 @@
|
||||
method = "smc";
|
||||
};
|
||||
|
||||
+ fan: pwm-fan {
|
||||
+ compatible = "pwm-fan";
|
||||
+ /* cooling level (0, 1, 2, 3) : (0% duty, 50% duty, 75% duty, 100% duty) */
|
||||
+ cooling-levels = <0 128 192 255>;
|
||||
+ #cooling-cells = <2>;
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+
|
||||
+ 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;
|
||||
+ };
|
||||
+
|
||||
+ reserved-memory {
|
||||
+ #address-cells = <2>;
|
||||
+ #size-cells = <2>;
|
||||
+ ranges;
|
||||
+
|
||||
+ /* 64 KiB reserved for ramoops/pstore */
|
||||
+ ramoops@42ff0000 {
|
||||
+ compatible = "ramoops";
|
||||
+ reg = <0 0x42ff0000 0 0x10000>;
|
||||
+ record-size = <0x1000>;
|
||||
+ };
|
||||
+
|
||||
+ /* 192 KiB reserved for ARM Trusted Firmware (BL31) */
|
||||
+ secmon_reserved: secmon@43000000 {
|
||||
+ reg = <0 0x43000000 0 0x30000>;
|
||||
+ no-map;
|
||||
+ };
|
||||
+
|
||||
+ wmcpu_emi: wmcpu-reserved@47c80000 {
|
||||
+ reg = <0 0x47c80000 0 0x100000>;
|
||||
+ no-map;
|
||||
+ };
|
||||
+
|
||||
+ wo_emi0: wo-emi@47d80000 {
|
||||
+ reg = <0 0x47d80000 0 0x40000>;
|
||||
+ no-map;
|
||||
+ };
|
||||
+
|
||||
+ wo_data: wo-data@47dc0000 {
|
||||
+ reg = <0 0x47dc0000 0 0x240000>;
|
||||
+ no-map;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
soc {
|
||||
compatible = "simple-bus";
|
||||
ranges;
|
||||
@@ -77,12 +135,12 @@
|
||||
};
|
||||
|
||||
apmixedsys: clock-controller@1001e000 {
|
||||
- compatible = "mediatek,mt7981-apmixedsys";
|
||||
+ compatible = "mediatek,mt7981-apmixedsys", "syscon";
|
||||
reg = <0 0x1001e000 0 0x1000>;
|
||||
#clock-cells = <1>;
|
||||
};
|
||||
|
||||
- pwm@10048000 {
|
||||
+ pwm: pwm@10048000 {
|
||||
compatible = "mediatek,mt7981-pwm";
|
||||
reg = <0 0x10048000 0 0x1000>;
|
||||
clocks = <&infracfg CLK_INFRA_PWM_STA>,
|
||||
@@ -94,7 +152,21 @@
|
||||
#pwm-cells = <2>;
|
||||
};
|
||||
|
||||
- serial@11002000 {
|
||||
+ crypto: crypto@10320000 {
|
||||
+ compatible = "inside-secure,safexcel-eip97";
|
||||
+ reg = <0 0x10320000 0 0x40000>;
|
||||
+ interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
|
||||
+ <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
|
||||
+ <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
|
||||
+ <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ interrupt-names = "ring0", "ring1", "ring2", "ring3";
|
||||
+ clocks = <&topckgen CLK_TOP_EIP97B>;
|
||||
+ clock-names = "top_eip97_ck";
|
||||
+ assigned-clocks = <&topckgen CLK_TOP_EIP97B_SEL>;
|
||||
+ assigned-clock-parents = <&topckgen CLK_TOP_CB_NET1_D5>;
|
||||
+ };
|
||||
+
|
||||
+ uart0: serial@11002000 {
|
||||
compatible = "mediatek,mt7981-uart", "mediatek,mt6577-uart";
|
||||
reg = <0 0x11002000 0 0x100>;
|
||||
interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
|
||||
@@ -105,7 +177,7 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
- serial@11003000 {
|
||||
+ uart1: serial@11003000 {
|
||||
compatible = "mediatek,mt7981-uart", "mediatek,mt6577-uart";
|
||||
reg = <0 0x11003000 0 0x100>;
|
||||
interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
|
||||
@@ -116,7 +188,7 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
- serial@11004000 {
|
||||
+ uart2: serial@11004000 {
|
||||
compatible = "mediatek,mt7981-uart", "mediatek,mt6577-uart";
|
||||
reg = <0 0x11004000 0 0x100>;
|
||||
interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
|
||||
@@ -127,11 +199,12 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
- i2c@11007000 {
|
||||
+ i2c0: i2c@11007000 {
|
||||
compatible = "mediatek,mt7981-i2c";
|
||||
reg = <0 0x11007000 0 0x1000>,
|
||||
<0 0x10217080 0 0x80>;
|
||||
interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ clock-div = <1>;
|
||||
clocks = <&infracfg CLK_INFRA_I2C0_CK>,
|
||||
<&infracfg CLK_INFRA_AP_DMA_CK>,
|
||||
<&infracfg CLK_INFRA_I2C_MCK_CK>,
|
||||
@@ -142,7 +215,7 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
- spi@11009000 {
|
||||
+ spi2: spi@11009000 {
|
||||
compatible = "mediatek,mt7981-spi-ipm", "mediatek,spi-ipm";
|
||||
reg = <0 0x11009000 0 0x1000>;
|
||||
interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>;
|
||||
@@ -156,7 +229,7 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
- spi@1100a000 {
|
||||
+ spi0: spi@1100a000 {
|
||||
compatible = "mediatek,mt7981-spi-ipm", "mediatek,spi-ipm";
|
||||
reg = <0 0x1100a000 0 0x1000>;
|
||||
interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
|
||||
@@ -170,7 +243,7 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
- spi@1100b000 {
|
||||
+ spi1: spi@1100b000 {
|
||||
compatible = "mediatek,mt7981-spi-ipm", "mediatek,spi-ipm";
|
||||
reg = <0 0x1100b000 0 0x1000>;
|
||||
interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>;
|
||||
@@ -184,7 +257,7 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
- thermal@1100c800 {
|
||||
+ thermal: thermal@1100c800 {
|
||||
compatible = "mediatek,mt7981-thermal",
|
||||
"mediatek,mt7986-thermal";
|
||||
reg = <0 0x1100c800 0 0x800>;
|
||||
@@ -201,12 +274,48 @@
|
||||
|
||||
auxadc: adc@1100d000 {
|
||||
compatible = "mediatek,mt7981-auxadc",
|
||||
- "mediatek,mt7986-auxadc";
|
||||
+ "mediatek,mt7986-auxadc",
|
||||
+ "mediatek,mt7622-auxadc";
|
||||
reg = <0 0x1100d000 0 0x1000>;
|
||||
- clocks = <&infracfg CLK_INFRA_ADC_26M_CK>;
|
||||
- clock-names = "main";
|
||||
+ clocks = <&infracfg CLK_INFRA_ADC_26M_CK>,
|
||||
+ <&infracfg CLK_INFRA_ADC_FRC_CK>;
|
||||
+ clock-names = "main", "32k";
|
||||
#io-channel-cells = <1>;
|
||||
+ };
|
||||
+
|
||||
+ pcie: pcie@11280000 {
|
||||
+ compatible = "mediatek,mt7981-pcie",
|
||||
+ "mediatek,mt8192-pcie";
|
||||
+ device_type = "pci";
|
||||
+ reg = <0 0x11280000 0 0x4000>;
|
||||
+ reg-names = "pcie-mac";
|
||||
+ #address-cells = <3>;
|
||||
+ #size-cells = <2>;
|
||||
+ interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ bus-range = <0x00 0xff>;
|
||||
+ ranges = <0x82000000 0 0x20000000
|
||||
+ 0x0 0x20000000 0 0x10000000>;
|
||||
status = "disabled";
|
||||
+
|
||||
+ clocks = <&infracfg CLK_INFRA_IPCIE_CK>,
|
||||
+ <&infracfg CLK_INFRA_IPCIE_PIPE_CK>,
|
||||
+ <&infracfg CLK_INFRA_IPCIER_CK>,
|
||||
+ <&infracfg CLK_INFRA_IPCIEB_CK>;
|
||||
+
|
||||
+ phys = <&u3port0 PHY_TYPE_PCIE>;
|
||||
+ phy-names = "pcie-phy";
|
||||
+
|
||||
+ #interrupt-cells = <1>;
|
||||
+ interrupt-map-mask = <0 0 0 7>;
|
||||
+ interrupt-map = <0 0 0 1 &pcie_intc 0>,
|
||||
+ <0 0 0 2 &pcie_intc 1>,
|
||||
+ <0 0 0 3 &pcie_intc 2>,
|
||||
+ <0 0 0 4 &pcie_intc 3>;
|
||||
+ pcie_intc: interrupt-controller {
|
||||
+ interrupt-controller;
|
||||
+ #address-cells = <0>;
|
||||
+ #interrupt-cells = <1>;
|
||||
+ };
|
||||
};
|
||||
|
||||
pio: pinctrl@11d00000 {
|
||||
@@ -229,6 +338,35 @@
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
#interrupt-cells = <2>;
|
||||
+
|
||||
+ mdio_pins: mdc-mdio-pins {
|
||||
+ mux {
|
||||
+ function = "eth";
|
||||
+ groups = "smi_mdc_mdio";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ uart0_pins: uart0-pins {
|
||||
+ mux {
|
||||
+ function = "uart";
|
||||
+ groups = "uart0";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ wifi_dbdc_pins: wifi-dbdc-pins {
|
||||
+ mux {
|
||||
+ function = "eth";
|
||||
+ groups = "wf0_mode1";
|
||||
+ };
|
||||
+ conf {
|
||||
+ pins = "WF_HB1", "WF_HB2", "WF_HB3", "WF_HB4",
|
||||
+ "WF_HB0", "WF_HB0_B", "WF_HB5", "WF_HB6",
|
||||
+ "WF_HB7", "WF_HB8", "WF_HB9", "WF_HB10",
|
||||
+ "WF_TOP_CLK", "WF_TOP_DATA", "WF_XO_REQ",
|
||||
+ "WF_CBA_RESETB", "WF_DIG_RESETB";
|
||||
+ drive-strength = <MTK_DRIVE_4mA>;
|
||||
+ };
|
||||
+ };
|
||||
};
|
||||
|
||||
efuse@11f20000 {
|
||||
@@ -240,17 +378,293 @@
|
||||
thermal_calibration: thermal-calib@274 {
|
||||
reg = <0x274 0xc>;
|
||||
};
|
||||
+
|
||||
+ phy_calibration: phy-calib@8dc {
|
||||
+ reg = <0x8dc 0x10>;
|
||||
+ };
|
||||
+
|
||||
+ comb_rx_imp_p0: usb3-rx-imp@8c8 {
|
||||
+ reg = <0x8c8 1>;
|
||||
+ bits = <0 5>;
|
||||
+ };
|
||||
+
|
||||
+ comb_tx_imp_p0: usb3-tx-imp@8c8 {
|
||||
+ reg = <0x8c8 2>;
|
||||
+ bits = <5 5>;
|
||||
+ };
|
||||
+
|
||||
+ comb_intr_p0: usb3-intr@8c9 {
|
||||
+ reg = <0x8c9 1>;
|
||||
+ bits = <2 6>;
|
||||
+ };
|
||||
};
|
||||
|
||||
- clock-controller@15000000 {
|
||||
+ ethsys: clock-controller@15000000 {
|
||||
compatible = "mediatek,mt7981-ethsys", "syscon";
|
||||
reg = <0 0x15000000 0 0x1000>;
|
||||
#clock-cells = <1>;
|
||||
#reset-cells = <1>;
|
||||
};
|
||||
|
||||
- wifi@18000000 {
|
||||
+ wed: wed@15010000 {
|
||||
+ compatible = "mediatek,mt7981-wed",
|
||||
+ "mediatek,mt7986-wed",
|
||||
+ "syscon";
|
||||
+ reg = <0 0x15010000 0 0x1000>;
|
||||
+ interrupt-parent = <&gic>;
|
||||
+ interrupts = <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ memory-region = <&wo_emi0>, <&wo_data>;
|
||||
+ memory-region-names = "wo-emi", "wo-data";
|
||||
+ mediatek,wo-ccif = <&wo_ccif0>;
|
||||
+ mediatek,wo-ilm = <&wo_ilm0>;
|
||||
+ mediatek,wo-dlm = <&wo_dlm0>;
|
||||
+ mediatek,wo-cpuboot = <&wo_cpuboot>;
|
||||
+ };
|
||||
+
|
||||
+ eth: ethernet@15100000 {
|
||||
+ compatible = "mediatek,mt7981-eth";
|
||||
+ reg = <0 0x15100000 0 0x80000>;
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+ interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>,
|
||||
+ <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>,
|
||||
+ <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>,
|
||||
+ <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ clocks = <ðsys CLK_ETH_FE_EN>,
|
||||
+ <ðsys CLK_ETH_GP2_EN>,
|
||||
+ <ðsys CLK_ETH_GP1_EN>,
|
||||
+ <ðsys CLK_ETH_WOCPU0_EN>,
|
||||
+ <&sgmiisys0 CLK_SGM0_TX_EN>,
|
||||
+ <&sgmiisys0 CLK_SGM0_RX_EN>,
|
||||
+ <&sgmiisys0 CLK_SGM0_CK0_EN>,
|
||||
+ <&sgmiisys0 CLK_SGM0_CDR_CK0_EN>,
|
||||
+ <&sgmiisys1 CLK_SGM1_TX_EN>,
|
||||
+ <&sgmiisys1 CLK_SGM1_RX_EN>,
|
||||
+ <&sgmiisys1 CLK_SGM1_CK1_EN>,
|
||||
+ <&sgmiisys1 CLK_SGM1_CDR_CK1_EN>,
|
||||
+ <&topckgen CLK_TOP_SGM_REG>,
|
||||
+ <&topckgen CLK_TOP_NETSYS_SEL>,
|
||||
+ <&topckgen CLK_TOP_NETSYS_500M_SEL>;
|
||||
+ clock-names = "fe", "gp2", "gp1", "wocpu0",
|
||||
+ "sgmii_tx250m", "sgmii_rx250m",
|
||||
+ "sgmii_cdr_ref", "sgmii_cdr_fb",
|
||||
+ "sgmii2_tx250m", "sgmii2_rx250m",
|
||||
+ "sgmii2_cdr_ref", "sgmii2_cdr_fb",
|
||||
+ "sgmii_ck", "netsys0", "netsys1";
|
||||
+ assigned-clocks = <&topckgen CLK_TOP_NETSYS_2X_SEL>,
|
||||
+ <&topckgen CLK_TOP_SGM_325M_SEL>;
|
||||
+ assigned-clock-parents = <&topckgen CLK_TOP_CB_NET2_800M>,
|
||||
+ <&topckgen CLK_TOP_CB_SGM_325M>;
|
||||
+ mediatek,ethsys = <ðsys>;
|
||||
+ mediatek,sgmiisys = <&sgmiisys0>, <&sgmiisys1>;
|
||||
+ mediatek,infracfg = <&topmisc>;
|
||||
+ mediatek,wed = <&wed>;
|
||||
+ mediatek,wed-pcie = <&wed_pcie>;
|
||||
+ status = "disabled";
|
||||
+
|
||||
+ mdio_bus: mdio-bus {
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+
|
||||
+ int_gbe_phy: ethernet-phy@0 {
|
||||
+ reg = <0>;
|
||||
+ compatible = "ethernet-phy-ieee802.3-c22";
|
||||
+ phy-mode = "gmii";
|
||||
+ phy-is-integrated;
|
||||
+ nvmem-cells = <&phy_calibration>;
|
||||
+ nvmem-cell-names = "phy-cal-data";
|
||||
+
|
||||
+ leds {
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+
|
||||
+ int_gbe_phy_led0: int-gbe-phy-led0@0 {
|
||||
+ reg = <0>;
|
||||
+ function = LED_FUNCTION_LAN;
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+
|
||||
+ int_gbe_phy_led1: int-gbe-phy-led1@1 {
|
||||
+ reg = <1>;
|
||||
+ function = LED_FUNCTION_LAN;
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ wo_dlm0: syscon@151e8000 {
|
||||
+ compatible = "mediatek,mt7986-wo-dlm", "syscon";
|
||||
+ reg = <0 0x151e8000 0 0x2000>;
|
||||
+ };
|
||||
+
|
||||
+ wo_ilm0: syscon@151e0000 {
|
||||
+ compatible = "mediatek,mt7986-wo-ilm", "syscon";
|
||||
+ reg = <0 0x151e0000 0 0x8000>;
|
||||
+ };
|
||||
+
|
||||
+ wo_cpuboot: syscon@15194000 {
|
||||
+ compatible = "mediatek,mt7986-wo-cpuboot", "syscon";
|
||||
+ reg = <0 0x15194000 0 0x1000>;
|
||||
+ };
|
||||
+
|
||||
+ wo_ccif0: syscon@151a5000 {
|
||||
+ compatible = "mediatek,mt7986-wo-ccif", "syscon";
|
||||
+ reg = <0 0x151a5000 0 0x1000>;
|
||||
+ interrupt-parent = <&gic>;
|
||||
+ interrupts = <GIC_SPI 211 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ };
|
||||
+
|
||||
+ sgmiisys0: syscon@10060000 {
|
||||
+ compatible = "mediatek,mt7981-sgmiisys_0", "mediatek,mt7986-sgmiisys_0", "syscon";
|
||||
+ reg = <0 0x10060000 0 0x1000>;
|
||||
+ mediatek,pnswap;
|
||||
+ #clock-cells = <1>;
|
||||
+ };
|
||||
+
|
||||
+ sgmiisys1: syscon@10070000 {
|
||||
+ compatible = "mediatek,mt7981-sgmiisys_1", "mediatek,mt7986-sgmiisys_1", "syscon";
|
||||
+ reg = <0 0x10070000 0 0x1000>;
|
||||
+ #clock-cells = <1>;
|
||||
+ };
|
||||
+
|
||||
+ topmisc: topmisc@11d10000 {
|
||||
+ compatible = "mediatek,mt7981-topmisc", "syscon";
|
||||
+ reg = <0 0x11d10000 0 0x10000>;
|
||||
+ #clock-cells = <1>;
|
||||
+ };
|
||||
+
|
||||
+ snand: snfi@11005000 {
|
||||
+ compatible = "mediatek,mt7986-snand";
|
||||
+ reg = <0 0x11005000 0 0x1000>, <0 0x11006000 0 0x1000>;
|
||||
+ reg-names = "nfi", "ecc";
|
||||
+ interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ clocks = <&infracfg CLK_INFRA_SPINFI1_CK>,
|
||||
+ <&infracfg CLK_INFRA_NFI1_CK>,
|
||||
+ <&infracfg CLK_INFRA_NFI_HCK_CK>;
|
||||
+ clock-names = "pad_clk", "nfi_clk", "nfi_hclk";
|
||||
+ assigned-clocks = <&topckgen CLK_TOP_SPINFI_SEL>,
|
||||
+ <&topckgen CLK_TOP_NFI1X_SEL>;
|
||||
+ assigned-clock-parents = <&topckgen CLK_TOP_CB_M_D8>,
|
||||
+ <&topckgen CLK_TOP_CB_M_D8>;
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+
|
||||
+ mmc0: mmc@11230000 {
|
||||
+ compatible = "mediatek,mt7986-mmc",
|
||||
+ "mediatek,mt7981-mmc";
|
||||
+ reg = <0 0x11230000 0 0x1000>, <0 0x11c20000 0 0x1000>;
|
||||
+ interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ clocks = <&infracfg CLK_INFRA_MSDC_CK>,
|
||||
+ <&infracfg CLK_INFRA_MSDC_HCK_CK>,
|
||||
+ <&infracfg CLK_INFRA_MSDC_66M_CK>,
|
||||
+ <&infracfg CLK_INFRA_MSDC_133M_CK>;
|
||||
+ assigned-clocks = <&topckgen CLK_TOP_EMMC_208M_SEL>,
|
||||
+ <&topckgen CLK_TOP_EMMC_400M_SEL>;
|
||||
+ assigned-clock-parents = <&topckgen CLK_TOP_CB_M_D2>,
|
||||
+ <&topckgen CLK_TOP_CB_NET2_D2>;
|
||||
+ clock-names = "source", "hclk", "axi_cg", "ahb_cg";
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+
|
||||
+ wed_pcie: wed_pcie@10003000 {
|
||||
+ compatible = "mediatek,wed_pcie", "syscon";
|
||||
+ reg = <0 0x10003000 0 0x10>;
|
||||
+ };
|
||||
+
|
||||
+ consys: consys@10000000 {
|
||||
+ compatible = "mediatek,mt7981-consys";
|
||||
+ reg = <0 0x10000000 0 0x8600000>;
|
||||
+ memory-region = <&wmcpu_emi>;
|
||||
+ };
|
||||
+
|
||||
+ xhci: usb@11200000 {
|
||||
+ compatible = "mediatek,mt7986-xhci",
|
||||
+ "mediatek,mtk-xhci";
|
||||
+ reg = <0 0x11200000 0 0x2e00>,
|
||||
+ <0 0x11203e00 0 0x0100>;
|
||||
+ reg-names = "mac", "ippc";
|
||||
+ interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ clocks = <&infracfg CLK_INFRA_IUSB_SYS_CK>,
|
||||
+ <&infracfg CLK_INFRA_IUSB_CK>,
|
||||
+ <&infracfg CLK_INFRA_IUSB_133_CK>,
|
||||
+ <&infracfg CLK_INFRA_IUSB_66M_CK>,
|
||||
+ <&topckgen CLK_TOP_U2U3_XHCI_SEL>;
|
||||
+ clock-names = "sys_ck",
|
||||
+ "ref_ck",
|
||||
+ "mcu_ck",
|
||||
+ "dma_ck",
|
||||
+ "xhci_ck";
|
||||
+ phys = <&u2port0 PHY_TYPE_USB2>,
|
||||
+ <&u3port0 PHY_TYPE_USB3>;
|
||||
+ vusb33-supply = <®_3p3v>;
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+
|
||||
+ usb_phy: usb-phy@11e10000 {
|
||||
+ compatible = "mediatek,mt7981",
|
||||
+ "mediatek,generic-tphy-v2";
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <1>;
|
||||
+ ranges = <0 0 0x11e10000 0x1700>;
|
||||
+ status = "disabled";
|
||||
+
|
||||
+ u2port0: usb-phy@0 {
|
||||
+ reg = <0x0 0x700>;
|
||||
+ clocks = <&topckgen CLK_TOP_USB_FRMCNT_SEL>;
|
||||
+ clock-names = "ref";
|
||||
+ #phy-cells = <1>;
|
||||
+ };
|
||||
+
|
||||
+ u3port0: usb-phy@700 {
|
||||
+ reg = <0x700 0x900>;
|
||||
+ clocks = <&topckgen CLK_TOP_USB3_PHY_SEL>;
|
||||
+ clock-names = "ref";
|
||||
+ #phy-cells = <1>;
|
||||
+ mediatek,syscon-type = <&topmisc 0x218 0>;
|
||||
+ nvmem-cells = <&comb_intr_p0>,
|
||||
+ <&comb_rx_imp_p0>,
|
||||
+ <&comb_tx_imp_p0>;
|
||||
+ nvmem-cell-names = "intr", "rx_imp", "tx_imp";
|
||||
+ status = "okay";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+
|
||||
+ afe: audio-controller@11210000 {
|
||||
+ compatible = "mediatek,mt79xx-audio";
|
||||
+ reg = <0 0x11210000 0 0x9000>;
|
||||
+ interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ clocks = <&infracfg CLK_INFRA_AUD_BUS_CK>,
|
||||
+ <&infracfg CLK_INFRA_AUD_26M_CK>,
|
||||
+ <&infracfg CLK_INFRA_AUD_L_CK>,
|
||||
+ <&infracfg CLK_INFRA_AUD_AUD_CK>,
|
||||
+ <&infracfg CLK_INFRA_AUD_EG2_CK>,
|
||||
+ <&topckgen CLK_TOP_AUD_SEL>;
|
||||
+ clock-names = "aud_bus_ck",
|
||||
+ "aud_26m_ck",
|
||||
+ "aud_l_ck",
|
||||
+ "aud_aud_ck",
|
||||
+ "aud_eg2_ck",
|
||||
+ "aud_sel";
|
||||
+ assigned-clocks = <&topckgen CLK_TOP_AUD_SEL>,
|
||||
+ <&topckgen CLK_TOP_A1SYS_SEL>,
|
||||
+ <&topckgen CLK_TOP_AUD_L_SEL>,
|
||||
+ <&topckgen CLK_TOP_A_TUNER_SEL>;
|
||||
+ assigned-clock-parents = <&topckgen CLK_TOP_CB_APLL2_196M>,
|
||||
+ <&topckgen CLK_TOP_APLL2_D4>,
|
||||
+ <&topckgen CLK_TOP_CB_APLL2_196M>,
|
||||
+ <&topckgen CLK_TOP_APLL2_D4>;
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+
|
||||
+ wifi: wifi@18000000 {
|
||||
compatible = "mediatek,mt7981-wmac";
|
||||
+ pinctrl-0 = <&wifi_dbdc_pins>;
|
||||
+ pinctrl-names = "dbdc";
|
||||
reg = <0 0x18000000 0 0x1000000>,
|
||||
<0 0x10003000 0 0x1000>,
|
||||
<0 0x11d10000 0 0x1000>;
|
||||
@@ -263,6 +677,67 @@
|
||||
clock-names = "mcu", "ap2conn";
|
||||
resets = <&watchdog MT7986_TOPRGU_CONSYS_SW_RST>;
|
||||
reset-names = "consys";
|
||||
+ memory-region = <&wmcpu_emi>;
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ thermal-zones {
|
||||
+ cpu_thermal: cpu-thermal {
|
||||
+ polling-delay-passive = <1000>;
|
||||
+ polling-delay = <1000>;
|
||||
+ thermal-sensors = <&thermal 0>;
|
||||
+ trips {
|
||||
+ cpu_trip_crit: crit {
|
||||
+ temperature = <125000>;
|
||||
+ hysteresis = <2000>;
|
||||
+ type = "critical";
|
||||
+ };
|
||||
+
|
||||
+ 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 = <60000>;
|
||||
+ hysteresis = <2000>;
|
||||
+ type = "active";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ cooling-maps {
|
||||
+ cpu-active-high {
|
||||
+ /* active: set fan to cooling level 3 */
|
||||
+ cooling-device = <&fan 3 3>;
|
||||
+ trip = <&cpu_trip_active_high>;
|
||||
+ };
|
||||
+
|
||||
+ cpu-active-med {
|
||||
+ /* active: set fan to cooling level 2 */
|
||||
+ cooling-device = <&fan 2 2>;
|
||||
+ trip = <&cpu_trip_active_med>;
|
||||
+ };
|
||||
+
|
||||
+ cpu-active-low {
|
||||
+ /* passive: set fan to cooling level 1 */
|
||||
+ cooling-device = <&fan 1 1>;
|
||||
+ trip = <&cpu_trip_active_low>;
|
||||
+ };
|
||||
+ };
|
||||
};
|
||||
};
|
||||
|
||||
@@ -274,4 +749,8 @@
|
||||
<GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
|
||||
<GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
|
||||
};
|
||||
+
|
||||
+ trng {
|
||||
+ compatible = "mediatek,mt7981-rng";
|
||||
+ };
|
||||
};
|
||||
@ -1,76 +0,0 @@
|
||||
From 2b4d8df6054acb13cae20889c40102c93df2edd6 Mon Sep 17 00:00:00 2001
|
||||
From: developer <developer@mediatek.com>
|
||||
Date: Tue, 6 Jan 2026 19:52:11 +0800
|
||||
Subject: [PATCH] pinctrl: mediatek: MT7981: some register map fixes
|
||||
|
||||
Fix mt7981 pinctrl setting mistake including:
|
||||
1) Wrong pinctrl bits length
|
||||
2) Wrong pinctrl register offset
|
||||
|
||||
Link: https://git01.mediatek.com/plugins/gitiles/openwrt/feeds/mtk-openwrt-feeds/+/52579dd19e62df5aff784462e133e14bfe4a7726
|
||||
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
|
||||
---
|
||||
drivers/pinctrl/mediatek/pinctrl-mt7981.c | 16 ++++++++--------
|
||||
1 file changed, 8 insertions(+), 8 deletions(-)
|
||||
|
||||
--- a/drivers/pinctrl/mediatek/pinctrl-mt7981.c
|
||||
+++ b/drivers/pinctrl/mediatek/pinctrl-mt7981.c
|
||||
@@ -48,7 +48,7 @@ static const struct mtk_pin_field_calc m
|
||||
|
||||
PIN_FIELD_BASE(9, 9, 5, 0x20, 0x10, 9, 1),
|
||||
PIN_FIELD_BASE(10, 10, 5, 0x20, 0x10, 8, 1),
|
||||
- PIN_FIELD_BASE(11, 11, 5, 0x40, 0x10, 10, 1),
|
||||
+ PIN_FIELD_BASE(11, 11, 5, 0x20, 0x10, 10, 1),
|
||||
PIN_FIELD_BASE(12, 12, 5, 0x20, 0x10, 7, 1),
|
||||
PIN_FIELD_BASE(13, 13, 5, 0x20, 0x10, 11, 1),
|
||||
|
||||
@@ -157,7 +157,7 @@ static const struct mtk_pin_field_calc m
|
||||
PIN_FIELD_BASE(41, 41, 7, 0x70, 0x10, 0, 1),
|
||||
PIN_FIELD_BASE(42, 42, 7, 0x70, 0x10, 9, 1),
|
||||
PIN_FIELD_BASE(43, 43, 7, 0x70, 0x10, 7, 1),
|
||||
- PIN_FIELD_BASE(44, 44, 7, 0x30, 0x10, 8, 1),
|
||||
+ PIN_FIELD_BASE(44, 44, 7, 0x70, 0x10, 8, 1),
|
||||
PIN_FIELD_BASE(45, 45, 7, 0x70, 0x10, 3, 1),
|
||||
PIN_FIELD_BASE(46, 46, 7, 0x70, 0x10, 4, 1),
|
||||
PIN_FIELD_BASE(47, 47, 7, 0x70, 0x10, 5, 1),
|
||||
@@ -221,8 +221,8 @@ static const struct mtk_pin_field_calc m
|
||||
|
||||
PIN_FIELD_BASE(2, 2, 5, 0x00, 0x10, 18, 3),
|
||||
|
||||
- PIN_FIELD_BASE(3, 3, 4, 0x00, 0x10, 18, 1),
|
||||
- PIN_FIELD_BASE(4, 4, 4, 0x00, 0x10, 6, 1),
|
||||
+ PIN_FIELD_BASE(3, 3, 4, 0x00, 0x10, 18, 3),
|
||||
+ PIN_FIELD_BASE(4, 4, 4, 0x00, 0x10, 6, 3),
|
||||
PIN_FIELD_BASE(5, 5, 4, 0x00, 0x10, 3, 3),
|
||||
PIN_FIELD_BASE(6, 6, 4, 0x00, 0x10, 9, 3),
|
||||
PIN_FIELD_BASE(7, 7, 4, 0x00, 0x10, 0, 3),
|
||||
@@ -230,9 +230,9 @@ static const struct mtk_pin_field_calc m
|
||||
|
||||
PIN_FIELD_BASE(9, 9, 5, 0x00, 0x10, 27, 3),
|
||||
PIN_FIELD_BASE(10, 10, 5, 0x00, 0x10, 24, 3),
|
||||
- PIN_FIELD_BASE(11, 11, 5, 0x00, 0x10, 0, 3),
|
||||
+ PIN_FIELD_BASE(11, 11, 5, 0x10, 0x10, 0, 3),
|
||||
PIN_FIELD_BASE(12, 12, 5, 0x00, 0x10, 21, 3),
|
||||
- PIN_FIELD_BASE(13, 13, 5, 0x00, 0x10, 3, 3),
|
||||
+ PIN_FIELD_BASE(13, 13, 5, 0x10, 0x10, 3, 3),
|
||||
|
||||
PIN_FIELD_BASE(14, 14, 4, 0x00, 0x10, 27, 3),
|
||||
|
||||
@@ -244,7 +244,7 @@ static const struct mtk_pin_field_calc m
|
||||
PIN_FIELD_BASE(20, 20, 2, 0x00, 0x10, 9, 3),
|
||||
PIN_FIELD_BASE(21, 21, 2, 0x00, 0x10, 18, 3),
|
||||
PIN_FIELD_BASE(22, 22, 2, 0x00, 0x10, 21, 3),
|
||||
- PIN_FIELD_BASE(23, 23, 2, 0x00, 0x10, 0, 3),
|
||||
+ PIN_FIELD_BASE(23, 23, 2, 0x10, 0x10, 0, 3),
|
||||
PIN_FIELD_BASE(24, 24, 2, 0x00, 0x10, 27, 3),
|
||||
PIN_FIELD_BASE(25, 25, 2, 0x00, 0x10, 24, 3),
|
||||
|
||||
@@ -310,7 +310,7 @@ static const struct mtk_pin_field_calc m
|
||||
PIN_FIELD_BASE(17, 17, 2, 0x30, 0x10, 5, 1),
|
||||
PIN_FIELD_BASE(18, 18, 2, 0x30, 0x10, 4, 1),
|
||||
PIN_FIELD_BASE(19, 19, 2, 0x30, 0x10, 2, 1),
|
||||
- PIN_FIELD_BASE(20, 20, 2, 0x90, 0x10, 3, 1),
|
||||
+ PIN_FIELD_BASE(20, 20, 2, 0x30, 0x10, 3, 1),
|
||||
PIN_FIELD_BASE(21, 21, 2, 0x30, 0x10, 6, 1),
|
||||
PIN_FIELD_BASE(22, 22, 2, 0x30, 0x10, 7, 1),
|
||||
PIN_FIELD_BASE(23, 23, 2, 0x30, 0x10, 10, 1),
|
||||
@ -1,31 +0,0 @@
|
||||
From 2138956bdc3145fac26d2ba8ac966f31d33cd290 Mon Sep 17 00:00:00 2001
|
||||
From: Chuanhong Guo <gch981213@gmail.com>
|
||||
Date: Thu, 7 Apr 2022 10:05:56 +0800
|
||||
Subject: [PATCH] mediatek: spi-nand: check for 1 byte BBM only
|
||||
|
||||
the OOB layout in MTK SNFI uses the 2nd byte, and anything using OOB
|
||||
will make the block a bad-block in spi-nand driver.
|
||||
Hack it for now. We need a proper solution upstream.
|
||||
|
||||
Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
|
||||
---
|
||||
--- a/drivers/mtd/nand/spi/core.c
|
||||
+++ b/drivers/mtd/nand/spi/core.c
|
||||
@@ -924,7 +924,7 @@ static int spinand_mtd_write(struct mtd_
|
||||
static bool spinand_isbad(struct nand_device *nand, const struct nand_pos *pos)
|
||||
{
|
||||
struct spinand_device *spinand = nand_to_spinand(nand);
|
||||
- u8 marker[2] = { };
|
||||
+ u8 marker[1] = { };
|
||||
struct nand_page_io_req req = {
|
||||
.pos = *pos,
|
||||
.ooblen = sizeof(marker),
|
||||
@@ -943,7 +943,7 @@ static bool spinand_isbad(struct nand_de
|
||||
spinand_read_page(spinand, &req);
|
||||
}
|
||||
|
||||
- if (marker[0] != 0xff || marker[1] != 0xff)
|
||||
+ if (marker[0] != 0xff)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
@ -1,94 +0,0 @@
|
||||
From c813fbe806257c574240770ef716fbee19f7dbfa Mon Sep 17 00:00:00 2001
|
||||
From: Xiangsheng Hou <xiangsheng.hou@mediatek.com>
|
||||
Date: Thu, 6 Jun 2019 16:29:04 +0800
|
||||
Subject: [PATCH] spi: spi-mem: Mediatek: Add SPI Nand support for MT7629
|
||||
|
||||
Signed-off-by: Xiangsheng Hou <xiangsheng.hou@mediatek.com>
|
||||
---
|
||||
arch/arm/boot/dts/mediatek/mt7629-rfb.dts | 45 ++++++++++++++++++++++++++++++++
|
||||
arch/arm/boot/dts/mediatek/mt7629.dtsi | 22 ++++++++++++++++
|
||||
3 files changed, 79 insertions(+)
|
||||
|
||||
--- a/arch/arm/boot/dts/mediatek/mt7629.dtsi
|
||||
+++ b/arch/arm/boot/dts/mediatek/mt7629.dtsi
|
||||
@@ -271,6 +271,27 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
+ snfi: spi@1100d000 {
|
||||
+ compatible = "mediatek,mt7629-snand";
|
||||
+ reg = <0x1100d000 0x1000>;
|
||||
+ interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_LOW>;
|
||||
+ clocks = <&pericfg CLK_PERI_NFI_PD>, <&pericfg CLK_PERI_SNFI_PD>;
|
||||
+ clock-names = "nfi_clk", "pad_clk";
|
||||
+ nand-ecc-engine = <&bch>;
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+
|
||||
+ bch: ecc@1100e000 {
|
||||
+ compatible = "mediatek,mt7622-ecc";
|
||||
+ reg = <0x1100e000 0x1000>;
|
||||
+ interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_LOW>;
|
||||
+ clocks = <&pericfg CLK_PERI_NFIECC_PD>;
|
||||
+ clock-names = "nfiecc_clk";
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+
|
||||
spi: spi@1100a000 {
|
||||
compatible = "mediatek,mt7629-spi",
|
||||
"mediatek,mt7622-spi";
|
||||
--- a/arch/arm/boot/dts/mediatek/mt7629-rfb.dts
|
||||
+++ b/arch/arm/boot/dts/mediatek/mt7629-rfb.dts
|
||||
@@ -255,6 +255,50 @@
|
||||
};
|
||||
};
|
||||
|
||||
+&bch {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&snfi {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&serial_nand_pins>;
|
||||
+ status = "okay";
|
||||
+ flash@0 {
|
||||
+ compatible = "spi-nand";
|
||||
+ reg = <0>;
|
||||
+ spi-tx-bus-width = <4>;
|
||||
+ spi-rx-bus-width = <4>;
|
||||
+ nand-ecc-engine = <&snfi>;
|
||||
+
|
||||
+ partitions {
|
||||
+ compatible = "fixed-partitions";
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <1>;
|
||||
+
|
||||
+ partition@0 {
|
||||
+ label = "Bootloader";
|
||||
+ reg = <0x00000 0x0100000>;
|
||||
+ read-only;
|
||||
+ };
|
||||
+
|
||||
+ partition@100000 {
|
||||
+ label = "Config";
|
||||
+ reg = <0x100000 0x0040000>;
|
||||
+ };
|
||||
+
|
||||
+ partition@140000 {
|
||||
+ label = "factory";
|
||||
+ reg = <0x140000 0x0080000>;
|
||||
+ };
|
||||
+
|
||||
+ partition@1c0000 {
|
||||
+ label = "firmware";
|
||||
+ reg = <0x1c0000 0x1000000>;
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
&spi {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&spi_pins>;
|
||||
@ -1,79 +0,0 @@
|
||||
From d3f058db1cb9b2d43764cd0d84fdc2779f0abacf Mon Sep 17 00:00:00 2001
|
||||
From: John Crispin <john@phrozen.org>
|
||||
Date: Fri, 27 Mar 2020 15:34:33 +0100
|
||||
Subject: [PATCH] arm64: dts: mediatek: mt7622-rfb1: add SPI-NAND flash node
|
||||
|
||||
Add a spi-nand child node to the snfi controller with quad-IO bus widths,
|
||||
an ECC engine reference, and a fixed-partitions layout covering the full
|
||||
flash address space of the SPI-NAND device populated on the RFB1 board.
|
||||
|
||||
Signed-off-by: John Crispin <john@phrozen.org>
|
||||
---
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts
|
||||
@@ -558,6 +558,65 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
+&bch {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&snfi {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&serial_nand_pins>;
|
||||
+ status = "okay";
|
||||
+ flash@0 {
|
||||
+ compatible = "spi-nand";
|
||||
+ reg = <0>;
|
||||
+ spi-tx-bus-width = <4>;
|
||||
+ spi-rx-bus-width = <4>;
|
||||
+ nand-ecc-engine = <&snfi>;
|
||||
+
|
||||
+ partitions {
|
||||
+ compatible = "fixed-partitions";
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <1>;
|
||||
+
|
||||
+ partition@0 {
|
||||
+ label = "Preloader";
|
||||
+ reg = <0x00000 0x0080000>;
|
||||
+ read-only;
|
||||
+ };
|
||||
+
|
||||
+ partition@80000 {
|
||||
+ label = "ATF";
|
||||
+ reg = <0x80000 0x0040000>;
|
||||
+ };
|
||||
+
|
||||
+ partition@c0000 {
|
||||
+ label = "Bootloader";
|
||||
+ reg = <0xc0000 0x0080000>;
|
||||
+ };
|
||||
+
|
||||
+ partition@140000 {
|
||||
+ label = "Config";
|
||||
+ reg = <0x140000 0x0080000>;
|
||||
+ };
|
||||
+
|
||||
+ partition@1c0000 {
|
||||
+ label = "Factory";
|
||||
+ reg = <0x1c0000 0x0100000>;
|
||||
+ };
|
||||
+
|
||||
+ partition@200000 {
|
||||
+ label = "firmware";
|
||||
+ reg = <0x2c0000 0x2000000>;
|
||||
+ };
|
||||
+
|
||||
+ partition@2200000 {
|
||||
+ label = "User_data";
|
||||
+ reg = <0x22c0000 0x4000000>;
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
&spi0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&spic0_pins>;
|
||||
@ -1,29 +0,0 @@
|
||||
From c46ccb69d17e584479df849a107423175a143c83 Mon Sep 17 00:00:00 2001
|
||||
From: Felix Fietkau <nbd@nbd.name>
|
||||
Date: Sat, 24 Oct 2020 21:15:20 +0200
|
||||
Subject: [PATCH] arm64: dts: mediatek: mt7622-rfb1: wire EEPROM to wmac from factory partition
|
||||
|
||||
Label the factory partition node so it can be referenced by phandle, and
|
||||
add a mediatek,mtd-eeprom property to the wmac node pointing at the
|
||||
factory partition to supply the calibration data at offset 0x0000.
|
||||
|
||||
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
---
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts
|
||||
@@ -599,7 +599,7 @@
|
||||
reg = <0x140000 0x0080000>;
|
||||
};
|
||||
|
||||
- partition@1c0000 {
|
||||
+ factory: partition@1c0000 {
|
||||
label = "Factory";
|
||||
reg = <0x1c0000 0x0100000>;
|
||||
};
|
||||
@@ -660,5 +660,6 @@
|
||||
&wmac {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&wmac_pins>;
|
||||
+ mediatek,mtd-eeprom = <&factory 0x0000>;
|
||||
status = "okay";
|
||||
};
|
||||
@ -1,37 +0,0 @@
|
||||
From 127ad76311079a842578e788a8af364f3910c676 Mon Sep 17 00:00:00 2001
|
||||
From: John Crispin <john@phrozen.org>
|
||||
Date: Thu, 4 Jun 2020 14:20:34 +0200
|
||||
Subject: [PATCH] arm: dts: mediatek: mt7623: switch crypto to inside-secure,safexcel-eip97
|
||||
|
||||
Switch the DTS compatible string of the crypto engine node from
|
||||
"mediatek,eip97-crypto" to "inside-secure,safexcel-eip97" to bind to
|
||||
the upstream Inside Secure SafeXcel driver. Update the interrupt list
|
||||
to match and add interrupt-names, and remove the now-unused power-domain
|
||||
and clock-names properties.
|
||||
|
||||
Signed-off-by: John Crispin <john@phrozen.org>
|
||||
---
|
||||
--- a/arch/arm/boot/dts/mediatek/mt7623.dtsi
|
||||
+++ b/arch/arm/boot/dts/mediatek/mt7623.dtsi
|
||||
@@ -995,17 +995,15 @@
|
||||
};
|
||||
|
||||
crypto: crypto@1b240000 {
|
||||
- compatible = "mediatek,eip97-crypto";
|
||||
+ compatible = "inside-secure,safexcel-eip97";
|
||||
reg = <0 0x1b240000 0 0x20000>;
|
||||
interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_LOW>,
|
||||
<GIC_SPI 83 IRQ_TYPE_LEVEL_LOW>,
|
||||
<GIC_SPI 84 IRQ_TYPE_LEVEL_LOW>,
|
||||
- <GIC_SPI 91 IRQ_TYPE_LEVEL_LOW>,
|
||||
- <GIC_SPI 97 IRQ_TYPE_LEVEL_LOW>;
|
||||
+ <GIC_SPI 91 IRQ_TYPE_LEVEL_LOW>;
|
||||
+ interrupt-names = "ring0", "ring1", "ring2", "ring3";
|
||||
clocks = <ðsys CLK_ETHSYS_CRYPTO>;
|
||||
- clock-names = "cryp";
|
||||
- power-domains = <&scpsys MT2701_POWER_DOMAIN_ETH>;
|
||||
- status = "disabled";
|
||||
+ status = "okay";
|
||||
};
|
||||
|
||||
bdpsys: syscon@1c000000 {
|
||||
@ -1,22 +0,0 @@
|
||||
From 25d9df670b850a4e3702e084ff249baa1670ae3f Mon Sep 17 00:00:00 2001
|
||||
From: Mark-MC Lee (李明昌) <Mark-MC.Lee@mediatek.com>
|
||||
Date: Mon, 10 Feb 2020 09:33:15 +0100
|
||||
Subject: [PATCH] arm: dts: mediatek: mt7623n-bpi-r2: add earlycon= to bootargs
|
||||
|
||||
Add earlycon=uart8250,mmio32,0x11004000 to the chosen/bootargs property
|
||||
so that kernel messages are available on the serial console before the
|
||||
full UART driver is initialised.
|
||||
|
||||
Signed-off-by: Mark-MC Lee (李明昌) <Mark-MC.Lee@mediatek.com>
|
||||
---
|
||||
--- a/arch/arm/boot/dts/mediatek/mt7623n-bananapi-bpi-r2.dts
|
||||
+++ b/arch/arm/boot/dts/mediatek/mt7623n-bananapi-bpi-r2.dts
|
||||
@@ -19,7 +19,7 @@
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial2:115200n8";
|
||||
- bootargs = "console=ttyS2,115200n8 console=tty1";
|
||||
+ bootargs = "earlycon=uart8250,mmio32,0x11004000 console=ttyS2,115200n8 console=tty1";
|
||||
};
|
||||
|
||||
connector {
|
||||
@ -1,22 +0,0 @@
|
||||
From 25d9df670b850a4e3702e084ff249baa1670ae3f Mon Sep 17 00:00:00 2001
|
||||
From: Mark-MC Lee (李明昌) <Mark-MC.Lee@mediatek.com>
|
||||
Date: Mon, 10 Feb 2020 09:33:15 +0100
|
||||
Subject: [PATCH] arm: dts: mediatek: mt7623n-bpi-r2: add mmc device order aliases
|
||||
|
||||
Add mmc0 and mmc1 aliases to fix the MMC controller enumeration order,
|
||||
ensuring the SD card slot and eMMC are always assigned predictable
|
||||
device numbers regardless of probe order.
|
||||
|
||||
Signed-off-by: Mark-MC Lee (李明昌) <Mark-MC.Lee@mediatek.com>
|
||||
---
|
||||
--- a/arch/arm/boot/dts/mediatek/mt7623n-bananapi-bpi-r2.dts
|
||||
+++ b/arch/arm/boot/dts/mediatek/mt7623n-bananapi-bpi-r2.dts
|
||||
@@ -15,6 +15,8 @@
|
||||
|
||||
aliases {
|
||||
serial2 = &uart2;
|
||||
+ mmc0 = &mmc0;
|
||||
+ mmc1 = &mmc1;
|
||||
};
|
||||
|
||||
chosen {
|
||||
@ -1,38 +0,0 @@
|
||||
From 21c7a8593d86175c0764d23e77bb019fd9617f53 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Golle <daniel@makrotopia.org>
|
||||
Date: Fri, 1 Oct 2021 23:25:48 +0100
|
||||
Subject: [PATCH] mediatek: mt7623: bpi-r2: add LED aliases
|
||||
|
||||
Add aliases for LEDs in device tree of the BPi-R2.
|
||||
|
||||
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
---
|
||||
--- a/arch/arm/boot/dts/mediatek/mt7623n-bananapi-bpi-r2.dts
|
||||
+++ b/arch/arm/boot/dts/mediatek/mt7623n-bananapi-bpi-r2.dts
|
||||
@@ -17,6 +17,10 @@
|
||||
serial2 = &uart2;
|
||||
mmc0 = &mmc0;
|
||||
mmc1 = &mmc1;
|
||||
+ led-boot = &led_system_green;
|
||||
+ led-failsafe = &led_system_blue;
|
||||
+ led-running = &led_system_green;
|
||||
+ led-upgrade = &led_system_blue;
|
||||
};
|
||||
|
||||
chosen {
|
||||
@@ -112,13 +116,13 @@
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&led_pins_a>;
|
||||
|
||||
- blue {
|
||||
+ led_system_blue: blue {
|
||||
label = "bpi-r2:pio:blue";
|
||||
gpios = <&pio 240 GPIO_ACTIVE_LOW>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
- green {
|
||||
+ led_system_green: green {
|
||||
label = "bpi-r2:pio:green";
|
||||
gpios = <&pio 241 GPIO_ACTIVE_LOW>;
|
||||
default-state = "off";
|
||||
@ -1,20 +0,0 @@
|
||||
From 25d9df670b850a4e3702e084ff249baa1670ae3f Mon Sep 17 00:00:00 2001
|
||||
From: Mark-MC Lee (李明昌) <Mark-MC.Lee@mediatek.com>
|
||||
Date: Mon, 10 Feb 2020 09:33:15 +0100
|
||||
Subject: [PATCH] arm: dts: mediatek: mt7623n-bpi-r2: add ethernet0 alias
|
||||
|
||||
Add an ethernet0 alias pointing to gmac0 so that the primary Ethernet
|
||||
interface is consistently named by the kernel.
|
||||
|
||||
Signed-off-by: Mark-MC Lee (李明昌) <Mark-MC.Lee@mediatek.com>
|
||||
---
|
||||
--- a/arch/arm/boot/dts/mediatek/mt7623n-bananapi-bpi-r2.dts
|
||||
+++ b/arch/arm/boot/dts/mediatek/mt7623n-bananapi-bpi-r2.dts
|
||||
@@ -15,6 +15,7 @@
|
||||
|
||||
aliases {
|
||||
serial2 = &uart2;
|
||||
+ ethernet0 = &gmac0;
|
||||
mmc0 = &mmc0;
|
||||
mmc1 = &mmc1;
|
||||
led-boot = &led_system_green;
|
||||
@ -1,66 +0,0 @@
|
||||
From 6368ed1ae5b628898b33273c8950f7b7575e4414 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Golle <daniel@makrotopia.org>
|
||||
Date: Sat, 24 Feb 2024 03:00:27 +0000
|
||||
Subject: [PATCH] mediatek: mt7623: phase out uImage.FIT partition parser
|
||||
|
||||
Use the new fitblk driver on the BananaPi R2 as well as UniElec U7623.
|
||||
Introduce boot device selection for fitblk's /chosen/rootdisk
|
||||
handle, similar to how it is already done on MT7622, MT7986 and MT7988.
|
||||
|
||||
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
---
|
||||
--- a/arch/arm/boot/dts/mediatek/mt7623n-bananapi-bpi-r2.dts
|
||||
+++ b/arch/arm/boot/dts/mediatek/mt7623n-bananapi-bpi-r2.dts
|
||||
@@ -26,7 +26,9 @@
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial2:115200n8";
|
||||
- bootargs = "earlycon=uart8250,mmio32,0x11004000 console=ttyS2,115200n8 console=tty1";
|
||||
+ bootargs = "root=/dev/fit0 rootwait earlycon=uart8250,mmio32,0x11004000 console=ttyS2,115200n8 console=tty1";
|
||||
+ rootdisk-emmc = <&emmc_rootdisk>;
|
||||
+ rootdisk-sd = <&sd_rootdisk>;
|
||||
};
|
||||
|
||||
connector {
|
||||
@@ -338,6 +340,20 @@
|
||||
vmmc-supply = <®_3p3v>;
|
||||
vqmmc-supply = <®_1p8v>;
|
||||
non-removable;
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+
|
||||
+ card@0 {
|
||||
+ compatible = "mmc-card";
|
||||
+ reg = <0>;
|
||||
+
|
||||
+ partitions {
|
||||
+ compatible = "msdos-partitions";
|
||||
+ emmc_rootdisk: block-partition-fit {
|
||||
+ partno = <3>;
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
};
|
||||
|
||||
&mmc1 {
|
||||
@@ -351,6 +367,20 @@
|
||||
cd-gpios = <&pio 261 GPIO_ACTIVE_LOW>;
|
||||
vmmc-supply = <®_3p3v>;
|
||||
vqmmc-supply = <®_3p3v>;
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+
|
||||
+ card@0 {
|
||||
+ compatible = "mmc-card";
|
||||
+ reg = <0>;
|
||||
+
|
||||
+ partitions {
|
||||
+ compatible = "msdos-partitions";
|
||||
+ sd_rootdisk: block-partition-fit {
|
||||
+ partno = <3>;
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
};
|
||||
|
||||
&mt6323keys {
|
||||
@ -1,876 +0,0 @@
|
||||
From df3c7a5128f88e658bd4519154d5e896519e740a Mon Sep 17 00:00:00 2001
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
Date: Tue, 22 Apr 2025 15:24:25 +0200
|
||||
Subject: [PATCH 27/32] arm64: dts: mediatek: mt7988a-bpi-r4: allow hw variants
|
||||
of bpi-r4
|
||||
|
||||
Sinovoip has released other variants of Bananapi-R4 board.
|
||||
The known changes affecting only the LAN SFP+ slot which is replaced
|
||||
by a 2.5G phy with optional PoE.
|
||||
|
||||
Just move the common parts to a new dtsi and keep differences (only
|
||||
i2c for lan-sfp) in dts.
|
||||
|
||||
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
|
||||
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
|
||||
Reviewed-by: AngeloGioacchino Del Regno <angelogiaocchino.delregno@collabora.com>
|
||||
---
|
||||
arch/arm64/boot/dts/mediatek/Makefile | 6 +
|
||||
.../mediatek/mt7988a-bananapi-bpi-r4-2g5.dts | 11 +
|
||||
.../dts/mediatek/mt7988a-bananapi-bpi-r4.dts | 400 +-----------------
|
||||
.../dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi | 399 +++++++++++++++++
|
||||
4 files changed, 421 insertions(+), 395 deletions(-)
|
||||
create mode 100644 arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-2g5.dts
|
||||
create mode 100644 arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/Makefile
|
||||
+++ b/arch/arm64/boot/dts/mediatek/Makefile
|
||||
@@ -21,6 +21,9 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-b
|
||||
dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-rfb.dtb
|
||||
dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986b-rfb.dtb
|
||||
dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4.dtb
|
||||
+dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-2g5.dtb
|
||||
+dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-emmc.dtbo
|
||||
+dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-sd.dtbo
|
||||
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8167-pumpkin.dtb
|
||||
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8173-elm.dtb
|
||||
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8173-elm-hana.dtb
|
||||
@@ -90,3 +93,6 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += mt8516-pu
|
||||
# Device tree overlays support
|
||||
DTC_FLAGS_mt7986a-bananapi-bpi-r3 := -@
|
||||
DTC_FLAGS_mt7986a-bananapi-bpi-r3-mini := -@
|
||||
+DTC_FLAGS_mt7988a-bananapi-bpi-r4 := -@
|
||||
+DTC_FLAGS_mt7988a-bananapi-bpi-r4-2g5 := -@
|
||||
+DTC_FLAGS_mt8395-radxa-nio-12l := -@
|
||||
--- /dev/null
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-2g5.dts
|
||||
@@ -0,0 +1,11 @@
|
||||
+// SPDX-License-Identifier: GPL-2.0-only OR MIT
|
||||
+
|
||||
+/dts-v1/;
|
||||
+
|
||||
+#include "mt7988a-bananapi-bpi-r4.dtsi"
|
||||
+
|
||||
+/ {
|
||||
+ compatible = "bananapi,bpi-r4-2g5", "bananapi,bpi-r4", "mediatek,mt7988a";
|
||||
+ model = "Banana Pi BPI-R4 (1x SFP+, 1x 2.5GbE)";
|
||||
+ chassis-type = "embedded";
|
||||
+};
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts
|
||||
@@ -2,408 +2,18 @@
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
-#include <dt-bindings/gpio/gpio.h>
|
||||
-#include <dt-bindings/regulator/richtek,rt5190a-regulator.h>
|
||||
-
|
||||
-#include "mt7988a.dtsi"
|
||||
+#include "mt7988a-bananapi-bpi-r4.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "bananapi,bpi-r4", "mediatek,mt7988a";
|
||||
- model = "Banana Pi BPI-R4";
|
||||
+ model = "Banana Pi BPI-R4 (2x SFP+)";
|
||||
chassis-type = "embedded";
|
||||
-
|
||||
- chosen {
|
||||
- stdout-path = "serial0:115200n8";
|
||||
- };
|
||||
-
|
||||
- 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;
|
||||
- };
|
||||
};
|
||||
|
||||
-&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";
|
||||
- };
|
||||
- };
|
||||
-};
|
||||
-
|
||||
-&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>;
|
||||
+&pca9545 {
|
||||
+ i2c_sfp2: i2c@2 {
|
||||
#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>;
|
||||
- };
|
||||
-
|
||||
- i2c_sfp2: i2c@2 {
|
||||
- #address-cells = <1>;
|
||||
- #size-cells = <0>;
|
||||
- reg = <2>;
|
||||
- };
|
||||
- };
|
||||
-};
|
||||
-
|
||||
-/* 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 {
|
||||
- mdio0_pins: mdio0-pins {
|
||||
- mux {
|
||||
- function = "eth";
|
||||
- groups = "mdc_mdio0";
|
||||
- };
|
||||
-
|
||||
- conf {
|
||||
- pins = "SMI_0_MDC", "SMI_0_MDIO";
|
||||
- drive-strength = <8>;
|
||||
- };
|
||||
- };
|
||||
-
|
||||
- i2c0_pins: i2c0-g0-pins {
|
||||
- mux {
|
||||
- function = "i2c";
|
||||
- groups = "i2c0_1";
|
||||
- };
|
||||
- };
|
||||
-
|
||||
- i2c1_pins: i2c1-g0-pins {
|
||||
- mux {
|
||||
- function = "i2c";
|
||||
- groups = "i2c1_0";
|
||||
- };
|
||||
- };
|
||||
-
|
||||
- i2c1_sfp_pins: i2c1-sfp-g0-pins {
|
||||
- mux {
|
||||
- function = "i2c";
|
||||
- groups = "i2c1_sfp";
|
||||
- };
|
||||
- };
|
||||
-
|
||||
- i2c2_0_pins: i2c2-g0-pins {
|
||||
- mux {
|
||||
- function = "i2c";
|
||||
- groups = "i2c2_0";
|
||||
- };
|
||||
+ reg = <2>;
|
||||
};
|
||||
-
|
||||
- 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";
|
||||
- };
|
||||
- };
|
||||
-
|
||||
- gbe0_led1_pins: gbe0-led1-pins {
|
||||
- mux {
|
||||
- function = "led";
|
||||
- groups = "gbe0_led1";
|
||||
- };
|
||||
- };
|
||||
-
|
||||
- gbe1_led1_pins: gbe1-led1-pins {
|
||||
- mux {
|
||||
- function = "led";
|
||||
- groups = "gbe1_led1";
|
||||
- };
|
||||
- };
|
||||
-
|
||||
- gbe2_led1_pins: gbe2-led1-pins {
|
||||
- mux {
|
||||
- function = "led";
|
||||
- groups = "gbe2_led1";
|
||||
- };
|
||||
- };
|
||||
-
|
||||
- gbe3_led1_pins: gbe3-led1-pins {
|
||||
- mux {
|
||||
- function = "led";
|
||||
- groups = "gbe3_led1";
|
||||
- };
|
||||
- };
|
||||
-
|
||||
- i2p5gbe_led0_pins: 2p5gbe-led0-pins {
|
||||
- mux {
|
||||
- function = "led";
|
||||
- groups = "2p5gbe_led0";
|
||||
- };
|
||||
- };
|
||||
-
|
||||
- i2p5gbe_led1_pins: 2p5gbe-led1-pins {
|
||||
- mux {
|
||||
- function = "led";
|
||||
- groups = "2p5gbe_led1";
|
||||
- };
|
||||
- };
|
||||
-
|
||||
- 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";
|
||||
- };
|
||||
- };
|
||||
-
|
||||
- uart0_pins: uart0-pins {
|
||||
- mux {
|
||||
- function = "uart";
|
||||
- groups = "uart0";
|
||||
- };
|
||||
- };
|
||||
-
|
||||
- snfi_pins: snfi-pins {
|
||||
- mux {
|
||||
- function = "flash";
|
||||
- groups = "snfi";
|
||||
- };
|
||||
- };
|
||||
-
|
||||
- spi0_pins: spi0-pins {
|
||||
- mux {
|
||||
- function = "spi";
|
||||
- groups = "spi0";
|
||||
- };
|
||||
- };
|
||||
-
|
||||
- spi0_flash_pins: spi0-flash-pins {
|
||||
- mux {
|
||||
- function = "spi";
|
||||
- groups = "spi0", "spi0_wp_hold";
|
||||
- };
|
||||
- };
|
||||
-
|
||||
- spi1_pins: spi1-pins {
|
||||
- mux {
|
||||
- function = "spi";
|
||||
- groups = "spi1";
|
||||
- };
|
||||
- };
|
||||
-
|
||||
- spi2_pins: spi2-pins {
|
||||
- mux {
|
||||
- function = "spi";
|
||||
- groups = "spi2";
|
||||
- };
|
||||
- };
|
||||
-
|
||||
- spi2_flash_pins: spi2-flash-pins {
|
||||
- mux {
|
||||
- function = "spi";
|
||||
- groups = "spi2", "spi2_wp_hold";
|
||||
- };
|
||||
- };
|
||||
-};
|
||||
-
|
||||
-&pwm {
|
||||
- status = "okay";
|
||||
-};
|
||||
-
|
||||
-&serial0 {
|
||||
- status = "okay";
|
||||
-};
|
||||
-
|
||||
-&ssusb1 {
|
||||
- status = "okay";
|
||||
-};
|
||||
-
|
||||
-&tphy {
|
||||
- status = "okay";
|
||||
-};
|
||||
-
|
||||
-&watchdog {
|
||||
- status = "okay";
|
||||
};
|
||||
--- /dev/null
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
|
||||
@@ -0,0 +1,399 @@
|
||||
+// SPDX-License-Identifier: GPL-2.0-only OR MIT
|
||||
+
|
||||
+/dts-v1/;
|
||||
+
|
||||
+#include <dt-bindings/gpio/gpio.h>
|
||||
+#include <dt-bindings/regulator/richtek,rt5190a-regulator.h>
|
||||
+
|
||||
+#include "mt7988a.dtsi"
|
||||
+
|
||||
+/ {
|
||||
+ chosen {
|
||||
+ stdout-path = "serial0:115200n8";
|
||||
+ };
|
||||
+
|
||||
+ 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;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&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";
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&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 {
|
||||
+ mdio0_pins: mdio0-pins {
|
||||
+ mux {
|
||||
+ function = "eth";
|
||||
+ groups = "mdc_mdio0";
|
||||
+ };
|
||||
+
|
||||
+ conf {
|
||||
+ pins = "SMI_0_MDC", "SMI_0_MDIO";
|
||||
+ drive-strength = <8>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ i2c0_pins: i2c0-g0-pins {
|
||||
+ mux {
|
||||
+ function = "i2c";
|
||||
+ groups = "i2c0_1";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ i2c1_pins: i2c1-g0-pins {
|
||||
+ mux {
|
||||
+ function = "i2c";
|
||||
+ groups = "i2c1_0";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ i2c1_sfp_pins: i2c1-sfp-g0-pins {
|
||||
+ mux {
|
||||
+ function = "i2c";
|
||||
+ groups = "i2c1_sfp";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ i2c2_0_pins: i2c2-g0-pins {
|
||||
+ mux {
|
||||
+ function = "i2c";
|
||||
+ groups = "i2c2_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";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ gbe0_led1_pins: gbe0-led1-pins {
|
||||
+ mux {
|
||||
+ function = "led";
|
||||
+ groups = "gbe0_led1";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ gbe1_led1_pins: gbe1-led1-pins {
|
||||
+ mux {
|
||||
+ function = "led";
|
||||
+ groups = "gbe1_led1";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ gbe2_led1_pins: gbe2-led1-pins {
|
||||
+ mux {
|
||||
+ function = "led";
|
||||
+ groups = "gbe2_led1";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ gbe3_led1_pins: gbe3-led1-pins {
|
||||
+ mux {
|
||||
+ function = "led";
|
||||
+ groups = "gbe3_led1";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ i2p5gbe_led0_pins: 2p5gbe-led0-pins {
|
||||
+ mux {
|
||||
+ function = "led";
|
||||
+ groups = "2p5gbe_led0";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ i2p5gbe_led1_pins: 2p5gbe-led1-pins {
|
||||
+ mux {
|
||||
+ function = "led";
|
||||
+ groups = "2p5gbe_led1";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ 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";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ uart0_pins: uart0-pins {
|
||||
+ mux {
|
||||
+ function = "uart";
|
||||
+ groups = "uart0";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ snfi_pins: snfi-pins {
|
||||
+ mux {
|
||||
+ function = "flash";
|
||||
+ groups = "snfi";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ spi0_pins: spi0-pins {
|
||||
+ mux {
|
||||
+ function = "spi";
|
||||
+ groups = "spi0";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ spi0_flash_pins: spi0-flash-pins {
|
||||
+ mux {
|
||||
+ function = "spi";
|
||||
+ groups = "spi0", "spi0_wp_hold";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ spi1_pins: spi1-pins {
|
||||
+ mux {
|
||||
+ function = "spi";
|
||||
+ groups = "spi1";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ spi2_pins: spi2-pins {
|
||||
+ mux {
|
||||
+ function = "spi";
|
||||
+ groups = "spi2";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ spi2_flash_pins: spi2-flash-pins {
|
||||
+ mux {
|
||||
+ function = "spi";
|
||||
+ groups = "spi2", "spi2_wp_hold";
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&pwm {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&serial0 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&ssusb1 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&tphy {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&watchdog {
|
||||
+ status = "okay";
|
||||
+};
|
||||
@ -1,75 +0,0 @@
|
||||
From 2400b24dfecea9a628f63089bf7eeb9a43b91021 Mon Sep 17 00:00:00 2001
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
Date: Tue, 22 Apr 2025 15:24:30 +0200
|
||||
Subject: [PATCH 28/32] arm64: dts: mediatek: mt7988: Add xsphy for ssusb0/pcie2
|
||||
|
||||
First usb and third pcie controller on mt7988 need a xs-phy to work
|
||||
properly.
|
||||
|
||||
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/20250422132438.15735-8-linux@fw-web.de
|
||||
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
---
|
||||
arch/arm64/boot/dts/mediatek/mt7988a.dtsi | 36 +++++++++++++++++++++++
|
||||
1 file changed, 36 insertions(+)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
@@ -334,6 +334,8 @@
|
||||
<&infracfg CLK_INFRA_133M_USB_HCK>,
|
||||
<&infracfg CLK_INFRA_USB_XHCI>;
|
||||
clock-names = "sys_ck", "ref_ck", "mcu_ck", "dma_ck", "xhci_ck";
|
||||
+ phys = <&xphyu2port0 PHY_TYPE_USB2>,
|
||||
+ <&xphyu3port0 PHY_TYPE_USB3>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
@@ -398,6 +400,9 @@
|
||||
pinctrl-0 = <&pcie2_pins>;
|
||||
status = "disabled";
|
||||
|
||||
+ phys = <&xphyu3port0 PHY_TYPE_PCIE>;
|
||||
+ phy-names = "pcie-phy";
|
||||
+
|
||||
#interrupt-cells = <1>;
|
||||
interrupt-map-mask = <0 0 0 0x7>;
|
||||
interrupt-map = <0 0 0 1 &pcie_intc2 0>,
|
||||
@@ -548,6 +553,37 @@
|
||||
};
|
||||
};
|
||||
|
||||
+
|
||||
+ topmisc: system-controller@11d10084 {
|
||||
+ compatible = "mediatek,mt7988-topmisc",
|
||||
+ "syscon";
|
||||
+ reg = <0 0x11d10084 0 0xff80>;
|
||||
+ };
|
||||
+
|
||||
+ xs-phy@11e10000 {
|
||||
+ compatible = "mediatek,mt7988-xsphy",
|
||||
+ "mediatek,xsphy";
|
||||
+ #address-cells = <2>;
|
||||
+ #size-cells = <2>;
|
||||
+ ranges;
|
||||
+ status = "disabled";
|
||||
+
|
||||
+ xphyu2port0: usb-phy@11e10000 {
|
||||
+ reg = <0 0x11e10000 0 0x400>;
|
||||
+ clocks = <&infracfg CLK_INFRA_USB_UTMI>;
|
||||
+ clock-names = "ref";
|
||||
+ #phy-cells = <1>;
|
||||
+ };
|
||||
+
|
||||
+ xphyu3port0: usb-phy@11e13000 {
|
||||
+ reg = <0 0x11e13400 0 0x500>;
|
||||
+ clocks = <&infracfg CLK_INFRA_USB_PIPE>;
|
||||
+ clock-names = "ref";
|
||||
+ #phy-cells = <1>;
|
||||
+ mediatek,syscon-type = <&topmisc 0x194 0>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
clock-controller@11f40000 {
|
||||
compatible = "mediatek,mt7988-xfi-pll";
|
||||
reg = <0 0x11f40000 0 0x1000>;
|
||||
@ -1,37 +0,0 @@
|
||||
From bb5872c4b6cb0a8687b424b9970b2c3cca2ededd Mon Sep 17 00:00:00 2001
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
Date: Tue, 22 Apr 2025 15:24:31 +0200
|
||||
Subject: [PATCH 29/32] arm64: dts: mediatek: mt7988a-bpi-r4: enable xsphy
|
||||
|
||||
Enable XS-Phy on Bananapi R4 for pcie2.
|
||||
|
||||
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/20250422132438.15735-9-linux@fw-web.de
|
||||
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
---
|
||||
arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi | 4 ++++
|
||||
arch/arm64/boot/dts/mediatek/mt7988a.dtsi | 2 +-
|
||||
2 files changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
|
||||
@@ -397,3 +397,7 @@
|
||||
&watchdog {
|
||||
status = "okay";
|
||||
};
|
||||
+
|
||||
+&xsphy {
|
||||
+ status = "okay";
|
||||
+};
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
@@ -560,7 +560,7 @@
|
||||
reg = <0 0x11d10084 0 0xff80>;
|
||||
};
|
||||
|
||||
- xs-phy@11e10000 {
|
||||
+ xsphy: xs-phy@11e10000 {
|
||||
compatible = "mediatek,mt7988-xsphy",
|
||||
"mediatek,xsphy";
|
||||
#address-cells = <2>;
|
||||
@ -1,27 +0,0 @@
|
||||
From 6cf55d4520eb4ef3ed2cc3726a765a89b0071d8b Mon Sep 17 00:00:00 2001
|
||||
From: Sky Huang <skylake.huang@mediatek.com>
|
||||
Date: Wed, 19 Feb 2025 16:39:09 +0800
|
||||
Subject: [PATCH 30/32] dts: mt7988a: Add built-in ethernet phy firmware node
|
||||
|
||||
Add built-in ethernet phy firmware node in mt7988a.dtsi.
|
||||
|
||||
Signed-off-by: Sky Huang <skylake.huang@mediatek.com>
|
||||
---
|
||||
arch/arm64/boot/dts/mediatek/mt7988a.dtsi | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
@@ -322,6 +322,12 @@
|
||||
nvmem-cell-names = "lvts-calib-data-1";
|
||||
};
|
||||
|
||||
+ phyfw: phy-firmware@f000000 {
|
||||
+ compatible = "mediatek,2p5gphy-fw";
|
||||
+ reg = <0 0x0f100000 0 0x20000>,
|
||||
+ <0 0x0f0f0018 0 0x20>;
|
||||
+ };
|
||||
+
|
||||
usb@11190000 {
|
||||
compatible = "mediatek,mt7988-xhci", "mediatek,mtk-xhci";
|
||||
reg = <0 0x11190000 0 0x2e00>,
|
||||
@ -1,69 +0,0 @@
|
||||
From bf7c2ce439ca811dc1697b4bc19ab57bd8f13be3 Mon Sep 17 00:00:00 2001
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
Date: Fri, 16 May 2025 20:01:35 +0200
|
||||
Subject: [PATCH] arm64: dts: mediatek: mt7988: add spi controllers
|
||||
|
||||
Add SPI controllers for mt7988.
|
||||
|
||||
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
|
||||
Link: https://lore.kernel.org/r/20250516180147.10416-6-linux@fw-web.de
|
||||
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
---
|
||||
arch/arm64/boot/dts/mediatek/mt7988a.dtsi | 45 +++++++++++++++++++++++
|
||||
1 file changed, 45 insertions(+)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
@@ -311,6 +311,51 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
+ spi0: spi@11007000 {
|
||||
+ compatible = "mediatek,mt7988-spi-quad", "mediatek,spi-ipm";
|
||||
+ reg = <0 0x11007000 0 0x100>;
|
||||
+ interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ clocks = <&topckgen CLK_TOP_MPLL_D2>,
|
||||
+ <&topckgen CLK_TOP_SPI_SEL>,
|
||||
+ <&infracfg CLK_INFRA_104M_SPI0>,
|
||||
+ <&infracfg CLK_INFRA_66M_SPI0_HCK>;
|
||||
+ clock-names = "parent-clk", "sel-clk", "spi-clk",
|
||||
+ "hclk";
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+
|
||||
+ spi1: spi@11008000 {
|
||||
+ compatible = "mediatek,mt7988-spi-single", "mediatek,spi-ipm";
|
||||
+ reg = <0 0x11008000 0 0x100>;
|
||||
+ interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ clocks = <&topckgen CLK_TOP_MPLL_D2>,
|
||||
+ <&topckgen CLK_TOP_SPIM_MST_SEL>,
|
||||
+ <&infracfg CLK_INFRA_104M_SPI1>,
|
||||
+ <&infracfg CLK_INFRA_66M_SPI1_HCK>;
|
||||
+ clock-names = "parent-clk", "sel-clk", "spi-clk",
|
||||
+ "hclk";
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+
|
||||
+ spi2: spi@11009000 {
|
||||
+ compatible = "mediatek,mt7988-spi-quad", "mediatek,spi-ipm";
|
||||
+ reg = <0 0x11009000 0 0x100>;
|
||||
+ interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ clocks = <&topckgen CLK_TOP_MPLL_D2>,
|
||||
+ <&topckgen CLK_TOP_SPI_SEL>,
|
||||
+ <&infracfg CLK_INFRA_104M_SPI2_BCK>,
|
||||
+ <&infracfg CLK_INFRA_66M_SPI2_HCK>;
|
||||
+ clock-names = "parent-clk", "sel-clk", "spi-clk",
|
||||
+ "hclk";
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+
|
||||
lvts: lvts@1100a000 {
|
||||
compatible = "mediatek,mt7988-lvts-ap";
|
||||
#thermal-sensor-cells = <1>;
|
||||
@ -1,90 +0,0 @@
|
||||
From b9ebd166b006f77cef4530b4bf4a291a112da4f2 Mon Sep 17 00:00:00 2001
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
Date: Fri, 16 May 2025 20:01:36 +0200
|
||||
Subject: [PATCH] arm64: dts: mediatek: mt7988: move uart0 and spi1 pins to soc
|
||||
dtsi
|
||||
|
||||
In order to use uart0 or spi1 there is only 1 possible pin definition
|
||||
so move them to soc dtsi to reuse them in other boards and avoiding
|
||||
conflict if defined twice.
|
||||
|
||||
Suggested-by: Daniel Golle <daniel@makrotopia.org>
|
||||
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
|
||||
Link: https://lore.kernel.org/r/20250516180147.10416-7-linux@fw-web.de
|
||||
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
---
|
||||
.../dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi | 14 --------------
|
||||
arch/arm64/boot/dts/mediatek/mt7988a.dtsi | 18 ++++++++++++++++++
|
||||
2 files changed, 18 insertions(+), 14 deletions(-)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
|
||||
@@ -328,13 +328,6 @@
|
||||
};
|
||||
};
|
||||
|
||||
- uart0_pins: uart0-pins {
|
||||
- mux {
|
||||
- function = "uart";
|
||||
- groups = "uart0";
|
||||
- };
|
||||
- };
|
||||
-
|
||||
snfi_pins: snfi-pins {
|
||||
mux {
|
||||
function = "flash";
|
||||
@@ -356,13 +349,6 @@
|
||||
};
|
||||
};
|
||||
|
||||
- spi1_pins: spi1-pins {
|
||||
- mux {
|
||||
- function = "spi";
|
||||
- groups = "spi1";
|
||||
- };
|
||||
- };
|
||||
-
|
||||
spi2_pins: spi2-pins {
|
||||
mux {
|
||||
function = "spi";
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
@@ -209,6 +209,20 @@
|
||||
"pcie_wake_n3_0";
|
||||
};
|
||||
};
|
||||
+
|
||||
+ spi1_pins: spi1-pins {
|
||||
+ mux {
|
||||
+ function = "spi";
|
||||
+ groups = "spi1";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ uart0_pins: uart0-pins {
|
||||
+ mux {
|
||||
+ function = "uart";
|
||||
+ groups = "uart0";
|
||||
+ };
|
||||
+ };
|
||||
};
|
||||
|
||||
pwm: pwm@10048000 {
|
||||
@@ -244,6 +258,8 @@
|
||||
clocks = <&topckgen CLK_TOP_UART_SEL>,
|
||||
<&infracfg CLK_INFRA_52M_UART0_CK>;
|
||||
clock-names = "baud", "bus";
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&uart0_pins>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
@@ -338,6 +354,8 @@
|
||||
"hclk";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&spi1_pins>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
@ -1,86 +0,0 @@
|
||||
From 0cbdb6d04689f8c05074e348c8e0a42b229ef9a3 Mon Sep 17 00:00:00 2001
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
Date: Sun, 6 Jul 2025 15:22:03 +0200
|
||||
Subject: [PATCH] arm64: dts: mediatek: mt7988: add cci node
|
||||
|
||||
Add cci devicetree node for cpu frequency scaling.
|
||||
|
||||
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
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-9-linux@fw-web.de
|
||||
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
---
|
||||
arch/arm64/boot/dts/mediatek/mt7988a.dtsi | 33 +++++++++++++++++++++++
|
||||
1 file changed, 33 insertions(+)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
@@ -12,6 +12,35 @@
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
|
||||
+ cci: cci {
|
||||
+ compatible = "mediatek,mt7988-cci", "mediatek,mt8183-cci";
|
||||
+ clocks = <&mcusys CLK_MCU_BUS_DIV_SEL>,
|
||||
+ <&topckgen CLK_TOP_XTAL>;
|
||||
+ clock-names = "cci", "intermediate";
|
||||
+ operating-points-v2 = <&cci_opp>;
|
||||
+ };
|
||||
+
|
||||
+ cci_opp: opp-table-cci {
|
||||
+ compatible = "operating-points-v2";
|
||||
+ opp-shared;
|
||||
+ opp-480000000 {
|
||||
+ opp-hz = /bits/ 64 <480000000>;
|
||||
+ opp-microvolt = <850000>;
|
||||
+ };
|
||||
+ opp-660000000 {
|
||||
+ opp-hz = /bits/ 64 <660000000>;
|
||||
+ opp-microvolt = <850000>;
|
||||
+ };
|
||||
+ opp-900000000 {
|
||||
+ opp-hz = /bits/ 64 <900000000>;
|
||||
+ opp-microvolt = <850000>;
|
||||
+ };
|
||||
+ opp-1080000000 {
|
||||
+ opp-hz = /bits/ 64 <1080000000>;
|
||||
+ opp-microvolt = <900000>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
cpus {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
@@ -25,6 +54,7 @@
|
||||
<&topckgen CLK_TOP_XTAL>;
|
||||
clock-names = "cpu", "intermediate";
|
||||
operating-points-v2 = <&cluster0_opp>;
|
||||
+ mediatek,cci = <&cci>;
|
||||
};
|
||||
|
||||
cpu1: cpu@1 {
|
||||
@@ -36,6 +66,7 @@
|
||||
<&topckgen CLK_TOP_XTAL>;
|
||||
clock-names = "cpu", "intermediate";
|
||||
operating-points-v2 = <&cluster0_opp>;
|
||||
+ mediatek,cci = <&cci>;
|
||||
};
|
||||
|
||||
cpu2: cpu@2 {
|
||||
@@ -47,6 +78,7 @@
|
||||
<&topckgen CLK_TOP_XTAL>;
|
||||
clock-names = "cpu", "intermediate";
|
||||
operating-points-v2 = <&cluster0_opp>;
|
||||
+ mediatek,cci = <&cci>;
|
||||
};
|
||||
|
||||
cpu3: cpu@3 {
|
||||
@@ -58,6 +90,7 @@
|
||||
<&topckgen CLK_TOP_XTAL>;
|
||||
clock-names = "cpu", "intermediate";
|
||||
operating-points-v2 = <&cluster0_opp>;
|
||||
+ mediatek,cci = <&cci>;
|
||||
};
|
||||
|
||||
cluster0_opp: opp-table-0 {
|
||||
@ -1,42 +0,0 @@
|
||||
From e4950b016c727feb0c39ad12cfcb6182c9ef3814 Mon Sep 17 00:00:00 2001
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
Date: Fri, 16 May 2025 20:01:38 +0200
|
||||
Subject: [PATCH] arm64: dts: mediatek: mt7988: add phy calibration efuse
|
||||
subnodes
|
||||
|
||||
MT7988 contains buildin mt753x switch which needs calibration data from
|
||||
efuse.
|
||||
|
||||
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
|
||||
Link: https://lore.kernel.org/r/20250516180147.10416-9-linux@fw-web.de
|
||||
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
---
|
||||
arch/arm64/boot/dts/mediatek/mt7988a.dtsi | 16 ++++++++++++++++
|
||||
1 file changed, 16 insertions(+)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
@@ -702,6 +702,22 @@
|
||||
lvts_calibration: calib@918 {
|
||||
reg = <0x918 0x28>;
|
||||
};
|
||||
+
|
||||
+ phy_calibration_p0: calib@940 {
|
||||
+ reg = <0x940 0x10>;
|
||||
+ };
|
||||
+
|
||||
+ phy_calibration_p1: calib@954 {
|
||||
+ reg = <0x954 0x10>;
|
||||
+ };
|
||||
+
|
||||
+ phy_calibration_p2: calib@968 {
|
||||
+ reg = <0x968 0x10>;
|
||||
+ };
|
||||
+
|
||||
+ phy_calibration_p3: calib@97c {
|
||||
+ reg = <0x97c 0x10>;
|
||||
+ };
|
||||
};
|
||||
|
||||
clock-controller@15000000 {
|
||||
@ -1,213 +0,0 @@
|
||||
From patchwork Sun May 11 14:19:24 2025
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
MIME-Version: 1.0
|
||||
Content-Transfer-Encoding: 7bit
|
||||
X-Patchwork-Submitter: Frank Wunderlich <linux@fw-web.de>
|
||||
X-Patchwork-Id: 14084161
|
||||
From: Frank Wunderlich <linux@fw-web.de>
|
||||
To: Andrew Lunn <andrew@lunn.ch>,
|
||||
Vladimir Oltean <olteanv@gmail.com>,
|
||||
"David S. Miller" <davem@davemloft.net>,
|
||||
Eric Dumazet <edumazet@google.com>,
|
||||
Jakub Kicinski <kuba@kernel.org>,
|
||||
Paolo Abeni <pabeni@redhat.com>,
|
||||
Rob Herring <robh@kernel.org>,
|
||||
Krzysztof Kozlowski <krzk+dt@kernel.org>,
|
||||
Conor Dooley <conor+dt@kernel.org>,
|
||||
Matthias Brugger <matthias.bgg@gmail.com>,
|
||||
AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
Subject: [PATCH v1 08/14] arm64: dts: mediatek: mt7988: add basic
|
||||
ethernet-nodes
|
||||
Date: Sun, 11 May 2025 16:19:24 +0200
|
||||
Message-ID: <20250511141942.10284-9-linux@fw-web.de>
|
||||
X-Mailer: git-send-email 2.43.0
|
||||
In-Reply-To: <20250511141942.10284-1-linux@fw-web.de>
|
||||
References: <20250511141942.10284-1-linux@fw-web.de>
|
||||
MIME-Version: 1.0
|
||||
X-Mail-ID: 5c8e73b6-e2d6-4898-90c0-375604707c20
|
||||
X-BeenThere: linux-mediatek@lists.infradead.org
|
||||
X-Mailman-Version: 2.1.34
|
||||
Precedence: list
|
||||
List-Id: <linux-mediatek.lists.infradead.org>
|
||||
List-Unsubscribe: <http://lists.infradead.org/mailman/options/linux-mediatek>,
|
||||
<mailto:linux-mediatek-request@lists.infradead.org?subject=unsubscribe>
|
||||
List-Archive: <http://lists.infradead.org/pipermail/linux-mediatek/>
|
||||
List-Post: <mailto:linux-mediatek@lists.infradead.org>
|
||||
List-Help: <mailto:linux-mediatek-request@lists.infradead.org?subject=help>
|
||||
List-Subscribe: <http://lists.infradead.org/mailman/listinfo/linux-mediatek>,
|
||||
<mailto:linux-mediatek-request@lists.infradead.org?subject=subscribe>
|
||||
Cc: devicetree@vger.kernel.org, Landen Chao <Landen.Chao@mediatek.com>,
|
||||
=?utf-8?b?QXLEsW7DpyDDnE5BTA==?= <arinc.unal@arinc9.com>,
|
||||
netdev@vger.kernel.org, Sean Wang <sean.wang@mediatek.com>,
|
||||
Daniel Golle <daniel@makrotopia.org>, linux-kernel@vger.kernel.org,
|
||||
DENG Qingfang <dqfext@gmail.com>, linux-mediatek@lists.infradead.org,
|
||||
Lorenzo Bianconi <lorenzo@kernel.org>, linux-arm-kernel@lists.infradead.org,
|
||||
Felix Fietkau <nbd@nbd.name>
|
||||
Sender: "Linux-mediatek" <linux-mediatek-bounces@lists.infradead.org>
|
||||
Errors-To:
|
||||
linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org
|
||||
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
|
||||
Add basic ethernet related nodes.
|
||||
|
||||
Mac1+2 needs pcs (sgmii+usxgmii) to work correctly which will be linked
|
||||
later when driver is merged.
|
||||
|
||||
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
|
||||
---
|
||||
arch/arm64/boot/dts/mediatek/mt7988a.dtsi | 124 +++++++++++++++++++++-
|
||||
1 file changed, 121 insertions(+), 3 deletions(-)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
@@ -686,7 +686,28 @@
|
||||
};
|
||||
};
|
||||
|
||||
- clock-controller@11f40000 {
|
||||
+ xfi_tphy0: phy@11f20000 {
|
||||
+ compatible = "mediatek,mt7988-xfi-tphy";
|
||||
+ reg = <0 0x11f20000 0 0x10000>;
|
||||
+ resets = <&watchdog 14>;
|
||||
+ clocks = <&xfi_pll CLK_XFIPLL_PLL_EN>,
|
||||
+ <&topckgen CLK_TOP_XFI_PHY_0_XTAL_SEL>;
|
||||
+ clock-names = "xfipll", "topxtal";
|
||||
+ mediatek,usxgmii-performance-errata;
|
||||
+ #phy-cells = <0>;
|
||||
+ };
|
||||
+
|
||||
+ xfi_tphy1: phy@11f30000 {
|
||||
+ compatible = "mediatek,mt7988-xfi-tphy";
|
||||
+ reg = <0 0x11f30000 0 0x10000>;
|
||||
+ resets = <&watchdog 15>;
|
||||
+ clocks = <&xfi_pll CLK_XFIPLL_PLL_EN>,
|
||||
+ <&topckgen CLK_TOP_XFI_PHY_1_XTAL_SEL>;
|
||||
+ clock-names = "xfipll", "topxtal";
|
||||
+ #phy-cells = <0>;
|
||||
+ };
|
||||
+
|
||||
+ xfi_pll: clock-controller@11f40000 {
|
||||
compatible = "mediatek,mt7988-xfi-pll";
|
||||
reg = <0 0x11f40000 0 0x1000>;
|
||||
resets = <&watchdog 16>;
|
||||
@@ -720,19 +741,116 @@
|
||||
};
|
||||
};
|
||||
|
||||
- clock-controller@15000000 {
|
||||
+ ethsys: clock-controller@15000000 {
|
||||
compatible = "mediatek,mt7988-ethsys", "syscon";
|
||||
reg = <0 0x15000000 0 0x1000>;
|
||||
#clock-cells = <1>;
|
||||
#reset-cells = <1>;
|
||||
};
|
||||
|
||||
- clock-controller@15031000 {
|
||||
+ ethwarp: clock-controller@15031000 {
|
||||
compatible = "mediatek,mt7988-ethwarp";
|
||||
reg = <0 0x15031000 0 0x1000>;
|
||||
#clock-cells = <1>;
|
||||
#reset-cells = <1>;
|
||||
};
|
||||
+
|
||||
+ eth: ethernet@15100000 {
|
||||
+ compatible = "mediatek,mt7988-eth";
|
||||
+ reg = <0 0x15100000 0 0x80000>,
|
||||
+ <0 0x15400000 0 0x200000>;
|
||||
+ interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>,
|
||||
+ <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>,
|
||||
+ <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>,
|
||||
+ <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ clocks = <ðsys CLK_ETHDMA_CRYPT0_EN>,
|
||||
+ <ðsys CLK_ETHDMA_FE_EN>,
|
||||
+ <ðsys CLK_ETHDMA_GP2_EN>,
|
||||
+ <ðsys CLK_ETHDMA_GP1_EN>,
|
||||
+ <ðsys CLK_ETHDMA_GP3_EN>,
|
||||
+ <ðwarp CLK_ETHWARP_WOCPU2_EN>,
|
||||
+ <ðwarp CLK_ETHWARP_WOCPU1_EN>,
|
||||
+ <ðwarp CLK_ETHWARP_WOCPU0_EN>,
|
||||
+ <ðsys CLK_ETHDMA_ESW_EN>,
|
||||
+ <&topckgen CLK_TOP_ETH_GMII_SEL>,
|
||||
+ <&topckgen CLK_TOP_ETH_REFCK_50M_SEL>,
|
||||
+ <&topckgen CLK_TOP_ETH_SYS_200M_SEL>,
|
||||
+ <&topckgen CLK_TOP_ETH_SYS_SEL>,
|
||||
+ <&topckgen CLK_TOP_ETH_XGMII_SEL>,
|
||||
+ <&topckgen CLK_TOP_ETH_MII_SEL>,
|
||||
+ <&topckgen CLK_TOP_NETSYS_SEL>,
|
||||
+ <&topckgen CLK_TOP_NETSYS_500M_SEL>,
|
||||
+ <&topckgen CLK_TOP_NETSYS_PAO_2X_SEL>,
|
||||
+ <&topckgen CLK_TOP_NETSYS_SYNC_250M_SEL>,
|
||||
+ <&topckgen CLK_TOP_NETSYS_PPEFB_250M_SEL>,
|
||||
+ <&topckgen CLK_TOP_NETSYS_WARP_SEL>,
|
||||
+ <ðsys CLK_ETHDMA_XGP1_EN>,
|
||||
+ <ðsys CLK_ETHDMA_XGP2_EN>,
|
||||
+ <ðsys CLK_ETHDMA_XGP3_EN>;
|
||||
+ clock-names = "crypto", "fe", "gp2", "gp1",
|
||||
+ "gp3",
|
||||
+ "ethwarp_wocpu2", "ethwarp_wocpu1",
|
||||
+ "ethwarp_wocpu0", "esw", "top_eth_gmii_sel",
|
||||
+ "top_eth_refck_50m_sel", "top_eth_sys_200m_sel",
|
||||
+ "top_eth_sys_sel", "top_eth_xgmii_sel",
|
||||
+ "top_eth_mii_sel", "top_netsys_sel",
|
||||
+ "top_netsys_500m_sel", "top_netsys_pao_2x_sel",
|
||||
+ "top_netsys_sync_250m_sel",
|
||||
+ "top_netsys_ppefb_250m_sel",
|
||||
+ "top_netsys_warp_sel","xgp1", "xgp2", "xgp3";
|
||||
+ assigned-clocks = <&topckgen CLK_TOP_NETSYS_2X_SEL>,
|
||||
+ <&topckgen CLK_TOP_NETSYS_GSW_SEL>,
|
||||
+ <&topckgen CLK_TOP_USXGMII_SBUS_0_SEL>,
|
||||
+ <&topckgen CLK_TOP_USXGMII_SBUS_1_SEL>,
|
||||
+ <&topckgen CLK_TOP_SGM_0_SEL>,
|
||||
+ <&topckgen CLK_TOP_SGM_1_SEL>;
|
||||
+ assigned-clock-parents = <&apmixedsys CLK_APMIXED_NET2PLL>,
|
||||
+ <&topckgen CLK_TOP_NET1PLL_D4>,
|
||||
+ <&topckgen CLK_TOP_NET1PLL_D8_D4>,
|
||||
+ <&topckgen CLK_TOP_NET1PLL_D8_D4>,
|
||||
+ <&apmixedsys CLK_APMIXED_SGMPLL>,
|
||||
+ <&apmixedsys CLK_APMIXED_SGMPLL>;
|
||||
+ mediatek,ethsys = <ðsys>;
|
||||
+ mediatek,infracfg = <&topmisc>;
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+
|
||||
+ gmac0: mac@0 {
|
||||
+ compatible = "mediatek,eth-mac";
|
||||
+ reg = <0>;
|
||||
+ phy-mode = "internal";
|
||||
+
|
||||
+ fixed-link {
|
||||
+ speed = <10000>;
|
||||
+ full-duplex;
|
||||
+ pause;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ gmac1: mac@1 {
|
||||
+ compatible = "mediatek,eth-mac";
|
||||
+ reg = <1>;
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+
|
||||
+ gmac2: mac@2 {
|
||||
+ compatible = "mediatek,eth-mac";
|
||||
+ reg = <2>;
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+
|
||||
+ mdio_bus: mdio-bus {
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+
|
||||
+ /* internal 2.5G PHY */
|
||||
+ int_2p5g_phy: ethernet-phy@f {
|
||||
+ reg = <15>;
|
||||
+ compatible = "ethernet-phy-ieee802.3-c45";
|
||||
+ phy-mode = "internal";
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
};
|
||||
|
||||
thermal-zones {
|
||||
@ -1,228 +0,0 @@
|
||||
From patchwork Sun May 11 14:19:25 2025
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
MIME-Version: 1.0
|
||||
Content-Transfer-Encoding: 7bit
|
||||
X-Patchwork-Submitter: Frank Wunderlich <linux@fw-web.de>
|
||||
X-Patchwork-Id: 14084123
|
||||
From: Frank Wunderlich <linux@fw-web.de>
|
||||
To: Andrew Lunn <andrew@lunn.ch>,
|
||||
Vladimir Oltean <olteanv@gmail.com>,
|
||||
"David S. Miller" <davem@davemloft.net>,
|
||||
Eric Dumazet <edumazet@google.com>,
|
||||
Jakub Kicinski <kuba@kernel.org>,
|
||||
Paolo Abeni <pabeni@redhat.com>,
|
||||
Rob Herring <robh@kernel.org>,
|
||||
Krzysztof Kozlowski <krzk+dt@kernel.org>,
|
||||
Conor Dooley <conor+dt@kernel.org>,
|
||||
Matthias Brugger <matthias.bgg@gmail.com>,
|
||||
AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
Subject: [PATCH v1 09/14] arm64: dts: mediatek: mt7988: add switch node
|
||||
Date: Sun, 11 May 2025 16:19:25 +0200
|
||||
Message-ID: <20250511141942.10284-10-linux@fw-web.de>
|
||||
X-Mailer: git-send-email 2.43.0
|
||||
In-Reply-To: <20250511141942.10284-1-linux@fw-web.de>
|
||||
References: <20250511141942.10284-1-linux@fw-web.de>
|
||||
MIME-Version: 1.0
|
||||
X-Mail-ID: a24ecea1-b7fd-4cb4-a93d-b29036e2e6ac
|
||||
X-BeenThere: linux-mediatek@lists.infradead.org
|
||||
X-Mailman-Version: 2.1.34
|
||||
Precedence: list
|
||||
List-Id: <linux-mediatek.lists.infradead.org>
|
||||
List-Unsubscribe: <http://lists.infradead.org/mailman/options/linux-mediatek>,
|
||||
<mailto:linux-mediatek-request@lists.infradead.org?subject=unsubscribe>
|
||||
List-Archive: <http://lists.infradead.org/pipermail/linux-mediatek/>
|
||||
List-Post: <mailto:linux-mediatek@lists.infradead.org>
|
||||
List-Help: <mailto:linux-mediatek-request@lists.infradead.org?subject=help>
|
||||
List-Subscribe: <http://lists.infradead.org/mailman/listinfo/linux-mediatek>,
|
||||
<mailto:linux-mediatek-request@lists.infradead.org?subject=subscribe>
|
||||
Cc: devicetree@vger.kernel.org, Landen Chao <Landen.Chao@mediatek.com>,
|
||||
=?utf-8?b?QXLEsW7DpyDDnE5BTA==?= <arinc.unal@arinc9.com>,
|
||||
netdev@vger.kernel.org, Sean Wang <sean.wang@mediatek.com>,
|
||||
Daniel Golle <daniel@makrotopia.org>, linux-kernel@vger.kernel.org,
|
||||
DENG Qingfang <dqfext@gmail.com>, linux-mediatek@lists.infradead.org,
|
||||
Lorenzo Bianconi <lorenzo@kernel.org>, linux-arm-kernel@lists.infradead.org,
|
||||
Felix Fietkau <nbd@nbd.name>
|
||||
Sender: "Linux-mediatek" <linux-mediatek-bounces@lists.infradead.org>
|
||||
Errors-To:
|
||||
linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org
|
||||
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
|
||||
Add mt7988 builtin mt753x switch nodes.
|
||||
|
||||
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
|
||||
---
|
||||
arch/arm64/boot/dts/mediatek/mt7988a.dtsi | 166 ++++++++++++++++++++++
|
||||
1 file changed, 166 insertions(+)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
@@ -5,6 +5,7 @@
|
||||
#include <dt-bindings/phy/phy.h>
|
||||
#include <dt-bindings/pinctrl/mt65xx.h>
|
||||
#include <dt-bindings/reset/mediatek,mt7988-resets.h>
|
||||
+#include <dt-bindings/leds/common.h>
|
||||
|
||||
/ {
|
||||
compatible = "mediatek,mt7988a";
|
||||
@@ -748,6 +749,159 @@
|
||||
#reset-cells = <1>;
|
||||
};
|
||||
|
||||
+ switch: switch@15020000 {
|
||||
+ compatible = "mediatek,mt7988-switch";
|
||||
+ reg = <0 0x15020000 0 0x8000>;
|
||||
+ interrupt-controller;
|
||||
+ #interrupt-cells = <1>;
|
||||
+ interrupt-parent = <&gic>;
|
||||
+ interrupts = <GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ resets = <ðwarp MT7988_ETHWARP_RST_SWITCH>;
|
||||
+
|
||||
+ ports {
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+
|
||||
+ gsw_port0: port@0 {
|
||||
+ reg = <0>;
|
||||
+ phy-mode = "internal";
|
||||
+ phy-handle = <&gsw_phy0>;
|
||||
+ };
|
||||
+
|
||||
+ gsw_port1: port@1 {
|
||||
+ reg = <1>;
|
||||
+ phy-mode = "internal";
|
||||
+ phy-handle = <&gsw_phy1>;
|
||||
+ };
|
||||
+
|
||||
+ gsw_port2: port@2 {
|
||||
+ reg = <2>;
|
||||
+ phy-mode = "internal";
|
||||
+ phy-handle = <&gsw_phy2>;
|
||||
+ };
|
||||
+
|
||||
+ gsw_port3: port@3 {
|
||||
+ reg = <3>;
|
||||
+ phy-mode = "internal";
|
||||
+ phy-handle = <&gsw_phy3>;
|
||||
+ };
|
||||
+
|
||||
+ port@6 {
|
||||
+ reg = <6>;
|
||||
+ ethernet = <&gmac0>;
|
||||
+ phy-mode = "internal";
|
||||
+
|
||||
+ fixed-link {
|
||||
+ speed = <10000>;
|
||||
+ full-duplex;
|
||||
+ pause;
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ mdio {
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+ mediatek,pio = <&pio>;
|
||||
+
|
||||
+ gsw_phy0: ethernet-phy@0 {
|
||||
+ compatible = "ethernet-phy-ieee802.3-c22";
|
||||
+ reg = <0>;
|
||||
+ interrupts = <0>;
|
||||
+ phy-mode = "internal";
|
||||
+ nvmem-cells = <&phy_calibration_p0>;
|
||||
+ nvmem-cell-names = "phy-cal-data";
|
||||
+
|
||||
+ leds {
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+
|
||||
+ gsw_phy0_led0: led@0 {
|
||||
+ reg = <0>;
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+
|
||||
+ gsw_phy0_led1: led@1 {
|
||||
+ reg = <1>;
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ gsw_phy1: ethernet-phy@1 {
|
||||
+ compatible = "ethernet-phy-ieee802.3-c22";
|
||||
+ reg = <1>;
|
||||
+ interrupts = <1>;
|
||||
+ phy-mode = "internal";
|
||||
+ nvmem-cells = <&phy_calibration_p1>;
|
||||
+ nvmem-cell-names = "phy-cal-data";
|
||||
+
|
||||
+ leds {
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+
|
||||
+ gsw_phy1_led0: led@0 {
|
||||
+ reg = <0>;
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+
|
||||
+ gsw_phy1_led1: led@1 {
|
||||
+ reg = <1>;
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ gsw_phy2: ethernet-phy@2 {
|
||||
+ compatible = "ethernet-phy-ieee802.3-c22";
|
||||
+ reg = <2>;
|
||||
+ interrupts = <2>;
|
||||
+ phy-mode = "internal";
|
||||
+ nvmem-cells = <&phy_calibration_p2>;
|
||||
+ nvmem-cell-names = "phy-cal-data";
|
||||
+
|
||||
+ leds {
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+
|
||||
+ gsw_phy2_led0: led@0 {
|
||||
+ reg = <0>;
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+
|
||||
+ gsw_phy2_led1: led@1 {
|
||||
+ reg = <1>;
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ gsw_phy3: ethernet-phy@3 {
|
||||
+ compatible = "ethernet-phy-ieee802.3-c22";
|
||||
+ reg = <3>;
|
||||
+ interrupts = <3>;
|
||||
+ phy-mode = "internal";
|
||||
+ nvmem-cells = <&phy_calibration_p3>;
|
||||
+ nvmem-cell-names = "phy-cal-data";
|
||||
+
|
||||
+ leds {
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+
|
||||
+ gsw_phy3_led0: led@0 {
|
||||
+ reg = <0>;
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+
|
||||
+ gsw_phy3_led1: led@1 {
|
||||
+ reg = <1>;
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
ethwarp: clock-controller@15031000 {
|
||||
compatible = "mediatek,mt7988-ethwarp";
|
||||
reg = <0 0x15031000 0 0x1000>;
|
||||
@ -1,59 +0,0 @@
|
||||
From 0f63e96e2ab422d1d35def1da75d3df299bf503e Mon Sep 17 00:00:00 2001
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
Date: Fri, 16 May 2025 20:01:41 +0200
|
||||
Subject: [PATCH] arm64: dts: mediatek: mt7988a-bpi-r4: Add fan and coolingmaps
|
||||
|
||||
Add Fan and cooling maps for Bananapi-R4 board.
|
||||
|
||||
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
|
||||
Link: https://lore.kernel.org/r/20250516180147.10416-12-linux@fw-web.de
|
||||
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
---
|
||||
.../dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi | 29 +++++++++++++++++++
|
||||
1 file changed, 29 insertions(+)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
|
||||
@@ -12,6 +12,15 @@
|
||||
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";
|
||||
+ };
|
||||
+
|
||||
reg_1p8v: regulator-1p8v {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "fixed-1.8V";
|
||||
@@ -73,6 +82,26 @@
|
||||
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 {
|
||||
@ -1,55 +0,0 @@
|
||||
From 6b7642e9d095d33d8034b8b396a2de9e5ecb25a7 Mon Sep 17 00:00:00 2001
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
Date: Fri, 16 May 2025 20:01:42 +0200
|
||||
Subject: [PATCH] arm64: dts: mediatek: mt7988a-bpi-r4: configure spi-nodes
|
||||
|
||||
Configure and enable SPI nodes on Bananapi R4 board.
|
||||
|
||||
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
|
||||
Link: https://lore.kernel.org/r/20250516180147.10416-13-linux@fw-web.de
|
||||
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
---
|
||||
.../dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi | 32 +++++++++++++++++++
|
||||
1 file changed, 32 insertions(+)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
|
||||
@@ -401,6 +401,38 @@
|
||||
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";
|
||||
};
|
||||
@ -1,28 +0,0 @@
|
||||
From b5a4ad957114b59a74b3e3f598ae0785dd86cd32 Mon Sep 17 00:00:00 2001
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
Date: Sun, 6 Jul 2025 15:22:06 +0200
|
||||
Subject: [PATCH] arm64: dts: mediatek: mt7988a-bpi-r4: add proc-supply for cci
|
||||
|
||||
CCI requires proc-supply. Add it on board level.
|
||||
|
||||
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-12-linux@fw-web.de
|
||||
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
---
|
||||
arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
|
||||
@@ -40,6 +40,10 @@
|
||||
};
|
||||
};
|
||||
|
||||
+&cci {
|
||||
+ proc-supply = <&rt5190_buck3>;
|
||||
+};
|
||||
+
|
||||
&cpu0 {
|
||||
proc-supply = <&rt5190_buck3>;
|
||||
};
|
||||
@ -1,138 +0,0 @@
|
||||
From patchwork Sun May 11 14:26:53 2025
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
MIME-Version: 1.0
|
||||
Content-Transfer-Encoding: 7bit
|
||||
X-Patchwork-Submitter: Frank Wunderlich <frank-w@public-files.de>
|
||||
X-Patchwork-Id: 14084128
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
To: Andrew Lunn <andrew@lunn.ch>,
|
||||
Vladimir Oltean <olteanv@gmail.com>,
|
||||
"David S. Miller" <davem@davemloft.net>,
|
||||
Eric Dumazet <edumazet@google.com>,
|
||||
Jakub Kicinski <kuba@kernel.org>,
|
||||
Paolo Abeni <pabeni@redhat.com>,
|
||||
Rob Herring <robh@kernel.org>,
|
||||
Krzysztof Kozlowski <krzk+dt@kernel.org>,
|
||||
Conor Dooley <conor+dt@kernel.org>,
|
||||
Matthias Brugger <matthias.bgg@gmail.com>,
|
||||
AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
Subject: [PATCH v1 13/14] arm64: dts: mediatek: mt7988a-bpi-r4: add sfp cages
|
||||
and link to gmac
|
||||
Date: Sun, 11 May 2025 16:26:53 +0200
|
||||
Message-ID: <20250511142655.11007-4-frank-w@public-files.de>
|
||||
X-Mailer: git-send-email 2.43.0
|
||||
In-Reply-To: <20250511142655.11007-1-frank-w@public-files.de>
|
||||
References: <20250511142655.11007-1-frank-w@public-files.de>
|
||||
MIME-Version: 1.0
|
||||
X-BeenThere: linux-mediatek@lists.infradead.org
|
||||
X-Mailman-Version: 2.1.34
|
||||
Precedence: list
|
||||
List-Id: <linux-mediatek.lists.infradead.org>
|
||||
List-Unsubscribe: <http://lists.infradead.org/mailman/options/linux-mediatek>,
|
||||
<mailto:linux-mediatek-request@lists.infradead.org?subject=unsubscribe>
|
||||
List-Archive: <http://lists.infradead.org/pipermail/linux-mediatek/>
|
||||
List-Post: <mailto:linux-mediatek@lists.infradead.org>
|
||||
List-Help: <mailto:linux-mediatek-request@lists.infradead.org?subject=help>
|
||||
List-Subscribe: <http://lists.infradead.org/mailman/listinfo/linux-mediatek>,
|
||||
<mailto:linux-mediatek-request@lists.infradead.org?subject=subscribe>
|
||||
Cc: devicetree@vger.kernel.org, Landen Chao <Landen.Chao@mediatek.com>,
|
||||
=?utf-8?b?QXLEsW7DpyDDnE5BTA==?= <arinc.unal@arinc9.com>,
|
||||
netdev@vger.kernel.org, Sean Wang <sean.wang@mediatek.com>,
|
||||
Daniel Golle <daniel@makrotopia.org>, linux-kernel@vger.kernel.org,
|
||||
DENG Qingfang <dqfext@gmail.com>, linux-mediatek@lists.infradead.org,
|
||||
Lorenzo Bianconi <lorenzo@kernel.org>, linux-arm-kernel@lists.infradead.org,
|
||||
Felix Fietkau <nbd@nbd.name>
|
||||
Sender: "Linux-mediatek" <linux-mediatek-bounces@lists.infradead.org>
|
||||
Errors-To:
|
||||
linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org
|
||||
|
||||
Add SFP cages to Bananapi-R4 board. The 2.5g phy variant only contains the
|
||||
wan-SFP, so add this to common dtsi and the lan-sfp only to the dual-SFP
|
||||
variant.
|
||||
|
||||
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
|
||||
---
|
||||
.../mediatek/mt7988a-bananapi-bpi-r4-2g5.dts | 11 +++++++++++
|
||||
.../dts/mediatek/mt7988a-bananapi-bpi-r4.dts | 18 ++++++++++++++++++
|
||||
.../dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi | 18 ++++++++++++++++++
|
||||
3 files changed, 47 insertions(+)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-2g5.dts
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-2g5.dts
|
||||
@@ -9,3 +9,14 @@
|
||||
model = "Banana Pi BPI-R4 (1x SFP+, 1x 2.5GbE)";
|
||||
chassis-type = "embedded";
|
||||
};
|
||||
+
|
||||
+&gmac1 {
|
||||
+ phy-mode = "internal";
|
||||
+ phy-connection-type = "internal";
|
||||
+ phy = <&int_2p5g_phy>;
|
||||
+};
|
||||
+
|
||||
+&int_2p5g_phy {
|
||||
+ pinctrl-names = "i2p5gbe-led";
|
||||
+ pinctrl-0 = <&i2p5gbe_led0_pins>;
|
||||
+};
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts
|
||||
@@ -8,6 +8,24 @@
|
||||
compatible = "bananapi,bpi-r4", "mediatek,mt7988a";
|
||||
model = "Banana Pi BPI-R4 (2x SFP+)";
|
||||
chassis-type = "embedded";
|
||||
+
|
||||
+ /* SFP2 cage (LAN) */
|
||||
+ sfp2: sfp2 {
|
||||
+ compatible = "sff,sfp";
|
||||
+ i2c-bus = <&i2c_sfp2>;
|
||||
+ los-gpios = <&pio 2 GPIO_ACTIVE_HIGH>;
|
||||
+ mod-def0-gpios = <&pio 83 GPIO_ACTIVE_LOW>;
|
||||
+ tx-disable-gpios = <&pio 0 GPIO_ACTIVE_HIGH>;
|
||||
+ tx-fault-gpios = <&pio 1 GPIO_ACTIVE_HIGH>;
|
||||
+ rate-select0-gpios = <&pio 3 GPIO_ACTIVE_LOW>;
|
||||
+ maximum-power-milliwatt = <3000>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&gmac1 {
|
||||
+ sfp = <&sfp2>;
|
||||
+ managed = "in-band-status";
|
||||
+ phy-mode = "usxgmii";
|
||||
};
|
||||
|
||||
&pca9545 {
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
|
||||
@@ -38,6 +38,18 @@
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
+
|
||||
+ /* SFP1 cage (WAN) */
|
||||
+ sfp1: sfp1 {
|
||||
+ compatible = "sff,sfp";
|
||||
+ i2c-bus = <&i2c_sfp1>;
|
||||
+ los-gpios = <&pio 54 GPIO_ACTIVE_HIGH>;
|
||||
+ mod-def0-gpios = <&pio 82 GPIO_ACTIVE_LOW>;
|
||||
+ tx-disable-gpios = <&pio 70 GPIO_ACTIVE_HIGH>;
|
||||
+ tx-fault-gpios = <&pio 69 GPIO_ACTIVE_HIGH>;
|
||||
+ rate-select0-gpios = <&pio 21 GPIO_ACTIVE_LOW>;
|
||||
+ maximum-power-milliwatt = <3000>;
|
||||
+ };
|
||||
};
|
||||
|
||||
&cci {
|
||||
@@ -108,6 +120,12 @@
|
||||
};
|
||||
};
|
||||
|
||||
+&gmac2 {
|
||||
+ sfp = <&sfp1>;
|
||||
+ managed = "in-band-status";
|
||||
+ phy-mode = "usxgmii";
|
||||
+};
|
||||
+
|
||||
&i2c0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c0_pins>;
|
||||
@ -1,113 +0,0 @@
|
||||
From patchwork Sun May 11 14:26:54 2025
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
MIME-Version: 1.0
|
||||
Content-Transfer-Encoding: 7bit
|
||||
X-Patchwork-Submitter: Frank Wunderlich <frank-w@public-files.de>
|
||||
X-Patchwork-Id: 14084132
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
To: Andrew Lunn <andrew@lunn.ch>,
|
||||
Vladimir Oltean <olteanv@gmail.com>,
|
||||
"David S. Miller" <davem@davemloft.net>,
|
||||
Eric Dumazet <edumazet@google.com>,
|
||||
Jakub Kicinski <kuba@kernel.org>,
|
||||
Paolo Abeni <pabeni@redhat.com>,
|
||||
Rob Herring <robh@kernel.org>,
|
||||
Krzysztof Kozlowski <krzk+dt@kernel.org>,
|
||||
Conor Dooley <conor+dt@kernel.org>,
|
||||
Matthias Brugger <matthias.bgg@gmail.com>,
|
||||
AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
Subject: [PATCH v1 14/14] arm64: dts: mediatek: mt7988a-bpi-r4: configure
|
||||
switch phys and leds
|
||||
Date: Sun, 11 May 2025 16:26:54 +0200
|
||||
Message-ID: <20250511142655.11007-5-frank-w@public-files.de>
|
||||
X-Mailer: git-send-email 2.43.0
|
||||
In-Reply-To: <20250511142655.11007-1-frank-w@public-files.de>
|
||||
References: <20250511142655.11007-1-frank-w@public-files.de>
|
||||
MIME-Version: 1.0
|
||||
X-BeenThere: linux-mediatek@lists.infradead.org
|
||||
X-Mailman-Version: 2.1.34
|
||||
Precedence: list
|
||||
List-Id: <linux-mediatek.lists.infradead.org>
|
||||
List-Unsubscribe: <http://lists.infradead.org/mailman/options/linux-mediatek>,
|
||||
<mailto:linux-mediatek-request@lists.infradead.org?subject=unsubscribe>
|
||||
List-Archive: <http://lists.infradead.org/pipermail/linux-mediatek/>
|
||||
List-Post: <mailto:linux-mediatek@lists.infradead.org>
|
||||
List-Help: <mailto:linux-mediatek-request@lists.infradead.org?subject=help>
|
||||
List-Subscribe: <http://lists.infradead.org/mailman/listinfo/linux-mediatek>,
|
||||
<mailto:linux-mediatek-request@lists.infradead.org?subject=subscribe>
|
||||
Cc: devicetree@vger.kernel.org, Landen Chao <Landen.Chao@mediatek.com>,
|
||||
=?utf-8?b?QXLEsW7DpyDDnE5BTA==?= <arinc.unal@arinc9.com>,
|
||||
netdev@vger.kernel.org, Sean Wang <sean.wang@mediatek.com>,
|
||||
Daniel Golle <daniel@makrotopia.org>, linux-kernel@vger.kernel.org,
|
||||
DENG Qingfang <dqfext@gmail.com>, linux-mediatek@lists.infradead.org,
|
||||
Lorenzo Bianconi <lorenzo@kernel.org>, linux-arm-kernel@lists.infradead.org,
|
||||
Felix Fietkau <nbd@nbd.name>
|
||||
Sender: "Linux-mediatek" <linux-mediatek-bounces@lists.infradead.org>
|
||||
Errors-To:
|
||||
linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org
|
||||
|
||||
Assign pinctrl to switch phys and leds.
|
||||
|
||||
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
|
||||
---
|
||||
.../dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi | 40 +++++++++++++++++++
|
||||
1 file changed, 40 insertions(+)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
|
||||
@@ -126,6 +126,54 @@
|
||||
phy-mode = "usxgmii";
|
||||
};
|
||||
|
||||
+&gsw_phy0 {
|
||||
+ pinctrl-names = "gbe-led";
|
||||
+ label = "wan";
|
||||
+ pinctrl-0 = <&gbe0_led0_pins>;
|
||||
+};
|
||||
+
|
||||
+&gsw_phy0_led0 {
|
||||
+ status = "okay";
|
||||
+ function = LED_FUNCTION_WAN;
|
||||
+ color = <LED_COLOR_ID_GREEN>;
|
||||
+};
|
||||
+
|
||||
+&gsw_phy1 {
|
||||
+ pinctrl-names = "gbe-led";
|
||||
+ label = "lan1";
|
||||
+ pinctrl-0 = <&gbe1_led0_pins>;
|
||||
+};
|
||||
+
|
||||
+&gsw_phy1_led0 {
|
||||
+ status = "okay";
|
||||
+ function = LED_FUNCTION_LAN;
|
||||
+ color = <LED_COLOR_ID_GREEN>;
|
||||
+};
|
||||
+
|
||||
+&gsw_phy2 {
|
||||
+ pinctrl-names = "gbe-led";
|
||||
+ label = "lan2";
|
||||
+ pinctrl-0 = <&gbe2_led0_pins>;
|
||||
+};
|
||||
+
|
||||
+&gsw_phy2_led0 {
|
||||
+ status = "okay";
|
||||
+ function = LED_FUNCTION_LAN;
|
||||
+ color = <LED_COLOR_ID_GREEN>;
|
||||
+};
|
||||
+
|
||||
+&gsw_phy3 {
|
||||
+ pinctrl-names = "gbe-led";
|
||||
+ label = "lan3";
|
||||
+ pinctrl-0 = <&gbe3_led0_pins>;
|
||||
+};
|
||||
+
|
||||
+&gsw_phy3_led0 {
|
||||
+ status = "okay";
|
||||
+ function = LED_FUNCTION_LAN;
|
||||
+ color = <LED_COLOR_ID_GREEN>;
|
||||
+};
|
||||
+
|
||||
&i2c0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c0_pins>;
|
||||
@ -1,33 +0,0 @@
|
||||
From 109a9c8409f85d777f8ffa3fe145498a1fec0f1e Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Golle <daniel@makrotopia.org>
|
||||
Date: Thu, 8 May 2025 04:03:58 +0100
|
||||
Subject: [PATCH] arm64: dts: mt7988a: add serial1 and serial2 aliases
|
||||
|
||||
Add aliases serial1 and serial2, so boards can make use of the
|
||||
auxilary UARTs of the MediaTek MT7988 SoC.
|
||||
|
||||
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
---
|
||||
arch/arm64/boot/dts/mediatek/mt7988a.dtsi | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
@@ -297,7 +297,7 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
- serial@11000100 {
|
||||
+ serial1: serial@11000100 {
|
||||
compatible = "mediatek,mt7988-uart", "mediatek,mt6577-uart";
|
||||
reg = <0 0x11000100 0 0x100>;
|
||||
interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
|
||||
@@ -308,7 +308,7 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
- serial@11000200 {
|
||||
+ serial2: serial@11000200 {
|
||||
compatible = "mediatek,mt7988-uart", "mediatek,mt6577-uart";
|
||||
reg = <0 0x11000200 0 0x100>;
|
||||
interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
|
||||
@ -1,235 +0,0 @@
|
||||
From: Daniel Golle <daniel@makrotopia.org>
|
||||
Date: Thu, 26 Jun 2025 00:54:32 +0100
|
||||
Subject: [PATCH] arm64: dts: mt7988a: complete dtsi
|
||||
|
||||
Work-in-progress patch to complete mt7988a.dtsi
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
@@ -193,7 +193,7 @@
|
||||
};
|
||||
|
||||
pio: pinctrl@1001f000 {
|
||||
- compatible = "mediatek,mt7988-pinctrl";
|
||||
+ compatible = "mediatek,mt7988-pinctrl", "syscon";
|
||||
reg = <0 0x1001f000 0 0x1000>,
|
||||
<0 0x11c10000 0 0x1000>,
|
||||
<0 0x11d00000 0 0x1000>,
|
||||
@@ -212,6 +212,13 @@
|
||||
interrupt-parent = <&gic>;
|
||||
#interrupt-cells = <2>;
|
||||
|
||||
+ snfi_pins: snfi-pins {
|
||||
+ mux {
|
||||
+ function = "flash";
|
||||
+ groups = "snfi";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
pcie0_pins: pcie0-pins {
|
||||
mux {
|
||||
function = "pcie";
|
||||
@@ -278,6 +285,60 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
+ sgmiisys0: syscon@10060000 {
|
||||
+ compatible = "mediatek,mt7988-sgmiisys",
|
||||
+ "mediatek,mt7988-sgmiisys0",
|
||||
+ "syscon",
|
||||
+ "simple-mfd";
|
||||
+ reg = <0 0x10060000 0 0x1000>;
|
||||
+ resets = <&watchdog 1>;
|
||||
+ #clock-cells = <1>;
|
||||
+
|
||||
+ sgmiipcs0: pcs {
|
||||
+ compatible = "mediatek,mt7988-sgmii";
|
||||
+ clocks = <&topckgen CLK_TOP_SGM_0_SEL>,
|
||||
+ <&sgmiisys0 CLK_SGM0_TX_EN>,
|
||||
+ <&sgmiisys0 CLK_SGM0_RX_EN>;
|
||||
+ clock-names = "sgmii_sel", "sgmii_tx", "sgmii_rx";
|
||||
+ #pcs-cells = <0>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ sgmiisys1: syscon@10070000 {
|
||||
+ compatible = "mediatek,mt7988-sgmiisys",
|
||||
+ "mediatek,mt7988-sgmiisys1",
|
||||
+ "syscon",
|
||||
+ "simple-mfd";
|
||||
+ reg = <0 0x10070000 0 0x1000>;
|
||||
+ resets = <&watchdog 2>;
|
||||
+ #clock-cells = <1>;
|
||||
+
|
||||
+ sgmiipcs1: pcs {
|
||||
+ compatible = "mediatek,mt7988-sgmii";
|
||||
+ clocks = <&topckgen CLK_TOP_SGM_1_SEL>,
|
||||
+ <&sgmiisys1 CLK_SGM1_TX_EN>,
|
||||
+ <&sgmiisys1 CLK_SGM1_RX_EN>;
|
||||
+ clock-names = "sgmii_sel", "sgmii_tx", "sgmii_rx";
|
||||
+ #pcs-cells = <0>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ usxgmiisys0: pcs@10080000 {
|
||||
+ compatible = "mediatek,mt7988-usxgmiisys";
|
||||
+ reg = <0 0x10080000 0 0x1000>;
|
||||
+ resets = <&watchdog 12>;
|
||||
+ clocks = <&topckgen CLK_TOP_USXGMII_SBUS_0_SEL>;
|
||||
+ #pcs-cells = <0>;
|
||||
+ };
|
||||
+
|
||||
+ usxgmiisys1: pcs@10081000 {
|
||||
+ compatible = "mediatek,mt7988-usxgmiisys";
|
||||
+ reg = <0 0x10081000 0 0x1000>;
|
||||
+ resets = <&watchdog 13>;
|
||||
+ clocks = <&topckgen CLK_TOP_USXGMII_SBUS_1_SEL>;
|
||||
+ #pcs-cells = <0>;
|
||||
+ };
|
||||
+
|
||||
mcusys: mcusys@100e0000 {
|
||||
compatible = "mediatek,mt7988-mcusys", "syscon";
|
||||
reg = <0 0x100e0000 0 0x1000>;
|
||||
@@ -319,6 +380,32 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
+ snand: spi@11001000 {
|
||||
+ compatible = "mediatek,mt7986-snand";
|
||||
+ reg = <0 0x11001000 0 0x1000>;
|
||||
+ interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ clocks = <&infracfg CLK_INFRA_SPINFI>,
|
||||
+ <&infracfg CLK_INFRA_NFI>,
|
||||
+ <&infracfg CLK_INFRA_66M_NFI_HCK>;
|
||||
+ clock-names = "pad_clk", "nfi_clk", "nfi_hclk";
|
||||
+ nand-ecc-engine = <&bch>;
|
||||
+ mediatek,quad-spi;
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&snfi_pins>;
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+
|
||||
+ bch: ecc@11002000 {
|
||||
+ compatible = "mediatek,mt7686-ecc";
|
||||
+ reg = <0 0x11002000 0 0x1000>;
|
||||
+ interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ clocks = <&infracfg CLK_INFRA_NFI>;
|
||||
+ clock-names = "nfiecc_clk";
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+
|
||||
i2c0: i2c@11003000 {
|
||||
compatible = "mediatek,mt7981-i2c";
|
||||
reg = <0 0x11003000 0 0x1000>,
|
||||
@@ -425,7 +512,7 @@
|
||||
<0 0x0f0f0018 0 0x20>;
|
||||
};
|
||||
|
||||
- usb@11190000 {
|
||||
+ ssusb0: usb@11190000 {
|
||||
compatible = "mediatek,mt7988-xhci", "mediatek,mtk-xhci";
|
||||
reg = <0 0x11190000 0 0x2e00>,
|
||||
<0 0x11193e00 0 0x0100>;
|
||||
@@ -459,6 +546,35 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
+ afe: audio-controller@11210000 {
|
||||
+ compatible = "mediatek,mt79xx-audio";
|
||||
+ reg = <0 0x11210000 0 0x9000>;
|
||||
+ interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ clocks = <&infracfg CLK_INFRA_66M_AUD_SLV_BCK>,
|
||||
+ <&infracfg CLK_INFRA_AUD_26M>,
|
||||
+ <&infracfg CLK_INFRA_AUD_L>,
|
||||
+ <&infracfg CLK_INFRA_AUD_AUD>,
|
||||
+ <&infracfg CLK_INFRA_AUD_EG2>,
|
||||
+ <&topckgen CLK_TOP_AUD_SEL>,
|
||||
+ <&topckgen CLK_TOP_AUD_I2S_M>;
|
||||
+ clock-names = "aud_bus_ck",
|
||||
+ "aud_26m_ck",
|
||||
+ "aud_l_ck",
|
||||
+ "aud_aud_ck",
|
||||
+ "aud_eg2_ck",
|
||||
+ "aud_sel",
|
||||
+ "aud_i2s_m";
|
||||
+ assigned-clocks = <&topckgen CLK_TOP_AUD_SEL>,
|
||||
+ <&topckgen CLK_TOP_A1SYS_SEL>,
|
||||
+ <&topckgen CLK_TOP_AUD_L_SEL>,
|
||||
+ <&topckgen CLK_TOP_A_TUNER_SEL>;
|
||||
+ assigned-clock-parents = <&apmixedsys CLK_APMIXED_APLL2>,
|
||||
+ <&topckgen CLK_TOP_APLL2_D4>,
|
||||
+ <&apmixedsys CLK_APMIXED_APLL2>,
|
||||
+ <&topckgen CLK_TOP_APLL2_D4>;
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+
|
||||
mmc0: mmc@11230000 {
|
||||
compatible = "mediatek,mt7988-mmc";
|
||||
reg = <0 0x11230000 0 0x1000>,
|
||||
@@ -721,6 +837,10 @@
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
+ cpufreq_calibration: calib@278 {
|
||||
+ reg = <0x278 0x1>;
|
||||
+ };
|
||||
+
|
||||
lvts_calibration: calib@918 {
|
||||
reg = <0x918 0x28>;
|
||||
};
|
||||
@@ -984,12 +1104,16 @@
|
||||
gmac1: mac@1 {
|
||||
compatible = "mediatek,eth-mac";
|
||||
reg = <1>;
|
||||
+ pcs-handle = <&sgmiipcs1>, <&usxgmiisys1>;
|
||||
+ phys = <&xfi_tphy1>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
gmac2: mac@2 {
|
||||
compatible = "mediatek,eth-mac";
|
||||
reg = <2>;
|
||||
+ pcs-handle = <&sgmiipcs0>, <&usxgmiisys0>;
|
||||
+ phys = <&xfi_tphy0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
@@ -1002,9 +1126,37 @@
|
||||
reg = <15>;
|
||||
compatible = "ethernet-phy-ieee802.3-c45";
|
||||
phy-mode = "internal";
|
||||
+
|
||||
+ leds {
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+
|
||||
+ i2p5gbe_led0: i2p5gbe-led0@0 {
|
||||
+ reg = <0>;
|
||||
+ function = LED_FUNCTION_LAN;
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+
|
||||
+ i2p5gbe_led1: i2p5gbe-led1@1 {
|
||||
+ reg = <1>;
|
||||
+ function = LED_FUNCTION_LAN;
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+ };
|
||||
};
|
||||
};
|
||||
};
|
||||
+
|
||||
+ crypto: crypto@15600000 {
|
||||
+ compatible = "inside-secure,safexcel-eip197b";
|
||||
+ reg = <0 0x15600000 0 0x180000>;
|
||||
+ interrupts = <GIC_SPI 214 IRQ_TYPE_LEVEL_HIGH>,
|
||||
+ <GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>,
|
||||
+ <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>,
|
||||
+ <GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ interrupt-names = "ring0", "ring1", "ring2", "ring3";
|
||||
+ status = "okay";
|
||||
+ };
|
||||
};
|
||||
|
||||
thermal-zones {
|
||||
@ -1,53 +0,0 @@
|
||||
From 0c74ae06ed6b6c9627712a74ecee4e61bbd4092d Mon Sep 17 00:00:00 2001
|
||||
From: developer <developer@mediatek.com>
|
||||
Date: Mon, 19 Jan 2026 21:42:29 +0800
|
||||
Subject: [PATCH] arm64: dts: mediatek: fix mt7981 spim clock
|
||||
|
||||
1) Add spi0/1/2 clock parent setting
|
||||
2) Fix spi1 clock_sel to CLK_TOP_SPIM_MST_SEL
|
||||
|
||||
Link: https://git01.mediatek.com/plugins/gitiles/openwrt/feeds/mtk-openwrt-feeds/+/836034ca0baad57e4c287a62ccc5677c60be0e18
|
||||
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
|
||||
---
|
||||
arch/arm64/boot/dts/mediatek/mt7981b.dtsi | 14 +++++++++++++-
|
||||
1 file changed, 13 insertions(+), 1 deletion(-)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7981b.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7981b.dtsi
|
||||
@@ -223,6 +223,10 @@
|
||||
<&topckgen CLK_TOP_SPI_SEL>,
|
||||
<&infracfg CLK_INFRA_SPI2_CK>,
|
||||
<&infracfg CLK_INFRA_SPI2_HCK_CK>;
|
||||
+ assigned-clocks = <&topckgen CLK_TOP_SPI_SEL>,
|
||||
+ <&infracfg CLK_INFRA_SPI2_SEL>;
|
||||
+ assigned-clock-parents = <&topckgen CLK_TOP_CB_M_D2>,
|
||||
+ <&topckgen CLK_TOP_SPI_SEL>;
|
||||
clock-names = "parent-clk", "sel-clk", "spi-clk", "hclk";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
@@ -237,6 +241,10 @@
|
||||
<&topckgen CLK_TOP_SPI_SEL>,
|
||||
<&infracfg CLK_INFRA_SPI0_CK>,
|
||||
<&infracfg CLK_INFRA_SPI0_HCK_CK>;
|
||||
+ assigned-clocks = <&topckgen CLK_TOP_SPI_SEL>,
|
||||
+ <&infracfg CLK_INFRA_SPI0_SEL>;
|
||||
+ assigned-clock-parents = <&topckgen CLK_TOP_CB_M_D2>,
|
||||
+ <&topckgen CLK_TOP_SPI_SEL>;
|
||||
clock-names = "parent-clk", "sel-clk", "spi-clk", "hclk";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
@@ -248,9 +256,13 @@
|
||||
reg = <0 0x1100b000 0 0x1000>;
|
||||
interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&topckgen CLK_TOP_CB_M_D2>,
|
||||
- <&topckgen CLK_TOP_SPI_SEL>,
|
||||
+ <&topckgen CLK_TOP_SPIM_MST_SEL>,
|
||||
<&infracfg CLK_INFRA_SPI1_CK>,
|
||||
<&infracfg CLK_INFRA_SPI1_HCK_CK>;
|
||||
+ assigned-clocks = <&topckgen CLK_TOP_SPIM_MST_SEL>,
|
||||
+ <&infracfg CLK_INFRA_SPI1_SEL>;
|
||||
+ assigned-clock-parents = <&topckgen CLK_TOP_CB_M_D2>,
|
||||
+ <&topckgen CLK_TOP_SPIM_MST_SEL>;
|
||||
clock-names = "parent-clk", "sel-clk", "spi-clk", "hclk";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,488 +0,0 @@
|
||||
From f7fb27b62f0ef45f94f4ec33c608bfad1c7691b3 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Golle <daniel@makrotopia.org>
|
||||
Date: Wed, 26 Jul 2023 14:56:28 +0100
|
||||
Subject: [PATCH 32/32] WIP: add BPi-R4
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-2g5.dts
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-2g5.dts
|
||||
@@ -20,3 +20,16 @@
|
||||
pinctrl-names = "i2p5gbe-led";
|
||||
pinctrl-0 = <&i2p5gbe_led0_pins>;
|
||||
};
|
||||
+
|
||||
+&gmac1 {
|
||||
+ phy-mode = "internal";
|
||||
+ phy-connection-type = "internal";
|
||||
+ phy = <&int_2p5g_phy>;
|
||||
+ openwrt,netdev-name = "lan4";
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&int_2p5g_phy {
|
||||
+ pinctrl-names = "i2p5gbe-led";
|
||||
+ pinctrl-0 = <&i2p5gbe_led0_pins>;
|
||||
+};
|
||||
--- /dev/null
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-emmc.dtso
|
||||
@@ -0,0 +1,56 @@
|
||||
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
|
||||
+/*
|
||||
+ * Copyright (C) 2021 MediaTek Inc.
|
||||
+ * Author: Frank Wunderlich <frank-w@public-files.de>
|
||||
+ */
|
||||
+
|
||||
+/dts-v1/;
|
||||
+/plugin/;
|
||||
+
|
||||
+/ {
|
||||
+ compatible = "bananapi,bpi-r4", "mediatek,mt7988a";
|
||||
+};
|
||||
+
|
||||
+&{/soc/mmc@11230000} {
|
||||
+ pinctrl-names = "default", "state_uhs";
|
||||
+ pinctrl-0 = <&mmc0_pins_emmc_51>;
|
||||
+ pinctrl-1 = <&mmc0_pins_emmc_51>;
|
||||
+ bus-width = <8>;
|
||||
+ max-frequency = <200000000>;
|
||||
+ cap-mmc-highspeed;
|
||||
+ mmc-hs200-1_8v;
|
||||
+ mmc-hs400-1_8v;
|
||||
+ hs400-ds-delay = <0x12814>;
|
||||
+ vqmmc-supply = <®_1p8v>;
|
||||
+ vmmc-supply = <®_3p3v>;
|
||||
+ non-removable;
|
||||
+ no-sd;
|
||||
+ no-sdio;
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+ status = "okay";
|
||||
+
|
||||
+ card@0 {
|
||||
+ compatible = "mmc-card";
|
||||
+ reg = <0>;
|
||||
+
|
||||
+ partitions {
|
||||
+ compatible = "gpt-partitions";
|
||||
+
|
||||
+ block-partition-env {
|
||||
+ partname = "ubootenv";
|
||||
+ nvmem-layout {
|
||||
+ compatible = "u-boot,env-layout";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ emmc_rootfs: block-partition-production {
|
||||
+ partname = "production";
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&{/chosen} {
|
||||
+ rootdisk-emmc = <&emmc_rootfs>;
|
||||
+};
|
||||
--- /dev/null
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-rtc.dtso
|
||||
@@ -0,0 +1,19 @@
|
||||
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
|
||||
+/*
|
||||
+ * Copyright (C) 2023
|
||||
+ * Author: Daniel Golle <daniel@makrotopia.org>
|
||||
+ */
|
||||
+
|
||||
+/dts-v1/;
|
||||
+/plugin/;
|
||||
+
|
||||
+/ {
|
||||
+ compatible = "bananapi,bpi-r4", "mediatek,mt7988a";
|
||||
+
|
||||
+ fragment@0 {
|
||||
+ target = <&pcf8563>;
|
||||
+ __overlay__ {
|
||||
+ status = "okay";
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
--- /dev/null
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-sd.dtso
|
||||
@@ -0,0 +1,54 @@
|
||||
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
|
||||
+/*
|
||||
+ * Copyright (C) 2023 MediaTek Inc.
|
||||
+ * Author: Frank Wunderlich <frank-w@public-files.de>
|
||||
+ */
|
||||
+
|
||||
+/dts-v1/;
|
||||
+/plugin/;
|
||||
+
|
||||
+#include <dt-bindings/gpio/gpio.h>
|
||||
+
|
||||
+/ {
|
||||
+ compatible = "bananapi,bpi-r4", "mediatek,mt7988a";
|
||||
+};
|
||||
+
|
||||
+&{/soc/mmc@11230000} {
|
||||
+ pinctrl-names = "default", "state_uhs";
|
||||
+ pinctrl-0 = <&mmc0_pins_sdcard>;
|
||||
+ pinctrl-1 = <&mmc0_pins_sdcard>;
|
||||
+ cd-gpios = <&pio 12 GPIO_ACTIVE_LOW>;
|
||||
+ bus-width = <4>;
|
||||
+ max-frequency = <52000000>;
|
||||
+ cap-sd-highspeed;
|
||||
+ vmmc-supply = <®_3p3v>;
|
||||
+ vqmmc-supply = <®_3p3v>;
|
||||
+ no-mmc;
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+ status = "okay";
|
||||
+
|
||||
+ card@0 {
|
||||
+ compatible = "mmc-card";
|
||||
+ reg = <0>;
|
||||
+
|
||||
+ partitions {
|
||||
+ compatible = "gpt-partitions";
|
||||
+
|
||||
+ block-partition-env {
|
||||
+ partname = "ubootenv";
|
||||
+ nvmem-layout {
|
||||
+ compatible = "u-boot,env-layout";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ sd_rootfs: block-partition-production {
|
||||
+ partname = "production";
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&{/chosen} {
|
||||
+ rootdisk-sd = <&sd_rootfs>;
|
||||
+};
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts
|
||||
@@ -35,3 +35,11 @@
|
||||
reg = <2>;
|
||||
};
|
||||
};
|
||||
+
|
||||
+&gmac1 {
|
||||
+ sfp = <&sfp2>;
|
||||
+ managed = "in-band-status";
|
||||
+ phy-mode = "usxgmii";
|
||||
+ openwrt,netdev-name = "sfp-lan";
|
||||
+ status = "okay";
|
||||
+};
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
|
||||
@@ -3,6 +3,8 @@
|
||||
/dts-v1/;
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
+#include <dt-bindings/input/input.h>
|
||||
+#include <dt-bindings/leds/common.h>
|
||||
#include <dt-bindings/regulator/richtek,rt5190a-regulator.h>
|
||||
|
||||
#include "mt7988a.dtsi"
|
||||
@@ -10,6 +12,8 @@
|
||||
/ {
|
||||
chosen {
|
||||
stdout-path = "serial0:115200n8";
|
||||
+ bootargs = "console=ttyS0,115200n1 pci=pcie_bus_perf ubi.block=0,fit root=/dev/fit0";
|
||||
+ rootdisk-spim-nand = <&ubi_rootfs>;
|
||||
};
|
||||
|
||||
fan: pwm-fan {
|
||||
@@ -50,6 +54,142 @@
|
||||
rate-select0-gpios = <&pio 21 GPIO_ACTIVE_LOW>;
|
||||
maximum-power-milliwatt = <3000>;
|
||||
};
|
||||
+
|
||||
+ aliases {
|
||||
+ ethernet0 = &gmac0;
|
||||
+ ethernet1 = &gmac1;
|
||||
+ ethernet2 = &gmac2;
|
||||
+ serial0 = &serial0;
|
||||
+ led-boot = &led_green;
|
||||
+ led-failsafe = &led_green;
|
||||
+ led-running = &led_green;
|
||||
+ led-upgrade = &led_green;
|
||||
+ };
|
||||
+
|
||||
+ memory@40000000 {
|
||||
+ reg = <0x00 0x40000000 0x00 0x10000000>;
|
||||
+ device_type = "memory";
|
||||
+ };
|
||||
+
|
||||
+ /* SFP1 cage (WAN) */
|
||||
+ sfp1: sfp1 {
|
||||
+ compatible = "sff,sfp";
|
||||
+ i2c-bus = <&i2c_sfp1>;
|
||||
+ los-gpios = <&pio 54 GPIO_ACTIVE_HIGH>;
|
||||
+ mod-def0-gpios = <&pio 82 GPIO_ACTIVE_LOW>;
|
||||
+ tx-disable-gpios = <&pio 70 GPIO_ACTIVE_HIGH>;
|
||||
+ tx-fault-gpios = <&pio 69 GPIO_ACTIVE_HIGH>;
|
||||
+ rate-select0-gpios = <&pio 21 GPIO_ACTIVE_LOW>;
|
||||
+ maximum-power-milliwatt = <3000>;
|
||||
+ };
|
||||
+
|
||||
+ gpio-keys {
|
||||
+ compatible = "gpio-keys";
|
||||
+
|
||||
+ wps {
|
||||
+ label = "WPS";
|
||||
+ linux,code = <KEY_RESTART>;
|
||||
+ gpios = <&pio 14 GPIO_ACTIVE_LOW>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ 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";
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+ð {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&gmac0 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&gmac2 {
|
||||
+ sfp = <&sfp1>;
|
||||
+ managed = "in-band-status";
|
||||
+ phy-mode = "usxgmii";
|
||||
+ openwrt,netdev-name = "sfp-wan";
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&switch {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&gsw_phy0 {
|
||||
+ pinctrl-names = "gbe-led";
|
||||
+ pinctrl-0 = <&gbe0_led0_pins>;
|
||||
+};
|
||||
+
|
||||
+&gsw_port0 {
|
||||
+ label = "wan";
|
||||
+};
|
||||
+
|
||||
+&gsw_phy0_led0 {
|
||||
+ status = "okay";
|
||||
+ function = LED_FUNCTION_WAN;
|
||||
+ color = <LED_COLOR_ID_GREEN>;
|
||||
+};
|
||||
+
|
||||
+&gsw_phy1 {
|
||||
+ pinctrl-names = "gbe-led";
|
||||
+ pinctrl-0 = <&gbe1_led0_pins>;
|
||||
+};
|
||||
+
|
||||
+&gsw_port1 {
|
||||
+ label = "lan1";
|
||||
+};
|
||||
+
|
||||
+&gsw_phy1_led0 {
|
||||
+ status = "okay";
|
||||
+ function = LED_FUNCTION_LAN;
|
||||
+ color = <LED_COLOR_ID_GREEN>;
|
||||
+};
|
||||
+
|
||||
+&gsw_phy2 {
|
||||
+ pinctrl-names = "gbe-led";
|
||||
+ pinctrl-0 = <&gbe2_led0_pins>;
|
||||
+};
|
||||
+
|
||||
+&gsw_port2 {
|
||||
+ label = "lan2";
|
||||
+};
|
||||
+
|
||||
+&gsw_phy2_led0 {
|
||||
+ status = "okay";
|
||||
+ function = LED_FUNCTION_LAN;
|
||||
+ color = <LED_COLOR_ID_GREEN>;
|
||||
+};
|
||||
+
|
||||
+&gsw_phy3 {
|
||||
+ pinctrl-names = "gbe-led";
|
||||
+ pinctrl-0 = <&gbe3_led0_pins>;
|
||||
+};
|
||||
+
|
||||
+&gsw_port3 {
|
||||
+ label = "lan3";
|
||||
+};
|
||||
+
|
||||
+&gsw_phy3_led0 {
|
||||
+ status = "okay";
|
||||
+ function = LED_FUNCTION_LAN;
|
||||
+ color = <LED_COLOR_ID_GREEN>;
|
||||
};
|
||||
|
||||
&cci {
|
||||
@@ -174,6 +314,10 @@
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
};
|
||||
|
||||
+&cci {
|
||||
+ proc-supply = <&rt5190_buck3>;
|
||||
+};
|
||||
+
|
||||
&i2c0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c0_pins>;
|
||||
@@ -265,6 +409,14 @@
|
||||
#size-cells = <0>;
|
||||
reg = <1>;
|
||||
};
|
||||
+
|
||||
+ i2c_wifi: i2c@3 {
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+ reg = <3>;
|
||||
+
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
};
|
||||
};
|
||||
|
||||
@@ -364,34 +516,6 @@
|
||||
};
|
||||
};
|
||||
|
||||
- gbe0_led1_pins: gbe0-led1-pins {
|
||||
- mux {
|
||||
- function = "led";
|
||||
- groups = "gbe0_led1";
|
||||
- };
|
||||
- };
|
||||
-
|
||||
- gbe1_led1_pins: gbe1-led1-pins {
|
||||
- mux {
|
||||
- function = "led";
|
||||
- groups = "gbe1_led1";
|
||||
- };
|
||||
- };
|
||||
-
|
||||
- gbe2_led1_pins: gbe2-led1-pins {
|
||||
- mux {
|
||||
- function = "led";
|
||||
- groups = "gbe2_led1";
|
||||
- };
|
||||
- };
|
||||
-
|
||||
- gbe3_led1_pins: gbe3-led1-pins {
|
||||
- mux {
|
||||
- function = "led";
|
||||
- groups = "gbe3_led1";
|
||||
- };
|
||||
- };
|
||||
-
|
||||
i2p5gbe_led0_pins: 2p5gbe-led0-pins {
|
||||
mux {
|
||||
function = "led";
|
||||
@@ -399,13 +523,6 @@
|
||||
};
|
||||
};
|
||||
|
||||
- i2p5gbe_led1_pins: 2p5gbe-led1-pins {
|
||||
- mux {
|
||||
- function = "led";
|
||||
- groups = "2p5gbe_led1";
|
||||
- };
|
||||
- };
|
||||
-
|
||||
mmc0_pins_emmc_45: mmc0-emmc-45-pins {
|
||||
mux {
|
||||
function = "flash";
|
||||
@@ -427,40 +544,12 @@
|
||||
};
|
||||
};
|
||||
|
||||
- snfi_pins: snfi-pins {
|
||||
- mux {
|
||||
- function = "flash";
|
||||
- groups = "snfi";
|
||||
- };
|
||||
- };
|
||||
-
|
||||
- spi0_pins: spi0-pins {
|
||||
- mux {
|
||||
- function = "spi";
|
||||
- groups = "spi0";
|
||||
- };
|
||||
- };
|
||||
-
|
||||
spi0_flash_pins: spi0-flash-pins {
|
||||
mux {
|
||||
function = "spi";
|
||||
groups = "spi0", "spi0_wp_hold";
|
||||
};
|
||||
};
|
||||
-
|
||||
- spi2_pins: spi2-pins {
|
||||
- mux {
|
||||
- function = "spi";
|
||||
- groups = "spi2";
|
||||
- };
|
||||
- };
|
||||
-
|
||||
- spi2_flash_pins: spi2-flash-pins {
|
||||
- mux {
|
||||
- function = "spi";
|
||||
- groups = "spi2", "spi2_wp_hold";
|
||||
- };
|
||||
- };
|
||||
};
|
||||
|
||||
&pwm {
|
||||
@@ -500,6 +589,32 @@
|
||||
reg = <0x0 0x200000>;
|
||||
read-only;
|
||||
};
|
||||
+
|
||||
+ partition@200000 {
|
||||
+ label = "ubi";
|
||||
+ reg = <0x200000 0x7e00000>;
|
||||
+ compatible = "linux,ubi";
|
||||
+
|
||||
+ volumes {
|
||||
+ ubi-volume-ubootenv {
|
||||
+ volname = "ubootenv";
|
||||
+ nvmem-layout {
|
||||
+ compatible = "u-boot,env-redundant-bool-layout";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ ubi-volume-ubootenv2 {
|
||||
+ volname = "ubootenv2";
|
||||
+ nvmem-layout {
|
||||
+ compatible = "u-boot,env-redundant-bool-layout";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ ubi_rootfs: ubi-volume-fit {
|
||||
+ volname = "fit";
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
};
|
||||
};
|
||||
|
||||
@ -1,106 +0,0 @@
|
||||
From patchwork Tue Apr 26 19:51:36 2022
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
MIME-Version: 1.0
|
||||
Content-Transfer-Encoding: 7bit
|
||||
X-Patchwork-Submitter: Daniel Golle <daniel@makrotopia.org>
|
||||
X-Patchwork-Id: 12827872
|
||||
Return-Path:
|
||||
<linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org>
|
||||
X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on
|
||||
aws-us-west-2-korg-lkml-1.web.codeaurora.org
|
||||
Received: from bombadil.infradead.org (bombadil.infradead.org
|
||||
[198.137.202.133])
|
||||
(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
|
||||
(No client certificate requested)
|
||||
by smtp.lore.kernel.org (Postfix) with ESMTPS id BACF3C433EF
|
||||
for <linux-arm-kernel@archiver.kernel.org>;
|
||||
Tue, 26 Apr 2022 19:53:05 +0000 (UTC)
|
||||
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
|
||||
d=lists.infradead.org; s=bombadil.20210309; h=Sender:
|
||||
Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post:
|
||||
List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-ID:Subject:Cc:To:
|
||||
From:Date:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:
|
||||
Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:
|
||||
List-Owner; bh=OWGSxvlKoyPWz6b629RNINucULo6oOdFssAIiJETWRg=; b=T0HEjee0FX3hlb
|
||||
x5jl7xLK5sKM0pkE2oRgwzthbFlNg8ST1j/2GkgcgT0S2Bi0vRfFxHeu/RKzS9RmiVnKJnPGL8ctg
|
||||
WoBLyO5i+NcmosGoy6MmoOjGTNhj/+3q3Z1jRLBSJ4ySSP22X77YeuJTmVzySPUllQhWvDhjMVCR9
|
||||
QBRmQdc6gCAg3IYGEbWwS2TG+UHveDCeZRWxMzrwI8UPadNCRFROwugmiQ3mdU41lHCTDpnlfuRJh
|
||||
o1igLKfMBLz+D8rFYvDh7FfkcKkY6lNoswA2HKUun1MEzgoyQKmITPnG2maX/BvJJuj/B3ZJShh4k
|
||||
AZHmXoQxq1mrsm2FxfnQ==;
|
||||
Received: from localhost ([::1] helo=bombadil.infradead.org)
|
||||
by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux))
|
||||
id 1njRE5-00G05D-9z; Tue, 26 Apr 2022 19:51:57 +0000
|
||||
Received: from fudo.makrotopia.org ([2a07:2ec0:3002::71])
|
||||
by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux))
|
||||
id 1njRE1-00G03h-9H; Tue, 26 Apr 2022 19:51:55 +0000
|
||||
Received: from local
|
||||
by fudo.makrotopia.org with esmtpsa (TLS1.3:TLS_AES_256_GCM_SHA384:256)
|
||||
(Exim 4.94.2) (envelope-from <daniel@makrotopia.org>)
|
||||
id 1njRDu-0006aF-4F; Tue, 26 Apr 2022 21:51:46 +0200
|
||||
Date: Tue, 26 Apr 2022 20:51:36 +0100
|
||||
From: Daniel Golle <daniel@makrotopia.org>
|
||||
To: devicetree@vger.kernel.org, linux-mediatek@lists.infradead.org,
|
||||
linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org
|
||||
Cc: Rob Herring <robh+dt@kernel.org>,
|
||||
Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
|
||||
Matthias Brugger <matthias.bgg@gmail.com>
|
||||
Subject: [PATCH] arm64: dts: mediatek: mt7622: fix GICv2 range
|
||||
Message-ID: <YmhNSLgp/yg8Vr1F@makrotopia.org>
|
||||
MIME-Version: 1.0
|
||||
Content-Disposition: inline
|
||||
X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
|
||||
X-CRM114-CacheID: sfid-20220426_125153_359242_EA3D452C
|
||||
X-CRM114-Status: GOOD ( 12.45 )
|
||||
X-BeenThere: linux-arm-kernel@lists.infradead.org
|
||||
X-Mailman-Version: 2.1.34
|
||||
Precedence: list
|
||||
List-Id: <linux-arm-kernel.lists.infradead.org>
|
||||
List-Unsubscribe:
|
||||
<http://lists.infradead.org/mailman/options/linux-arm-kernel>,
|
||||
<mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>
|
||||
List-Archive: <http://lists.infradead.org/pipermail/linux-arm-kernel/>
|
||||
List-Post: <mailto:linux-arm-kernel@lists.infradead.org>
|
||||
List-Help: <mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>
|
||||
List-Subscribe:
|
||||
<http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,
|
||||
<mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>
|
||||
Sender: "linux-arm-kernel" <linux-arm-kernel-bounces@lists.infradead.org>
|
||||
Errors-To:
|
||||
linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org
|
||||
|
||||
With the current range specified for the CPU interface there is an
|
||||
error message at boot:
|
||||
|
||||
GIC: GICv2 detected, but range too small and irqchip.gicv2_force_probe not set
|
||||
|
||||
Setting irqchip.gicv2_force_probe=1 in bootargs results in:
|
||||
|
||||
GIC: Aliased GICv2 at 0x0000000010320000, trying to find the canonical range over 128kB
|
||||
GIC: Adjusting CPU interface base to 0x000000001032f000
|
||||
GIC: Using split EOI/Deactivate mode
|
||||
|
||||
Using the adjusted CPU interface base and 8K size results in only the
|
||||
final line remaining and fully working system as well as /proc/interrupts
|
||||
showing additional IPI3,4,5,6:
|
||||
|
||||
IPI3: 0 0 CPU stop (for crash dump) interrupts
|
||||
IPI4: 0 0 Timer broadcast interrupts
|
||||
IPI5: 0 0 IRQ work interrupts
|
||||
IPI6: 0 0 CPU wake-up interrupts
|
||||
|
||||
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
---
|
||||
arch/arm64/boot/dts/mediatek/mt7622.dtsi | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7622.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7622.dtsi
|
||||
@@ -345,7 +345,7 @@
|
||||
#interrupt-cells = <3>;
|
||||
interrupt-parent = <&gic>;
|
||||
reg = <0 0x10310000 0 0x1000>,
|
||||
- <0 0x10320000 0 0x1000>,
|
||||
+ <0 0x1032f000 0 0x2000>,
|
||||
<0 0x10340000 0 0x2000>,
|
||||
<0 0x10360000 0 0x2000>;
|
||||
};
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user