Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'sunxi-dt-for-6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into soc/dt

Allwinner SoC device tree changes for 6.11

This includes a commit shared with the clk tree. This commit adds clock
and reset indices to the device tree binding, and thus is needed for
both the device tree and driver changes.

ARM64 device tree and binding-only changes
- Add LRADC (low resolution ADC for resistor network based keys) for H616 SoC
- Add cache information for A64, H6, and H616 SoCs
- Correct model names and descriptions for Pine64 boards
- Add GPADC (general purpose ADC) for H616 SoC
- Add ADC joysticks based on GPADC for anbernic-rg35xx-h board
- Add additional CPU OPPs for the H700 on top of existing H616 ones
- Enable DVFS for rg35xx boards
- Add IOMMU for H616 SoC

RISC-V device tree changes
- Add system LDOs to D1s/T113 SoC
- Add ClockworkPi and DevTerm device trees

* tag 'sunxi-dt-for-6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux:
riscv: dts: allwinner: Add ClockworkPi and DevTerm devicetrees
riscv: dts: allwinner: d1s-t113: Add system LDOs
arm64: dts: allwinner: h616: add IOMMU node
arm64: dts: allwinner: rg35xx: Enable DVFS CPU frequency scaling
arm64: dts: allwinner: h616: add additional CPU OPPs for the H700
arm64: dts: allwinner: anbernic-rg35xx-h: Add ADC joysticks
arm64: dts: allwinner: h616: Add GPADC device node
dt-bindings: clock: sun50i-h616-ccu: Add GPADC clocks
ARM: dts: sunxi: remove duplicated entries in makefile
arm64: dts: allwinner: Add cache information to the SoC dtsi for H616
arm64: dts: allwinner: Add cache information to the SoC dtsi for A64
arm64: dts: allwinner: Correct the model names for Pine64 boards
dt-bindings: arm: sunxi: Correct the descriptions for Pine64 boards
arm64: dts: allwinner: Add cache information to the SoC dtsi for H6
ARM: dts: sun50i: Add LRADC node
dt-bindings: input: sun4i-lradc-keys: Add H616 compatible

Link: https://lore.kernel.org/r/ZoQa8r1N8yi7FlPV@wens.tw
Signed-off-by: Arnd Bergmann <arnd@arndb.de>

