- Allwinner A100 DMA node

- Allwinner H6 GPU devfreq scaling
 - sunxi sram bindings cleanup and D1 addition
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYIAB0WIQSPRixG1tysKC2PKM10Ba7+DO8kkwUCYyeLcAAKCRB0Ba7+DO8k
 k29tAQDWg16eBX+DxH0QiTSvAOU8Baq1auW9+wHWjbP9KEaI+gD/XlYpHQcX2FME
 ck+BP47ZeWInvt0vv2/HlRVOOsHEIQM=
 =v2pD
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmMtwCAACgkQmmx57+YA
 GNlLnA/8CbdEp1FGj5tHdt9vFu0Zof/2PIhWk4ACq8fIAq7zvb2uwVINU0ZuNlBy
 yEWU2nka9P00MySmI/yVuf1zuPV8pT3BgXjEby32+KKrz1lAGORgQpOwe8UuxHVg
 ieCR2UH0MTfpfAIuRr4XLN/M72QJS7STaSP62N2ZF1txosbE14Xf/Mv5lCHUiAuG
 YYZtcqdikpBsdy6nHaZMyqA7dTYcJhzmTuvnYKaa9QJXdgFzshmqlWVjCsTZ1x5l
 I06x2otj8S5DU9nIWi66nuEHduRFk6UrSvRD7O5DpPSK1RKtNQlofjldRQw+qf96
 qp9qcA0hQ7nOst6cUfFhgQW0IeTxJ0GXUpgHNPeNLxVhdpOcRkr9y3gEFlu/xyEk
 667zJ3E1tTpmExVVaE3uQ1va0md+cb0tJB/Kqw6abpcmdyTf4s9Nb2znV93GiyBe
 O1Um1ItLX8g1l5oInm52wklQhQD2v849oF9KXBkPl6IBVcw/sfKQ3amLOaVHfqLb
 Oti+7kWAOx71cLna1Ma7TWxhTCtROOBbM/NaRhht7A0ficnU8yDn1u0rW9kx1gKv
 kgtPCoftnozcIJUjRd0ArcCPkAd18XZvFespbPS3txgkfJFvECEQ2rZDFp6ZE1wz
 wCrfGGWngxsVEYNIkkvvjSGARevC9Ft+YJhkaDtWTkmE3ylL2+w=
 =DYkD
 -----END PGP SIGNATURE-----

Merge tag 'sunxi-dt-for-6.1-1' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into arm/dt

- Allwinner A100 DMA node
- Allwinner H6 GPU devfreq scaling
- sunxi sram bindings cleanup and D1 addition

* tag 'sunxi-dt-for-6.1-1' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux:
  dt-bindings: sram: sunxi-sram: Add D1 compatible string
  dt-bindings: sram: sunxi-sram: Clean up the compatible lists
  arm64: dts: allwinner: beelink-gs1: Enable GPU OPP
  arm64: dts: allwinner: h6: Add GPU OPP table
  arm64: dts: allwinner: h6: Add cooling map for GPU
  arm64: dts: allwinner: a100: Add I2C DMA requests
  arm64: dts: allwinner: a100: Add device node for DMA controller

Link: https://lore.kernel.org/r/YyePKDnOeP8Tdt5n@kista.localdomain
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
Arnd Bergmann 2022-09-23 16:18:07 +02:00
commit 9f1fe339ef
5 changed files with 193 additions and 52 deletions

View File