+558 -94
+8 -8
Documentation/devicetree/bindings/arm/sunxi.yaml
··· 708 708 - const: olimex,a64-teres-i 709 709 - const: allwinner,sun50i-a64 710 710 711 - - description: Pine64 711 + - description: Pine64 PINE A64 712 712 items: 713 713 - const: pine64,pine64 714 714 - const: allwinner,sun50i-a64 715 715 716 - - description: Pine64+ 716 + - description: Pine64 PINE A64+ 717 717 items: 718 718 - const: pine64,pine64-plus 719 719 - const: allwinner,sun50i-a64 ··· 724 724 - const: sochip,s3 725 725 - const: allwinner,sun8i-v3 726 726 727 - - description: Pine64 PineH64 model A 727 + - description: Pine64 PINE H64 Model A 728 728 items: 729 729 - const: pine64,pine-h64 730 730 - const: allwinner,sun50i-h6 731 731 732 - - description: Pine64 PineH64 model B 732 + - description: Pine64 PINE H64 Model B 733 733 items: 734 734 - const: pine64,pine-h64-model-b 735 735 - const: allwinner,sun50i-h6 736 736 737 - - description: Pine64 LTS 737 + - description: Pine64 PINE A64 LTS 738 738 items: 739 739 - const: pine64,pine64-lts 740 740 - const: allwinner,sun50i-r18 ··· 763 763 - const: pine64,pinephone 764 764 - const: allwinner,sun50i-a64 765 765 766 - - description: Pine64 PineTab, Development Sample 766 + - description: Pine64 PineTab Developer Sample 767 767 items: 768 768 - const: pine64,pinetab 769 769 - const: allwinner,sun50i-a64 770 770 771 - - description: Pine64 PineTab, Early Adopter's batch (and maybe later ones) 771 + - description: Pine64 PineTab Early Adopter 772 772 items: 773 773 - const: pine64,pinetab-early-adopter 774 774 - const: allwinner,sun50i-a64 775 775 776 - - description: Pine64 SoPine Baseboard 776 + - description: Pine64 SOPINE 777 777 items: 778 778 - const: pine64,sopine-baseboard 779 779 - const: pine64,sopine
+3 -1
Documentation/devicetree/bindings/input/allwinner,sun4i-a10-lradc-keys.yaml
··· 22 22 - const: allwinner,sun8i-a83t-r-lradc 23 23 - const: allwinner,sun50i-r329-lradc 24 24 - items: 25 - - const: allwinner,sun20i-d1-lradc 25 + - enum: 26 + - allwinner,sun50i-h616-lradc 27 + - allwinner,sun20i-d1-lradc 26 28 - const: allwinner,sun50i-r329-lradc 27 29 28 30 reg:
-62
arch/arm/boot/dts/allwinner/Makefile
··· 261 261 sun8i-v3s-licheepi-zero.dtb \ 262 262 sun8i-v3s-licheepi-zero-dock.dtb \ 263 263 sun8i-v40-bananapi-m2-berry.dtb 264 - dtb-$(CONFIG_MACH_SUN8I) += \ 265 - sun8i-a23-evb.dtb \ 266 - sun8i-a23-gt90h-v4.dtb \ 267 - sun8i-a23-inet86dz.dtb \ 268 - sun8i-a23-ippo-q8h-v5.dtb \ 269 - sun8i-a23-ippo-q8h-v1.2.dtb \ 270 - sun8i-a23-polaroid-mid2407pxe03.dtb \ 271 - sun8i-a23-polaroid-mid2809pxe04.dtb \ 272 - sun8i-a23-q8-tablet.dtb \ 273 - sun8i-a33-et-q8-v1.6.dtb \ 274 - sun8i-a33-ga10h-v1.1.dtb \ 275 - sun8i-a33-inet-d978-rev2.dtb \ 276 - sun8i-a33-ippo-q8h-v1.2.dtb \ 277 - sun8i-a33-olinuxino.dtb \ 278 - sun8i-a33-q8-tablet.dtb \ 279 - sun8i-a33-sinlinx-sina33.dtb \ 280 - sun8i-a83t-allwinner-h8homlet-v2.dtb \ 281 - sun8i-a83t-bananapi-m3.dtb \ 282 - sun8i-a83t-cubietruck-plus.dtb \ 283 - sun8i-a83t-tbs-a711.dtb \ 284 - sun8i-h2-plus-bananapi-m2-zero.dtb \ 285 - sun8i-h2-plus-libretech-all-h3-cc.dtb \ 286 - sun8i-h2-plus-orangepi-r1.dtb \ 287 - sun8i-h2-plus-orangepi-zero.dtb \ 288 - sun8i-h3-bananapi-m2-plus.dtb \ 289 - sun8i-h3-bananapi-m2-plus-v1.2.dtb \ 290 - sun8i-h3-beelink-x2.dtb \ 291 - sun8i-h3-libretech-all-h3-cc.dtb \ 292 - sun8i-h3-mapleboard-mp130.dtb \ 293 - sun8i-h3-nanopi-duo2.dtb \ 294 - sun8i-h3-nanopi-m1.dtb\ 295 - \ 296 - sun8i-h3-nanopi-m1-plus.dtb \ 297 - sun8i-h3-nanopi-neo.dtb \ 298 - sun8i-h3-nanopi-neo-air.dtb \ 299 - sun8i-h3-nanopi-r1.dtb \ 300 - sun8i-h3-orangepi-2.dtb \ 301 - sun8i-h3-orangepi-lite.dtb \ 302 - sun8i-h3-orangepi-one.dtb \ 303 - sun8i-h3-orangepi-pc.dtb \ 304 - sun8i-h3-orangepi-pc-plus.dtb \ 305 - sun8i-h3-orangepi-plus.dtb \ 306 - sun8i-h3-orangepi-plus2e.dtb \ 307 - sun8i-h3-orangepi-zero-plus2.dtb \ 308 - sun8i-h3-rervision-dvk.dtb \ 309 - sun8i-h3-zeropi.dtb \ 310 - sun8i-h3-emlid-neutis-n5h3-devboard.dtb \ 311 - sun8i-r16-bananapi-m2m.dtb \ 312 - sun8i-r16-nintendo-nes-classic.dtb \ 313 - sun8i-r16-nintendo-super-nes-classic.dtb \ 314 - sun8i-r16-parrot.dtb \ 315 - sun8i-r40-bananapi-m2-ultra.dtb \ 316 - sun8i-r40-oka40i-c.dtb \ 317 - sun8i-s3-elimo-initium.dtb \ 318 - sun8i-s3-lichee-zero-plus.dtb \ 319 - sun8i-s3-pinecube.dtb \ 320 - sun8i-t113s-mangopi-mq-r-t113.dtb \ 321 - sun8i-t3-cqa3t-bv3.dtb \ 322 - sun8i-v3-sl631-imx179.dtb \ 323 - sun8i-v3s-licheepi-zero.dtb \ 324 - sun8i-v3s-licheepi-zero-dock.dtb \ 325 - sun8i-v40-bananapi-m2-berry.dtb 326 264 dtb-$(CONFIG_MACH_SUN9I) += \ 327 265 sun9i-a80-optimus.dtb \ 328 266 sun9i-a80-cubieboard4.dtb
+1 -1
arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-lts.dts
··· 5 5 #include "sun50i-a64-sopine-baseboard.dts" 6 6 7 7 / { 8 - model = "Pine64 LTS"; 8 + model = "Pine64 PINE A64 LTS"; 9 9 compatible = "pine64,pine64-lts", "allwinner,sun50i-r18", 10 10 "allwinner,sun50i-a64"; 11 11
+1 -1
arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-plus.dts
··· 4 4 #include "sun50i-a64-pine64.dts" 5 5 6 6 / { 7 - model = "Pine64+"; 7 + model = "Pine64 PINE A64+"; 8 8 compatible = "pine64,pine64-plus", "allwinner,sun50i-a64"; 9 9 10 10 /* TODO: Camera, touchscreen, etc. */
+1 -1
arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts
··· 9 9 #include <dt-bindings/gpio/gpio.h> 10 10 11 11 / { 12 - model = "Pine64"; 12 + model = "Pine64 PINE A64"; 13 13 compatible = "pine64,pine64", "allwinner,sun50i-a64"; 14 14 15 15 aliases {
+1 -1
arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts
··· 13 13 #include <dt-bindings/pwm/pwm.h> 14 14 15 15 / { 16 - model = "Pinebook"; 16 + model = "Pine64 Pinebook"; 17 17 compatible = "pine64,pinebook", "allwinner,sun50i-a64"; 18 18 chassis-type = "laptop"; 19 19
+1 -1
arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab-early-adopter.dts
··· 9 9 #include "sun50i-a64-pinetab.dts" 10 10 11 11 / { 12 - model = "PineTab, Early Adopter's version"; 12 + model = "Pine64 PineTab Early Adopter"; 13 13 compatible = "pine64,pinetab-early-adopter", "allwinner,sun50i-a64"; 14 14 }; 15 15
+1 -1
arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab.dts
··· 14 14 #include <dt-bindings/pwm/pwm.h> 15 15 16 16 / { 17 - model = "PineTab, Development Sample"; 17 + model = "Pine64 PineTab Developer Sample"; 18 18 compatible = "pine64,pinetab", "allwinner,sun50i-a64"; 19 19 chassis-type = "tablet"; 20 20
+1 -1
arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts
··· 8 8 #include "sun50i-a64-sopine.dtsi" 9 9 10 10 / { 11 - model = "SoPine with baseboard"; 11 + model = "Pine64 SOPINE on Baseboard carrier board"; 12 12 compatible = "pine64,sopine-baseboard", "pine64,sopine", 13 13 "allwinner,sun50i-a64"; 14 14
+32 -5
arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
··· 51 51 device_type = "cpu"; 52 52 reg = <0>; 53 53 enable-method = "psci"; 54 - next-level-cache = <&L2>; 55 54 clocks = <&ccu CLK_CPUX>; 56 55 clock-names = "cpu"; 57 56 #cooling-cells = <2>; 57 + i-cache-size = <0x8000>; 58 + i-cache-line-size = <64>; 59 + i-cache-sets = <256>; 60 + d-cache-size = <0x8000>; 61 + d-cache-line-size = <64>; 62 + d-cache-sets = <128>; 63 + next-level-cache = <&l2_cache>; 58 64 }; 59 65 60 66 cpu1: cpu@1 { ··· 68 62 device_type = "cpu"; 69 63 reg = <1>; 70 64 enable-method = "psci"; 71 - next-level-cache = <&L2>; 72 65 clocks = <&ccu CLK_CPUX>; 73 66 clock-names = "cpu"; 74 67 #cooling-cells = <2>; 68 + i-cache-size = <0x8000>; 69 + i-cache-line-size = <64>; 70 + i-cache-sets = <256>; 71 + d-cache-size = <0x8000>; 72 + d-cache-line-size = <64>; 73 + d-cache-sets = <128>; 74 + next-level-cache = <&l2_cache>; 75 75 }; 76 76 77 77 cpu2: cpu@2 { ··· 85 73 device_type = "cpu"; 86 74 reg = <2>; 87 75 enable-method = "psci"; 88 - next-level-cache = <&L2>; 89 76 clocks = <&ccu CLK_CPUX>; 90 77 clock-names = "cpu"; 91 78 #cooling-cells = <2>; 79 + i-cache-size = <0x8000>; 80 + i-cache-line-size = <64>; 81 + i-cache-sets = <256>; 82 + d-cache-size = <0x8000>; 83 + d-cache-line-size = <64>; 84 + d-cache-sets = <128>; 85 + next-level-cache = <&l2_cache>; 92 86 }; 93 87 94 88 cpu3: cpu@3 { ··· 102 84 device_type = "cpu"; 103 85 reg = <3>; 104 86 enable-method = "psci"; 105 - next-level-cache = <&L2>; 106 87 clocks = <&ccu CLK_CPUX>; 107 88 clock-names = "cpu"; 108 89 #cooling-cells = <2>; 90 + i-cache-size = <0x8000>; 91 + i-cache-line-size = <64>; 92 + i-cache-sets = <256>; 93 + d-cache-size = <0x8000>; 94 + d-cache-line-size = <64>; 95 + d-cache-sets = <128>; 96 + next-level-cache = <&l2_cache>; 109 97 }; 110 98 111 - L2: l2-cache { 99 + l2_cache: l2-cache { 112 100 compatible = "cache"; 113 101 cache-level = <2>; 114 102 cache-unified; 103 + cache-size = <0x80000>; 104 + cache-line-size = <64>; 105 + cache-sets = <512>; 115 106 }; 116 107 }; 117 108
+1 -1
arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64-model-b.dts
··· 8 8 /delete-node/ &reg_gmac_3v3; 9 9 10 10 / { 11 - model = "Pine H64 model B"; 11 + model = "Pine64 PINE H64 Model B"; 12 12 compatible = "pine64,pine-h64-model-b", "allwinner,sun50i-h6"; 13 13 14 14 wifi_pwrseq: pwrseq {
+1 -1
arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts
··· 9 9 #include <dt-bindings/gpio/gpio.h> 10 10 11 11 / { 12 - model = "Pine H64 model A"; 12 + model = "Pine64 PINE H64 Model A"; 13 13 compatible = "pine64,pine-h64", "allwinner,sun50i-h6"; 14 14 15 15 aliases {
+37
arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi
··· 29 29 clocks = <&ccu CLK_CPUX>; 30 30 clock-latency-ns = <244144>; /* 8 32k periods */ 31 31 #cooling-cells = <2>; 32 + i-cache-size = <0x8000>; 33 + i-cache-line-size = <64>; 34 + i-cache-sets = <256>; 35 + d-cache-size = <0x8000>; 36 + d-cache-line-size = <64>; 37 + d-cache-sets = <128>; 38 + next-level-cache = <&l2_cache>; 32 39 }; 33 40 34 41 cpu1: cpu@1 { ··· 46 39 clocks = <&ccu CLK_CPUX>; 47 40 clock-latency-ns = <244144>; /* 8 32k periods */ 48 41 #cooling-cells = <2>; 42 + i-cache-size = <0x8000>; 43 + i-cache-line-size = <64>; 44 + i-cache-sets = <256>; 45 + d-cache-size = <0x8000>; 46 + d-cache-line-size = <64>; 47 + d-cache-sets = <128>; 48 + next-level-cache = <&l2_cache>; 49 49 }; 50 50 51 51 cpu2: cpu@2 { ··· 63 49 clocks = <&ccu CLK_CPUX>; 64 50 clock-latency-ns = <244144>; /* 8 32k periods */ 65 51 #cooling-cells = <2>; 52 + i-cache-size = <0x8000>; 53 + i-cache-line-size = <64>; 54 + i-cache-sets = <256>; 55 + d-cache-size = <0x8000>; 56 + d-cache-line-size = <64>; 57 + d-cache-sets = <128>; 58 + next-level-cache = <&l2_cache>; 66 59 }; 67 60 68 61 cpu3: cpu@3 { ··· 80 59 clocks = <&ccu CLK_CPUX>; 81 60 clock-latency-ns = <244144>; /* 8 32k periods */ 82 61 #cooling-cells = <2>; 62 + i-cache-size = <0x8000>; 63 + i-cache-line-size = <64>; 64 + i-cache-sets = <256>; 65 + d-cache-size = <0x8000>; 66 + d-cache-line-size = <64>; 67 + d-cache-sets = <128>; 68 + next-level-cache = <&l2_cache>; 69 + }; 70 + 71 + l2_cache: l2-cache { 72 + compatible = "cache"; 73 + cache-level = <2>; 74 + cache-unified; 75 + cache-size = <0x80000>; 76 + cache-line-size = <64>; 77 + cache-sets = <512>; 83 78 }; 84 79 }; 85 80
+18 -7
arch/arm64/boot/dts/allwinner/sun50i-h616-cpu-opp.dtsi
··· 11 11 opp-hz = /bits/ 64 <480000000>; 12 12 opp-microvolt = <900000>; 13 13 clock-latency-ns = <244144>; /* 8 32k periods */ 14 - opp-supported-hw = <0x1f>; 14 + opp-supported-hw = <0x3f>; 15 15 }; 16 16 17 17 opp-600000000 { ··· 25 25 opp-hz = /bits/ 64 <720000000>; 26 26 opp-microvolt = <900000>; 27 27 clock-latency-ns = <244144>; /* 8 32k periods */ 28 - opp-supported-hw = <0x0d>; 28 + opp-supported-hw = <0x2d>; 29 29 }; 30 30 31 31 opp-792000000 { ··· 50 50 opp-microvolt-speed2 = <950000>; 51 51 opp-microvolt-speed3 = <950000>; 52 52 opp-microvolt-speed4 = <1020000>; 53 + opp-microvolt-speed5 = <900000>; 53 54 clock-latency-ns = <244144>; /* 8 32k periods */ 54 - opp-supported-hw = <0x1f>; 55 + opp-supported-hw = <0x3f>; 56 + }; 57 + 58 + opp-1032000000 { 59 + opp-hz = /bits/ 64 <1032000000>; 60 + opp-microvolt = <900000>; 61 + clock-latency-ns = <244144>; /* 8 32k periods */ 62 + opp-supported-hw = <0x20>; 55 63 }; 56 64 57 65 opp-1104000000 { ··· 67 59 opp-microvolt-speed0 = <1000000>; 68 60 opp-microvolt-speed2 = <1000000>; 69 61 opp-microvolt-speed3 = <1000000>; 62 + opp-microvolt-speed5 = <950000>; 70 63 clock-latency-ns = <244144>; /* 8 32k periods */ 71 - opp-supported-hw = <0x0d>; 64 + opp-supported-hw = <0x2d>; 72 65 }; 73 66 74 67 opp-1200000000 { ··· 79 70 opp-microvolt-speed2 = <1050000>; 80 71 opp-microvolt-speed3 = <1050000>; 81 72 opp-microvolt-speed4 = <1100000>; 73 + opp-microvolt-speed5 = <1020000>; 82 74 clock-latency-ns = <244144>; /* 8 32k periods */ 83 - opp-supported-hw = <0x1f>; 75 + opp-supported-hw = <0x3f>; 84 76 }; 85 77 86 78 opp-1320000000 { ··· 95 85 opp-hz = /bits/ 64 <1416000000>; 96 86 opp-microvolt = <1100000>; 97 87 clock-latency-ns = <244144>; /* 8 32k periods */ 98 - opp-supported-hw = <0x0d>; 88 + opp-supported-hw = <0x2d>; 99 89 }; 100 90 101 91 opp-1512000000 { 102 92 opp-hz = /bits/ 64 <1512000000>; 103 93 opp-microvolt-speed1 = <1100000>; 104 94 opp-microvolt-speed3 = <1100000>; 95 + opp-microvolt-speed5 = <1160000>; 105 96 clock-latency-ns = <244144>; /* 8 32k periods */ 106 - opp-supported-hw = <0x0a>; 97 + opp-supported-hw = <0x2a>; 107 98 }; 108 99 }; 109 100 };
+67
arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
··· 27 27 enable-method = "psci"; 28 28 clocks = <&ccu CLK_CPUX>; 29 29 #cooling-cells = <2>; 30 + i-cache-size = <0x8000>; 31 + i-cache-line-size = <64>; 32 + i-cache-sets = <256>; 33 + d-cache-size = <0x8000>; 34 + d-cache-line-size = <64>; 35 + d-cache-sets = <128>; 36 + next-level-cache = <&l2_cache>; 30 37 }; 31 38 32 39 cpu1: cpu@1 { ··· 43 36 enable-method = "psci"; 44 37 clocks = <&ccu CLK_CPUX>; 45 38 #cooling-cells = <2>; 39 + i-cache-size = <0x8000>; 40 + i-cache-line-size = <64>; 41 + i-cache-sets = <256>; 42 + d-cache-size = <0x8000>; 43 + d-cache-line-size = <64>; 44 + d-cache-sets = <128>; 45 + next-level-cache = <&l2_cache>; 46 46 }; 47 47 48 48 cpu2: cpu@2 { ··· 59 45 enable-method = "psci"; 60 46 clocks = <&ccu CLK_CPUX>; 61 47 #cooling-cells = <2>; 48 + i-cache-size = <0x8000>; 49 + i-cache-line-size = <64>; 50 + i-cache-sets = <256>; 51 + d-cache-size = <0x8000>; 52 + d-cache-line-size = <64>; 53 + d-cache-sets = <128>; 54 + next-level-cache = <&l2_cache>; 62 55 }; 63 56 64 57 cpu3: cpu@3 { ··· 75 54 enable-method = "psci"; 76 55 clocks = <&ccu CLK_CPUX>; 77 56 #cooling-cells = <2>; 57 + i-cache-size = <0x8000>; 58 + i-cache-line-size = <64>; 59 + i-cache-sets = <256>; 60 + d-cache-size = <0x8000>; 61 + d-cache-line-size = <64>; 62 + d-cache-sets = <128>; 63 + next-level-cache = <&l2_cache>; 64 + }; 65 + 66 + l2_cache: l2-cache { 67 + compatible = "cache"; 68 + cache-level = <2>; 69 + cache-unified; 70 + cache-size = <0x40000>; 71 + cache-line-size = <64>; 72 + cache-sets = <256>; 78 73 }; 79 74 }; 80 75 ··· 341 304 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 342 305 interrupt-controller; 343 306 #interrupt-cells = <3>; 307 + }; 308 + 309 + iommu: iommu@30f0000 { 310 + compatible = "allwinner,sun50i-h616-iommu"; 311 + reg = <0x030f0000 0x10000>; 312 + interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>; 313 + clocks = <&ccu CLK_BUS_IOMMU>; 314 + resets = <&ccu RST_BUS_IOMMU>; 315 + #iommu-cells = <1>; 344 316 }; 345 317 346 318 mmc0: mmc@4020000 { ··· 635 589 status = "disabled"; 636 590 }; 637 591 592 + gpadc: adc@5070000 { 593 + compatible = "allwinner,sun50i-h616-gpadc", 594 + "allwinner,sun20i-d1-gpadc"; 595 + reg = <0x05070000 0x400>; 596 + clocks = <&ccu CLK_BUS_GPADC>; 597 + resets = <&ccu RST_BUS_GPADC>; 598 + interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>; 599 + status = "disabled"; 600 + #io-channel-cells = <1>; 601 + }; 602 + 638 603 ths: thermal-sensor@5070400 { 639 604 compatible = "allwinner,sun50i-h616-ths"; 640 605 reg = <0x05070400 0x400>; ··· 657 600 nvmem-cell-names = "calibration"; 658 601 allwinner,sram = <&syscon>; 659 602 #thermal-sensor-cells = <1>; 603 + }; 604 + 605 + lradc: lradc@5070800 { 606 + compatible = "allwinner,sun50i-h616-lradc", 607 + "allwinner,sun50i-r329-lradc"; 608 + reg = <0x05070800 0x400>; 609 + interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; 610 + clocks = <&ccu CLK_BUS_KEYADC>; 611 + resets = <&ccu RST_BUS_KEYADC>; 612 + status = "disabled"; 660 613 }; 661 614 662 615 usbotg: usb@5100000 {
+2 -2
arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-2024.dts
··· 6 6 /dts-v1/; 7 7 8 8 #include "sun50i-h616.dtsi" 9 - 9 + #include "sun50i-h616-cpu-opp.dtsi" 10 10 #include <dt-bindings/gpio/gpio.h> 11 11 #include <dt-bindings/input/linux-event-codes.h> 12 12 #include <dt-bindings/interrupt-controller/arm-gic.h> ··· 221 221 reg_dcdc1: dcdc1 { 222 222 regulator-always-on; 223 223 regulator-min-microvolt = <900000>; 224 - regulator-max-microvolt = <1100000>; 224 + regulator-max-microvolt = <1160000>; 225 225 regulator-name = "vdd-cpu"; 226 226 }; 227 227
+79
arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-h.dts
··· 9 9 / { 10 10 model = "Anbernic RG35XX H"; 11 11 compatible = "anbernic,rg35xx-h", "allwinner,sun50i-h700"; 12 + 13 + adc-joystick { 14 + compatible = "adc-joystick"; 15 + io-channels = <&adc_mux 0>, 16 + <&adc_mux 1>, 17 + <&adc_mux 2>, 18 + <&adc_mux 3>; 19 + pinctrl-0 = <&joy_mux_pin>; 20 + pinctrl-names = "default"; 21 + poll-interval = <60>; 22 + #address-cells = <1>; 23 + #size-cells = <0>; 24 + 25 + axis@0 { 26 + reg = <0>; 27 + abs-flat = <32>; 28 + abs-fuzz = <32>; 29 + abs-range = <4096 0>; 30 + linux,code = <ABS_X>; 31 + }; 32 + 33 + axis@1 { 34 + reg = <1>; 35 + abs-flat = <32>; 36 + abs-fuzz = <32>; 37 + abs-range = <0 4096>; 38 + linux,code = <ABS_Y>; 39 + }; 40 + 41 + axis@2 { 42 + reg = <2>; 43 + abs-flat = <32>; 44 + abs-fuzz = <32>; 45 + abs-range = <0 4096>; 46 + linux,code = <ABS_RX>; 47 + }; 48 + 49 + axis@3 { 50 + reg = <3>; 51 + abs-flat = <32>; 52 + abs-fuzz = <32>; 53 + abs-range = <4096 0>; 54 + linux,code = <ABS_RY>; 55 + }; 56 + }; 57 + 58 + adc_mux: adc-mux { 59 + compatible = "io-channel-mux"; 60 + channels = "left_x", "left_y", "right_x", "right_y"; 61 + #io-channel-cells = <1>; 62 + io-channels = <&gpadc 0>; 63 + io-channel-names = "parent"; 64 + mux-controls = <&gpio_mux>; 65 + settle-time-us = <100>; 66 + }; 67 + 68 + gpio_mux: mux-controller { 69 + compatible = "gpio-mux"; 70 + mux-gpios = <&pio 8 1 GPIO_ACTIVE_LOW>, 71 + <&pio 8 2 GPIO_ACTIVE_LOW>; 72 + #mux-control-cells = <0>; 73 + }; 74 + }; 75 + 76 + &gpadc { 77 + #address-cells = <1>; 78 + #size-cells = <0>; 79 + status = "okay"; 80 + 81 + channel@0 { 82 + reg = <0>; 83 + }; 12 84 }; 13 85 14 86 &gpio_keys_gamepad { ··· 105 33 106 34 &ohci1 { 107 35 status = "okay"; 36 + }; 37 + 38 + &pio { 39 + joy_mux_pin: joy-mux-pin { 40 + pins = "PI0"; 41 + function = "gpio_out"; 42 + }; 108 43 };
+2
arch/riscv/boot/dts/allwinner/Makefile
··· 1 1 # SPDX-License-Identifier: GPL-2.0 2 + dtb-$(CONFIG_ARCH_SUNXI) += sun20i-d1-clockworkpi-v3.14.dtb 3 + dtb-$(CONFIG_ARCH_SUNXI) += sun20i-d1-devterm-v3.14.dtb 2 4 dtb-$(CONFIG_ARCH_SUNXI) += sun20i-d1-dongshan-nezha-stu.dtb 3 5 dtb-$(CONFIG_ARCH_SUNXI) += sun20i-d1-lichee-rv-86-panel-480p.dtb 4 6 dtb-$(CONFIG_ARCH_SUNXI) += sun20i-d1-lichee-rv-86-panel-720p.dtb
+252
arch/riscv/boot/dts/allwinner/sun20i-d1-clockworkpi-v3.14.dts
··· 1 + // SPDX-License-Identifier: (GPL-2.0+ or MIT) 2 + // Copyright (C) 2022 Samuel Holland <samuel@sholland.org> 3 + 4 + #include <dt-bindings/gpio/gpio.h> 5 + 6 + /dts-v1/; 7 + 8 + #include "sun20i-d1.dtsi" 9 + #include "sun20i-common-regulators.dtsi" 10 + 11 + / { 12 + model = "ClockworkPi v3.14 (R-01)"; 13 + compatible = "clockwork,r-01-clockworkpi-v3.14", "allwinner,sun20i-d1"; 14 + 15 + aliases { 16 + ethernet0 = &ap6256; 17 + serial0 = &uart0; 18 + }; 19 + 20 + chosen { 21 + stdout-path = "serial0:115200n8"; 22 + }; 23 + 24 + /* 25 + * This regulator is PWM-controlled, but the PWM controller is not 26 + * yet supported, so fix the regulator to its default voltage. 27 + */ 28 + reg_vdd_cpu: vdd-cpu { 29 + compatible = "regulator-fixed"; 30 + regulator-name = "vdd-cpu"; 31 + regulator-min-microvolt = <1100000>; 32 + regulator-max-microvolt = <1100000>; 33 + vin-supply = <&reg_vcc>; 34 + }; 35 + 36 + wifi_pwrseq: wifi-pwrseq { 37 + compatible = "mmc-pwrseq-simple"; 38 + reset-gpios = <&pio 6 11 GPIO_ACTIVE_LOW>; /* PG11/GPIO3 */ 39 + }; 40 + }; 41 + 42 + &cpu0 { 43 + cpu-supply = <&reg_vdd_cpu>; 44 + }; 45 + 46 + &dcxo { 47 + clock-frequency = <24000000>; 48 + }; 49 + 50 + &ehci1 { 51 + status = "okay"; 52 + }; 53 + 54 + &i2c0 { 55 + pinctrl-0 = <&i2c0_pb10_pins>; 56 + pinctrl-names = "default"; 57 + status = "okay"; 58 + 59 + axp221: pmic@34 { 60 + compatible = "x-powers,axp228", "x-powers,axp221"; 61 + reg = <0x34>; 62 + interrupt-parent = <&pio>; 63 + interrupts = <4 9 IRQ_TYPE_LEVEL_LOW>; /* PE9/GPIO2 */ 64 + interrupt-controller; 65 + #interrupt-cells = <1>; 66 + 67 + ac_power_supply: ac-power { 68 + compatible = "x-powers,axp221-ac-power-supply"; 69 + }; 70 + 71 + axp_adc: adc { 72 + compatible = "x-powers,axp221-adc"; 73 + #io-channel-cells = <1>; 74 + }; 75 + 76 + battery_power_supply: battery-power { 77 + compatible = "x-powers,axp221-battery-power-supply"; 78 + }; 79 + 80 + axp_gpio: gpio { 81 + compatible = "x-powers,axp221-gpio"; 82 + gpio-controller; 83 + #gpio-cells = <2>; 84 + }; 85 + 86 + regulators { 87 + x-powers,dcdc-freq = <3000>; 88 + 89 + reg_dcdc1: dcdc1 { 90 + regulator-name = "sys-3v3"; 91 + regulator-always-on; 92 + regulator-min-microvolt = <3300000>; 93 + regulator-max-microvolt = <3300000>; 94 + }; 95 + 96 + reg_dcdc3: dcdc3 { 97 + regulator-name = "sys-1v8"; 98 + regulator-always-on; 99 + regulator-min-microvolt = <1800000>; 100 + regulator-max-microvolt = <1800000>; 101 + }; 102 + 103 + reg_aldo1: aldo1 { 104 + regulator-name = "aud-3v3"; 105 + regulator-min-microvolt = <3300000>; 106 + regulator-max-microvolt = <3300000>; 107 + }; 108 + 109 + reg_aldo2: aldo2 { 110 + regulator-name = "disp-3v3"; 111 + regulator-always-on; 112 + regulator-min-microvolt = <3300000>; 113 + regulator-max-microvolt = <3300000>; 114 + }; 115 + 116 + reg_aldo3: aldo3 { 117 + regulator-name = "vdd-wifi"; 118 + regulator-min-microvolt = <1800000>; 119 + regulator-max-microvolt = <1800000>; 120 + }; 121 + 122 + /* DLDO1 and ELDO1-3 are connected in parallel. */ 123 + reg_dldo1: dldo1 { 124 + regulator-name = "vbat-wifi-a"; 125 + regulator-always-on; 126 + regulator-min-microvolt = <3300000>; 127 + regulator-max-microvolt = <3300000>; 128 + }; 129 + 130 + /* DLDO2-DLDO4 are connected in parallel. */ 131 + reg_dldo2: dldo2 { 132 + regulator-name = "vcc-3v3-ext-a"; 133 + regulator-always-on; 134 + regulator-min-microvolt = <3300000>; 135 + regulator-max-microvolt = <3300000>; 136 + }; 137 + 138 + reg_dldo3: dldo3 { 139 + regulator-name = "vcc-3v3-ext-b"; 140 + regulator-always-on; 141 + regulator-min-microvolt = <3300000>; 142 + regulator-max-microvolt = <3300000>; 143 + }; 144 + 145 + reg_dldo4: dldo4 { 146 + regulator-name = "vcc-3v3-ext-c"; 147 + regulator-always-on; 148 + regulator-min-microvolt = <3300000>; 149 + regulator-max-microvolt = <3300000>; 150 + }; 151 + 152 + reg_eldo1: eldo1 { 153 + regulator-name = "vbat-wifi-b"; 154 + regulator-always-on; 155 + regulator-min-microvolt = <3300000>; 156 + regulator-max-microvolt = <3300000>; 157 + }; 158 + 159 + reg_eldo2: eldo2 { 160 + regulator-name = "vbat-wifi-c"; 161 + regulator-always-on; 162 + regulator-min-microvolt = <3300000>; 163 + regulator-max-microvolt = <3300000>; 164 + }; 165 + 166 + reg_eldo3: eldo3 { 167 + regulator-name = "vbat-wifi-d"; 168 + regulator-always-on; 169 + regulator-min-microvolt = <3300000>; 170 + regulator-max-microvolt = <3300000>; 171 + }; 172 + }; 173 + 174 + usb_power_supply: usb-power { 175 + compatible = "x-powers,axp221-usb-power-supply"; 176 + status = "disabled"; 177 + }; 178 + }; 179 + }; 180 + 181 + &mmc0 { 182 + broken-cd; 183 + bus-width = <4>; 184 + disable-wp; 185 + vmmc-supply = <&reg_dcdc1>; 186 + vqmmc-supply = <&reg_vcc_3v3>; 187 + pinctrl-0 = <&mmc0_pins>; 188 + pinctrl-names = "default"; 189 + status = "okay"; 190 + }; 191 + 192 + &mmc1 { 193 + bus-width = <4>; 194 + mmc-pwrseq = <&wifi_pwrseq>; 195 + non-removable; 196 + vmmc-supply = <&reg_dldo1>; 197 + vqmmc-supply = <&reg_aldo3>; 198 + pinctrl-0 = <&mmc1_pins>; 199 + pinctrl-names = "default"; 200 + status = "okay"; 201 + 202 + ap6256: wifi@1 { 203 + compatible = "brcm,bcm43456-fmac", "brcm,bcm4329-fmac"; 204 + reg = <1>; 205 + interrupt-parent = <&pio>; 206 + interrupts = <6 10 IRQ_TYPE_LEVEL_LOW>; /* PG10/GPIO4 */ 207 + interrupt-names = "host-wake"; 208 + }; 209 + }; 210 + 211 + &ohci1 { 212 + status = "okay"; 213 + }; 214 + 215 + &pio { 216 + vcc-pg-supply = <&reg_ldoa>; 217 + }; 218 + 219 + &uart0 { 220 + pinctrl-0 = <&uart0_pb8_pins>; 221 + pinctrl-names = "default"; 222 + status = "okay"; 223 + }; 224 + 225 + &uart1 { 226 + uart-has-rtscts; 227 + pinctrl-0 = <&uart1_pg6_pins>, <&uart1_pg8_rts_cts_pins>; 228 + pinctrl-names = "default"; 229 + status = "okay"; 230 + 231 + bluetooth { 232 + compatible = "brcm,bcm4345c5"; 233 + interrupt-parent = <&pio>; 234 + interrupts = <6 17 IRQ_TYPE_LEVEL_HIGH>; /* PG17/GPIO6 */ 235 + device-wakeup-gpios = <&pio 6 16 GPIO_ACTIVE_HIGH>; /* PG16/GPIO7 */ 236 + shutdown-gpios = <&pio 6 18 GPIO_ACTIVE_HIGH>; /* PG18/GPIO5 */ 237 + max-speed = <1500000>; 238 + vbat-supply = <&reg_dldo1>; 239 + vddio-supply = <&reg_aldo3>; 240 + }; 241 + }; 242 + 243 + &usb_otg { 244 + dr_mode = "peripheral"; 245 + status = "okay"; 246 + }; 247 + 248 + &usbphy { 249 + usb0_vbus_power-supply = <&ac_power_supply>; 250 + usb1_vbus-supply = <&reg_vcc>; 251 + status = "okay"; 252 + };
+36
arch/riscv/boot/dts/allwinner/sun20i-d1-devterm-v3.14.dts
··· 1 + // SPDX-License-Identifier: (GPL-2.0+ or MIT) 2 + // Copyright (C) 2022 Samuel Holland <samuel@sholland.org> 3 + 4 + #include "sun20i-d1-clockworkpi-v3.14.dts" 5 + 6 + / { 7 + model = "Clockwork DevTerm (R-01)"; 8 + compatible = "clockwork,r-01-devterm-v3.14", 9 + "clockwork,r-01-clockworkpi-v3.14", 10 + "allwinner,sun20i-d1"; 11 + 12 + fan { 13 + compatible = "gpio-fan"; 14 + gpios = <&pio 3 10 GPIO_ACTIVE_HIGH>; /* PD10/GPIO41 */ 15 + gpio-fan,speed-map = <0 0>, 16 + <6000 1>; 17 + #cooling-cells = <2>; 18 + }; 19 + 20 + i2c-gpio-0 { 21 + compatible = "i2c-gpio"; 22 + sda-gpios = <&pio 3 14 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; /* PD14/GPIO44 */ 23 + scl-gpios = <&pio 3 15 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; /* PD15/GPIO45 */ 24 + #address-cells = <1>; 25 + #size-cells = <0>; 26 + 27 + adc@54 { 28 + compatible = "ti,adc101c"; 29 + reg = <0x54>; 30 + interrupt-parent = <&pio>; 31 + interrupts = <4 12 IRQ_TYPE_LEVEL_LOW>; /* PE12/GPIO35 */ 32 + vref-supply = <&reg_dldo2>; 33 + #io-channel-cells = <1>; 34 + }; 35 + }; 36 + };
+11
arch/riscv/boot/dts/allwinner/sunxi-d1s-t113.dtsi
··· 396 396 ranges; 397 397 #address-cells = <1>; 398 398 #size-cells = <1>; 399 + 400 + regulators@3000150 { 401 + compatible = "allwinner,sun20i-d1-system-ldos"; 402 + reg = <0x3000150 0x4>; 403 + 404 + reg_ldoa: ldoa { 405 + }; 406 + 407 + reg_ldob: ldob { 408 + }; 409 + }; 399 410 }; 400 411 401 412 dma: dma-controller@3002000 {
+1
include/dt-bindings/clock/sun50i-h616-ccu.h
··· 112 112 #define CLK_HDCP 126 113 113 #define CLK_BUS_HDCP 127 114 114 #define CLK_PLL_SYSTEM_32K 128 115 + #define CLK_BUS_GPADC 129 115 116 116 117 #endif /* _DT_BINDINGS_CLK_SUN50I_H616_H_ */
+1
include/dt-bindings/reset/sun50i-h616-ccu.h
··· 66 66 #define RST_BUS_TVE0 57 67 67 #define RST_BUS_HDCP 58 68 68 #define RST_BUS_KEYADC 59 69 + #define RST_BUS_GPADC 60 69 70 70 71 #endif /* _DT_BINDINGS_RESET_SUN50I_H616_H_ */