@ -24,32 +24,31 @@ properties:
compatible: compatible:
oneOf: oneOf:
- const: allwinner,sun4i-a10-sram-controller - enum:
- allwinner,sun4i-a10-sram-controller
- allwinner,sun50i-a64-sram-controller
deprecated: true deprecated: true
- const: allwinner,sun4i-a10-system-control - enum:
- const: allwinner,sun5i-a13-system-control - allwinner,sun4i-a10-system-control
- allwinner,sun5i-a13-system-control
- allwinner,sun8i-a23-system-control
- allwinner,sun8i-h3-system-control
- allwinner,sun20i-d1-system-control
- allwinner,sun50i-a64-system-control
- allwinner,sun50i-h5-system-control
- allwinner,sun50i-h616-system-control
- items: - items:
- const: allwinner,sun7i-a20-system-control - enum:
- allwinner,suniv-f1c100s-system-control
- allwinner,sun7i-a20-system-control
- allwinner,sun8i-r40-system-control
- const: allwinner,sun4i-a10-system-control - const: allwinner,sun4i-a10-system-control
- const: allwinner,sun8i-a23-system-control
- const: allwinner,sun8i-h3-system-control
- items: - items:
- const: allwinner,sun8i-v3s-system-control - const: allwinner,sun8i-v3s-system-control
- const: allwinner,sun8i-h3-system-control - const: allwinner,sun8i-h3-system-control
- items:
- const: allwinner,sun8i-r40-system-control
- const: allwinner,sun4i-a10-system-control
- const: allwinner,sun50i-a64-sram-controller
deprecated: true
- const: allwinner,sun50i-a64-system-control
- const: allwinner,sun50i-h5-system-control
- items: - items:
- const: allwinner,sun50i-h6-system-control - const: allwinner,sun50i-h6-system-control
- const: allwinner,sun50i-a64-system-control - const: allwinner,sun50i-a64-system-control
- items:
- const: allwinner,suniv-f1c100s-system-control
- const: allwinner,sun4i-a10-system-control
- const: allwinner,sun50i-h616-system-control
reg: reg:
maxItems: 1 maxItems: 1
@ -76,43 +75,26 @@ patternProperties:
- const: allwinner,sun4i-a10-sram-d - const: allwinner,sun4i-a10-sram-d
- const: allwinner,sun50i-a64-sram-c - const: allwinner,sun50i-a64-sram-c
- items: - items:
- const: allwinner,sun5i-a13-sram-a3-a4 - enum:
- allwinner,sun5i-a13-sram-a3-a4
- allwinner,sun7i-a20-sram-a3-a4
- const: allwinner,sun4i-a10-sram-a3-a4 - const: allwinner,sun4i-a10-sram-a3-a4
- items: - items:
- const: allwinner,sun7i-a20-sram-a3-a4 - enum:
- const: allwinner,sun4i-a10-sram-a3-a4 - allwinner,sun5i-a13-sram-c1
- items: - allwinner,sun7i-a20-sram-c1
- const: allwinner,sun5i-a13-sram-c1 - allwinner,sun8i-a23-sram-c1
- allwinner,sun8i-h3-sram-c1
- allwinner,sun8i-r40-sram-c1
- allwinner,sun50i-a64-sram-c1
- allwinner,sun50i-h5-sram-c1
- allwinner,sun50i-h6-sram-c1
- const: allwinner,sun4i-a10-sram-c1 - const: allwinner,sun4i-a10-sram-c1
- items: - items:
- const: allwinner,sun7i-a20-sram-c1 - enum:
- const: allwinner,sun4i-a10-sram-c1 - allwinner,suniv-f1c100s-sram-d
- items: - allwinner,sun5i-a13-sram-d
- const: allwinner,sun8i-a23-sram-c1 - allwinner,sun7i-a20-sram-d
- const: allwinner,sun4i-a10-sram-c1
- items:
- const: allwinner,sun8i-h3-sram-c1
- const: allwinner,sun4i-a10-sram-c1
- items:
- const: allwinner,sun8i-r40-sram-c1
- const: allwinner,sun4i-a10-sram-c1
- items:
- const: allwinner,sun50i-a64-sram-c1
- const: allwinner,sun4i-a10-sram-c1
- items:
- const: allwinner,sun50i-h5-sram-c1
- const: allwinner,sun4i-a10-sram-c1
- items:
- const: allwinner,sun50i-h6-sram-c1
- const: allwinner,sun4i-a10-sram-c1
- items:
- const: allwinner,sun5i-a13-sram-d
- const: allwinner,sun4i-a10-sram-d
- items:
- const: allwinner,sun7i-a20-sram-d
- const: allwinner,sun4i-a10-sram-d
- items:
- const: allwinner,suniv-f1c100s-sram-d
- const: allwinner,sun4i-a10-sram-d - const: allwinner,sun4i-a10-sram-d
- items: - items:
- const: allwinner,sun50i-h6-sram-c - const: allwinner,sun50i-h6-sram-c

View File

@ -101,6 +101,18 @@
#reset-cells = <1>; #reset-cells = <1>;
}; };
dma: dma-controller@3002000 {
compatible = "allwinner,sun50i-a100-dma";
reg = <0x03002000 0x1000>;
interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_BUS_DMA>, <&ccu CLK_MBUS_DMA>;
clock-names = "bus", "mbus";
resets = <&ccu RST_BUS_DMA>;
dma-channels = <8>;
dma-requests = <52>;
#dma-cells = <1>;
};
gic: interrupt-controller@3021000 { gic: interrupt-controller@3021000 {
compatible = "arm,gic-400"; compatible = "arm,gic-400";
reg = <0x03021000 0x1000>, <0x03022000 0x2000>, reg = <0x03021000 0x1000>, <0x03022000 0x2000>,
@ -209,6 +221,8 @@
interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_BUS_I2C0>; clocks = <&ccu CLK_BUS_I2C0>;
resets = <&ccu RST_BUS_I2C0>; resets = <&ccu RST_BUS_I2C0>;
dmas = <&dma 43>, <&dma 43>;
dma-names = "rx", "tx";
status = "disabled"; status = "disabled";
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
@ -222,6 +236,8 @@
interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_BUS_I2C1>; clocks = <&ccu CLK_BUS_I2C1>;
resets = <&ccu RST_BUS_I2C1>; resets = <&ccu RST_BUS_I2C1>;
dmas = <&dma 44>, <&dma 44>;
dma-names = "rx", "tx";
status = "disabled"; status = "disabled";
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
@ -235,6 +251,8 @@
interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_BUS_I2C2>; clocks = <&ccu CLK_BUS_I2C2>;
resets = <&ccu RST_BUS_I2C2>; resets = <&ccu RST_BUS_I2C2>;
dmas = <&dma 45>, <&dma 45>;
dma-names = "rx", "tx";
status = "disabled"; status = "disabled";
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
@ -248,6 +266,8 @@
interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_BUS_I2C3>; clocks = <&ccu CLK_BUS_I2C3>;
resets = <&ccu RST_BUS_I2C3>; resets = <&ccu RST_BUS_I2C3>;
dmas = <&dma 46>, <&dma 46>;
dma-names = "rx", "tx";
status = "disabled"; status = "disabled";
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
@ -325,6 +345,8 @@
interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&r_ccu CLK_R_APB2_I2C0>; clocks = <&r_ccu CLK_R_APB2_I2C0>;
resets = <&r_ccu RST_R_APB2_I2C0>; resets = <&r_ccu RST_R_APB2_I2C0>;
dmas = <&dma 50>, <&dma 50>;
dma-names = "rx", "tx";
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&r_i2c0_pins>; pinctrl-0 = <&r_i2c0_pins>;
status = "disabled"; status = "disabled";
@ -340,6 +362,8 @@
interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&r_ccu CLK_R_APB2_I2C1>; clocks = <&r_ccu CLK_R_APB2_I2C1>;
resets = <&r_ccu RST_R_APB2_I2C1>; resets = <&r_ccu RST_R_APB2_I2C1>;
dmas = <&dma 51>, <&dma 51>;
dma-names = "rx", "tx";
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&r_i2c1_pins>; pinctrl-0 = <&r_i2c1_pins>;
status = "disabled"; status = "disabled";

View File

@ -5,6 +5,7 @@
#include "sun50i-h6.dtsi" #include "sun50i-h6.dtsi"
#include "sun50i-h6-cpu-opp.dtsi" #include "sun50i-h6-cpu-opp.dtsi"
#include "sun50i-h6-gpu-opp.dtsi"
#include <dt-bindings/gpio/gpio.h> #include <dt-bindings/gpio/gpio.h>

View File

@ -0,0 +1,87 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
// Copyright (C) 2022 Clément Péron <peron.clem@gmail.com>
/ {
gpu_opp_table: opp-table-gpu {
compatible = "operating-points-v2";
opp-216000000 {
opp-hz = /bits/ 64 <216000000>;
opp-microvolt = <810000 810000 1200000>;
};
opp-264000000 {
opp-hz = /bits/ 64 <264000000>;
opp-microvolt = <810000 810000 1200000>;
};
opp-312000000 {
opp-hz = /bits/ 64 <312000000>;
opp-microvolt = <810000 810000 1200000>;
};
opp-336000000 {
opp-hz = /bits/ 64 <336000000>;
opp-microvolt = <810000 810000 1200000>;
};
opp-360000000 {
opp-hz = /bits/ 64 <360000000>;
opp-microvolt = <820000 820000 1200000>;
};
opp-384000000 {
opp-hz = /bits/ 64 <384000000>;
opp-microvolt = <830000 830000 1200000>;
};
opp-408000000 {
opp-hz = /bits/ 64 <408000000>;
opp-microvolt = <840000 840000 1200000>;
};
opp-420000000 {
opp-hz = /bits/ 64 <420000000>;
opp-microvolt = <850000 850000 1200000>;
};
opp-432000000 {
opp-hz = /bits/ 64 <432000000>;
opp-microvolt = <860000 860000 1200000>;
};
opp-456000000 {
opp-hz = /bits/ 64 <456000000>;
opp-microvolt = <870000 870000 1200000>;
};
opp-504000000 {
opp-hz = /bits/ 64 <504000000>;
opp-microvolt = <890000 890000 1200000>;
};
opp-540000000 {
opp-hz = /bits/ 64 <540000000>;
opp-microvolt = <910000 910000 1200000>;
};
opp-576000000 {
opp-hz = /bits/ 64 <576000000>;
opp-microvolt = <930000 930000 1200000>;
};
opp-624000000 {
opp-hz = /bits/ 64 <624000000>;
opp-microvolt = <950000 950000 1200000>;
};
opp-756000000 {
opp-hz = /bits/ 64 <756000000>;
opp-microvolt = <1040000 1040000 1200000>;
};
};
};
&gpu {
operating-points-v2 = <&gpu_opp_table>;
};

View File

@ -186,6 +186,7 @@
clocks = <&ccu CLK_GPU>, <&ccu CLK_BUS_GPU>; clocks = <&ccu CLK_GPU>, <&ccu CLK_BUS_GPU>;
clock-names = "core", "bus"; clock-names = "core", "bus";
resets = <&ccu RST_BUS_GPU>; resets = <&ccu RST_BUS_GPU>;
#cooling-cells = <2>;
status = "disabled"; status = "disabled";
}; };
@ -1072,9 +1073,55 @@
}; };
gpu-thermal { gpu-thermal {
polling-delay-passive = <0>; polling-delay-passive = <1000>;
polling-delay = <0>; polling-delay = <2000>;
thermal-sensors = <&ths 1>; thermal-sensors = <&ths 1>;
trips {
gpu_alert0: gpu-alert-0 {
temperature = <95000>;
hysteresis = <2000>;
type = "passive";
};
gpu_alert1: gpu-alert-1 {
temperature = <100000>;
hysteresis = <2000>;
type = "passive";
};
gpu_alert2: gpu-alert-2 {
temperature = <105000>;
hysteresis = <2000>;
type = "passive";
};
gpu-crit {
temperature = <115000>;
hysteresis = <0>;
type = "critical";
};
};
cooling-maps {
// Forbid the GPU to go over 756MHz
map0 {
trip = <&gpu_alert0>;
cooling-device = <&gpu 1 THERMAL_NO_LIMIT>;
};
// Forbid the GPU to go over 624MHz
map1 {
trip = <&gpu_alert1>;
cooling-device = <&gpu 2 THERMAL_NO_LIMIT>;
};
// Forbid the GPU to go over 576MHz
map2 {
trip = <&gpu_alert2>;
cooling-device = <&gpu 3 THERMAL_NO_LIMIT>;
};
};
}; };
}; };
}; };