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

Merge tag 'socfpga_dts_updates_for_v6.6' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux into soc/dt

SoCFPGA DTS updates for v6.6
- Fix dtbs_check warnings for usbphy, sram, rstmgr, memory, partitions
- Updated "stmmaceth-ocp" reset-names to "ahb" for stmmac ethernet
- Add initial support for Agilex5

* tag 'socfpga_dts_updates_for_v6.6' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux:
arm64: dts: agilex5: add initial support for Intel Agilex5 SoCFPGA
dt-bindings: clock: add Intel Agilex5 clock manager
dt-bindings: reset: add reset IDs for Agilex5
dt-bindings: intel: Add Intel Agilex5 compatible
arm64: dts: socfpga: change the reset-name of "stmmaceth-ocp" to "ahb"
arm64: dts: socfpga: n5x/stratix10: fix dtbs_check warning for partitions
arm64: dts: agilex/stratix10: Updated QSPI Flash layout for UBIFS
arm64: dts: agilex/stratix10/n5x: fix dtbs_check for rstmgr
arm64: dts: stratix10/agilex/n5x: fix dtbs_check warning for memory node
arm64: dts: socfpga: stratix10: fix dtbs_check warning for usbphy
arm64: dts: socfpga: agilex/stratix10: fix dtbs_check warnings for sram

Link: https://lore.kernel.org/r/20230819161418.931258-1-dinguyen@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>

+703 -42
+5
Documentation/devicetree/bindings/arm/intel,socfpga.yaml
··· 21 21 - intel,socfpga-agilex-n6000 22 22 - intel,socfpga-agilex-socdk 23 23 - const: intel,socfpga-agilex 24 + - description: Agilex5 boards 25 + items: 26 + - enum: 27 + - intel,socfpga-agilex5-socdk 28 + - const: intel,socfpga-agilex5 24 29 25 30 additionalProperties: true 26 31
+40
Documentation/devicetree/bindings/clock/intel,agilex5-clkmgr.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/clock/intel,agilex5-clkmgr.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Intel SoCFPGA Agilex5 clock manager 8 + 9 + maintainers: 10 + - Dinh Nguyen <dinguyen@kernel.org> 11 + 12 + description: 13 + The Intel Agilex5 Clock Manager is an integrated clock controller, which 14 + generates and supplies clock to all the modules. 15 + 16 + properties: 17 + compatible: 18 + const: intel,agilex5-clkmgr 19 + 20 + reg: 21 + maxItems: 1 22 + 23 + '#clock-cells': 24 + const: 1 25 + 26 + required: 27 + - compatible 28 + - reg 29 + - '#clock-cells' 30 + 31 + additionalProperties: false 32 + 33 + examples: 34 + - | 35 + clkmgr: clock-controller@10d10000 { 36 + compatible = "intel,agilex5-clkmgr"; 37 + reg = <0x10d10000 0x1000>; 38 + #clock-cells = <1>; 39 + }; 40 + ...
+3 -3
arch/arm/boot/dts/intel/socfpga/socfpga_arria10.dtsi
··· 440 440 clocks = <&l4_mp_clk>, <&peri_emac_ptp_clk>; 441 441 clock-names = "stmmaceth", "ptp_ref"; 442 442 resets = <&rst EMAC0_RESET>, <&rst EMAC0_OCP_RESET>; 443 - reset-names = "stmmaceth", "stmmaceth-ocp"; 443 + reset-names = "stmmaceth", "ahb"; 444 444 snps,axi-config = <&socfpga_axi_setup>; 445 445 status = "disabled"; 446 446 }; ··· 460 460 clocks = <&l4_mp_clk>, <&peri_emac_ptp_clk>; 461 461 clock-names = "stmmaceth", "ptp_ref"; 462 462 resets = <&rst EMAC1_RESET>, <&rst EMAC1_OCP_RESET>; 463 - reset-names = "stmmaceth", "stmmaceth-ocp"; 463 + reset-names = "stmmaceth", "ahb"; 464 464 snps,axi-config = <&socfpga_axi_setup>; 465 465 status = "disabled"; 466 466 }; ··· 480 480 clocks = <&l4_mp_clk>, <&peri_emac_ptp_clk>; 481 481 clock-names = "stmmaceth", "ptp_ref"; 482 482 resets = <&rst EMAC2_RESET>, <&rst EMAC2_OCP_RESET>; 483 - reset-names = "stmmaceth", "stmmaceth-ocp"; 483 + reset-names = "stmmaceth", "ahb"; 484 484 snps,axi-config = <&socfpga_axi_setup>; 485 485 status = "disabled"; 486 486 };
+11 -9
arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi
··· 153 153 interrupt-names = "macirq"; 154 154 mac-address = [00 00 00 00 00 00]; 155 155 resets = <&rst EMAC0_RESET>, <&rst EMAC0_OCP_RESET>; 156 - reset-names = "stmmaceth", "stmmaceth-ocp"; 156 + reset-names = "stmmaceth", "ahb"; 157 157 clocks = <&clkmgr STRATIX10_EMAC0_CLK>, <&clkmgr STRATIX10_EMAC_PTP_CLK>; 158 158 clock-names = "stmmaceth", "ptp_ref"; 159 159 tx-fifo-depth = <16384>; ··· 171 171 interrupt-names = "macirq"; 172 172 mac-address = [00 00 00 00 00 00]; 173 173 resets = <&rst EMAC1_RESET>, <&rst EMAC1_OCP_RESET>; 174 - reset-names = "stmmaceth", "stmmaceth-ocp"; 174 + reset-names = "stmmaceth", "ahb"; 175 175 clocks = <&clkmgr STRATIX10_EMAC1_CLK>, <&clkmgr STRATIX10_EMAC_PTP_CLK>; 176 176 clock-names = "stmmaceth", "ptp_ref"; 177 177 tx-fifo-depth = <16384>; ··· 189 189 interrupt-names = "macirq"; 190 190 mac-address = [00 00 00 00 00 00]; 191 191 resets = <&rst EMAC2_RESET>, <&rst EMAC2_OCP_RESET>; 192 - reset-names = "stmmaceth", "stmmaceth-ocp"; 192 + reset-names = "stmmaceth", "ahb"; 193 193 clocks = <&clkmgr STRATIX10_EMAC2_CLK>, <&clkmgr STRATIX10_EMAC_PTP_CLK>; 194 194 clock-names = "stmmaceth", "ptp_ref"; 195 195 tx-fifo-depth = <16384>; ··· 331 331 ocram: sram@ffe00000 { 332 332 compatible = "mmio-sram"; 333 333 reg = <0xffe00000 0x100000>; 334 + #address-cells = <1>; 335 + #size-cells = <1>; 336 + ranges = <0 0xffe00000 0x100000>; 334 337 }; 335 338 336 339 pdma: dma-controller@ffda0000 { ··· 487 484 status = "disabled"; 488 485 }; 489 486 490 - usbphy0: usbphy@0 { 491 - #phy-cells = <0>; 492 - compatible = "usb-nop-xceiv"; 493 - status = "okay"; 494 - }; 495 - 496 487 usb0: usb@ffb00000 { 497 488 compatible = "snps,dwc2"; 498 489 reg = <0xffb00000 0x40000>; ··· 632 635 }; 633 636 }; 634 637 }; 638 + }; 639 + 640 + usbphy0: usbphy0 { 641 + compatible = "usb-nop-xceiv"; 642 + #phy-cells = <0>; 635 643 }; 636 644 };
+6 -6
arch/arm64/boot/dts/altera/socfpga_stratix10_socdk.dts
··· 38 38 }; 39 39 }; 40 40 41 - memory { 41 + memory@80000000 { 42 42 device_type = "memory"; 43 43 /* We expect the bootloader to fill in the reg */ 44 - reg = <0 0 0 0>; 44 + reg = <0 0x80000000 0 0>; 45 45 }; 46 46 47 47 ref_033v: regulator-v-ref { ··· 202 202 203 203 qspi_boot: partition@0 { 204 204 label = "Boot and fpga data"; 205 - reg = <0x0 0x03FE0000>; 205 + reg = <0x0 0x04200000>; 206 206 }; 207 207 208 - qspi_rootfs: partition@3FE0000 { 209 - label = "Root Filesystem - JFFS2"; 210 - reg = <0x03FE0000 0x0C020000>; 208 + root: partition@4200000 { 209 + label = "Root Filesystem - UBIFS"; 210 + reg = <0x04200000 0x0BE00000>; 211 211 }; 212 212 }; 213 213 };
+4 -4
arch/arm64/boot/dts/altera/socfpga_stratix10_socdk_nand.dts
··· 38 38 }; 39 39 }; 40 40 41 - memory { 41 + memory@80000000 { 42 42 device_type = "memory"; 43 43 /* We expect the bootloader to fill in the reg */ 44 - reg = <0 0 0 0>; 44 + reg = <0 0x80000000 0 0>; 45 45 }; 46 46 47 47 ref_033v: regulator-v-ref { ··· 103 103 status = "okay"; 104 104 105 105 flash@0 { 106 + reg = <0>; 106 107 #address-cells = <1>; 107 108 #size-cells = <1>; 108 - reg = <0>; 109 109 nand-bus-width = <16>; 110 110 111 111 partition@0 { ··· 194 194 reg = <0x0 0x03FE0000>; 195 195 }; 196 196 197 - qspi_rootfs: partition@3FE0000 { 197 + qspi_rootfs: partition@3fe0000 { 198 198 label = "Root Filesystem - JFFS2"; 199 199 reg = <0x03FE0000 0x0C020000>; 200 200 };
+1 -1
arch/arm64/boot/dts/altera/socfpga_stratix10_swvp.dts
··· 29 29 linux,initrd-end = <0x125c8324>; 30 30 }; 31 31 32 - memory { 32 + memory@80000000 { 33 33 device_type = "memory"; 34 34 reg = <0x0 0x0 0x0 0x80000000>; 35 35 };
+1
arch/arm64/boot/dts/intel/Makefile
··· 2 2 dtb-$(CONFIG_ARCH_INTEL_SOCFPGA) += socfpga_agilex_n6000.dtb \ 3 3 socfpga_agilex_socdk.dtb \ 4 4 socfpga_agilex_socdk_nand.dtb \ 5 + socfpga_agilex5_socdk.dtb \ 5 6 socfpga_n5x_socdk.dtb 6 7 dtb-$(CONFIG_ARCH_KEEMBAY) += keembay-evm.dtb
+8 -5
arch/arm64/boot/dts/intel/socfpga_agilex.dtsi
··· 158 158 interrupt-names = "macirq"; 159 159 mac-address = [00 00 00 00 00 00]; 160 160 resets = <&rst EMAC0_RESET>, <&rst EMAC0_OCP_RESET>; 161 - reset-names = "stmmaceth", "stmmaceth-ocp"; 161 + reset-names = "stmmaceth", "ahb"; 162 162 tx-fifo-depth = <16384>; 163 163 rx-fifo-depth = <16384>; 164 164 snps,multicast-filter-bins = <256>; ··· 176 176 interrupt-names = "macirq"; 177 177 mac-address = [00 00 00 00 00 00]; 178 178 resets = <&rst EMAC1_RESET>, <&rst EMAC1_OCP_RESET>; 179 - reset-names = "stmmaceth", "stmmaceth-ocp"; 179 + reset-names = "stmmaceth", "ahb"; 180 180 tx-fifo-depth = <16384>; 181 181 rx-fifo-depth = <16384>; 182 182 snps,multicast-filter-bins = <256>; ··· 194 194 interrupt-names = "macirq"; 195 195 mac-address = [00 00 00 00 00 00]; 196 196 resets = <&rst EMAC2_RESET>, <&rst EMAC2_OCP_RESET>; 197 - reset-names = "stmmaceth", "stmmaceth-ocp"; 197 + reset-names = "stmmaceth", "ahb"; 198 198 tx-fifo-depth = <16384>; 199 199 rx-fifo-depth = <16384>; 200 200 snps,multicast-filter-bins = <256>; ··· 336 336 ocram: sram@ffe00000 { 337 337 compatible = "mmio-sram"; 338 338 reg = <0xffe00000 0x40000>; 339 + #address-cells = <1>; 340 + #size-cells = <1>; 341 + ranges = <0 0xffe00000 0x40000>; 339 342 }; 340 343 341 344 pdma: dma-controller@ffda0000 { ··· 376 373 }; 377 374 378 375 rst: rstmgr@ffd11000 { 379 - #reset-cells = <1>; 380 - compatible = "altr,stratix10-rst-mgr"; 376 + compatible = "altr,stratix10-rst-mgr", "altr,rst-mgr"; 381 377 reg = <0xffd11000 0x100>; 378 + #reset-cells = <1>; 382 379 }; 383 380 384 381 smmu: iommu@fa000000 {
+468
arch/arm64/boot/dts/intel/socfpga_agilex5.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0-only 2 + /* 3 + * Copyright (C) 2023, Intel Corporation 4 + */ 5 + 6 + /dts-v1/; 7 + #include <dt-bindings/reset/altr,rst-mgr-s10.h> 8 + #include <dt-bindings/gpio/gpio.h> 9 + #include <dt-bindings/interrupt-controller/arm-gic.h> 10 + #include <dt-bindings/interrupt-controller/irq.h> 11 + #include <dt-bindings/clock/intel,agilex5-clkmgr.h> 12 + 13 + / { 14 + compatible = "intel,socfpga-agilex5"; 15 + #address-cells = <2>; 16 + #size-cells = <2>; 17 + 18 + reserved-memory { 19 + #address-cells = <2>; 20 + #size-cells = <2>; 21 + ranges; 22 + 23 + service_reserved: svcbuffer@0 { 24 + compatible = "shared-dma-pool"; 25 + reg = <0x0 0x80000000 0x0 0x2000000>; 26 + alignment = <0x1000>; 27 + no-map; 28 + }; 29 + }; 30 + 31 + cpus { 32 + #address-cells = <1>; 33 + #size-cells = <0>; 34 + 35 + cpu0: cpu@0 { 36 + compatible = "arm,cortex-a55"; 37 + reg = <0x0>; 38 + device_type = "cpu"; 39 + enable-method = "psci"; 40 + }; 41 + 42 + cpu1: cpu@1 { 43 + compatible = "arm,cortex-a55"; 44 + reg = <0x100>; 45 + device_type = "cpu"; 46 + enable-method = "psci"; 47 + }; 48 + 49 + cpu2: cpu@2 { 50 + compatible = "arm,cortex-a76"; 51 + reg = <0x200>; 52 + device_type = "cpu"; 53 + enable-method = "psci"; 54 + }; 55 + 56 + cpu3: cpu@3 { 57 + compatible = "arm,cortex-a76"; 58 + reg = <0x300>; 59 + device_type = "cpu"; 60 + enable-method = "psci"; 61 + }; 62 + }; 63 + 64 + psci { 65 + compatible = "arm,psci-0.2"; 66 + method = "smc"; 67 + }; 68 + 69 + intc: interrupt-controller@1d000000 { 70 + compatible = "arm,gic-v3"; 71 + reg = <0x0 0x1d000000 0 0x10000>, 72 + <0x0 0x1d060000 0 0x100000>; 73 + ranges; 74 + #interrupt-cells = <3>; 75 + #address-cells = <2>; 76 + #size-cells =<2>; 77 + interrupt-controller; 78 + #redistributor-regions = <1>; 79 + redistributor-stride = <0x0 0x20000>; 80 + 81 + its: msi-controller@1d040000 { 82 + compatible = "arm,gic-v3-its"; 83 + reg = <0x0 0x1d040000 0x0 0x20000>; 84 + msi-controller; 85 + #msi-cells = <1>; 86 + }; 87 + }; 88 + 89 + /* Clock tree 5 main sources*/ 90 + clocks { 91 + cb_intosc_hs_div2_clk: cb-intosc-hs-div2-clk { 92 + #clock-cells = <0>; 93 + compatible = "fixed-clock"; 94 + clock-frequency = <0>; 95 + }; 96 + 97 + cb_intosc_ls_clk: cb-intosc-ls-clk { 98 + #clock-cells = <0>; 99 + compatible = "fixed-clock"; 100 + clock-frequency = <0>; 101 + }; 102 + 103 + f2s_free_clk: f2s-free-clk { 104 + #clock-cells = <0>; 105 + compatible = "fixed-clock"; 106 + clock-frequency = <0>; 107 + }; 108 + 109 + osc1: osc1 { 110 + #clock-cells = <0>; 111 + compatible = "fixed-clock"; 112 + clock-frequency = <0>; 113 + }; 114 + 115 + qspi_clk: qspi-clk { 116 + #clock-cells = <0>; 117 + compatible = "fixed-clock"; 118 + clock-frequency = <200000000>; 119 + }; 120 + }; 121 + 122 + timer { 123 + compatible = "arm,armv8-timer"; 124 + interrupt-parent = <&intc>; 125 + interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 126 + <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 127 + <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 128 + <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; 129 + }; 130 + 131 + usbphy0: usbphy { 132 + #phy-cells = <0>; 133 + compatible = "usb-nop-xceiv"; 134 + }; 135 + 136 + soc: soc@0 { 137 + compatible = "simple-bus"; 138 + ranges = <0 0 0 0xffffffff>; 139 + #address-cells = <1>; 140 + #size-cells = <1>; 141 + device_type = "soc"; 142 + interrupt-parent = <&intc>; 143 + 144 + clkmgr: clock-controller@10d10000 { 145 + compatible = "intel,agilex5-clkmgr"; 146 + reg = <0x10d10000 0x1000>; 147 + #clock-cells = <1>; 148 + }; 149 + 150 + i2c0: i2c@10c02800 { 151 + compatible = "snps,designware-i2c"; 152 + reg = <0x10c02800 0x100>; 153 + #address-cells = <1>; 154 + #size-cells = <0>; 155 + interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>; 156 + resets = <&rst I2C0_RESET>; 157 + clocks = <&clkmgr AGILEX5_L4_SP_CLK>; 158 + status = "disabled"; 159 + }; 160 + 161 + i2c1: i2c@10c02900 { 162 + compatible = "snps,designware-i2c"; 163 + reg = <0x10c02900 0x100>; 164 + #address-cells = <1>; 165 + #size-cells = <0>; 166 + interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>; 167 + resets = <&rst I2C1_RESET>; 168 + clocks = <&clkmgr AGILEX5_L4_SP_CLK>; 169 + status = "disabled"; 170 + }; 171 + 172 + i2c2: i2c@10c02a00 { 173 + compatible = "snps,designware-i2c"; 174 + reg = <0x10c02a00 0x100>; 175 + #address-cells = <1>; 176 + #size-cells = <0>; 177 + interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>; 178 + resets = <&rst I2C2_RESET>; 179 + clocks = <&clkmgr AGILEX5_L4_SP_CLK>; 180 + status = "disabled"; 181 + }; 182 + 183 + i2c3: i2c@10c02b00 { 184 + compatible = "snps,designware-i2c"; 185 + reg = <0x10c02b00 0x100>; 186 + #address-cells = <1>; 187 + #size-cells = <0>; 188 + interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>; 189 + resets = <&rst I2C3_RESET>; 190 + clocks = <&clkmgr AGILEX5_L4_SP_CLK>; 191 + status = "disabled"; 192 + }; 193 + 194 + i2c4: i2c@10c02c00 { 195 + compatible = "snps,designware-i2c"; 196 + reg = <0x10c02c00 0x100>; 197 + #address-cells = <1>; 198 + #size-cells = <0>; 199 + interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>; 200 + resets = <&rst I2C4_RESET>; 201 + clocks = <&clkmgr AGILEX5_L4_SP_CLK>; 202 + status = "disabled"; 203 + }; 204 + 205 + i3c0: i3c-master@10da0000 { 206 + compatible = "snps,dw-i3c-master-1.00a"; 207 + reg = <0x10da0000 0x1000>; 208 + #address-cells = <3>; 209 + #size-cells = <0>; 210 + interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>; 211 + clocks = <&clkmgr AGILEX5_L4_MP_CLK>; 212 + status = "disabled"; 213 + }; 214 + 215 + i3c1: i3c-master@10da1000 { 216 + compatible = "snps,dw-i3c-master-1.00a"; 217 + reg = <0x10da1000 0x1000>; 218 + #address-cells = <3>; 219 + #size-cells = <0>; 220 + interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>; 221 + clocks = <&clkmgr AGILEX5_L4_MP_CLK>; 222 + status = "disabled"; 223 + }; 224 + 225 + gpio1: gpio@10c03300 { 226 + compatible = "snps,dw-apb-gpio"; 227 + reg = <0x10c03300 0x100>; 228 + #address-cells = <1>; 229 + #size-cells = <0>; 230 + resets = <&rst GPIO1_RESET>; 231 + status = "disabled"; 232 + 233 + portb: gpio-controller@0 { 234 + compatible = "snps,dw-apb-gpio-port"; 235 + reg = <0>; 236 + gpio-controller; 237 + #gpio-cells = <2>; 238 + snps,nr-gpios = <24>; 239 + interrupt-controller; 240 + #interrupt-cells = <2>; 241 + interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>; 242 + }; 243 + }; 244 + 245 + nand: nand-controller@10b80000 { 246 + compatible = "cdns,hp-nfc"; 247 + reg = <0x10b80000 0x10000>, 248 + <0x10840000 0x10000>; 249 + reg-names = "reg", "sdma"; 250 + #address-cells = <1>; 251 + #size-cells = <0>; 252 + interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>; 253 + clocks = <&clkmgr AGILEX5_NAND_NF_CLK>; 254 + cdns,board-delay-ps = <4830>; 255 + status = "disabled"; 256 + }; 257 + 258 + ocram: sram@0 { 259 + compatible = "mmio-sram"; 260 + reg = <0x00000000 0x80000>; 261 + ranges = <0 0 0x80000>; 262 + #address-cells = <1>; 263 + #size-cells = <1>; 264 + }; 265 + 266 + dmac0: dma-controller@10db0000 { 267 + compatible = "snps,axi-dma-1.01a"; 268 + reg = <0x10db0000 0x500>; 269 + clocks = <&clkmgr AGILEX5_L4_MAIN_CLK>, 270 + <&clkmgr AGILEX5_L4_MP_CLK>; 271 + clock-names = "core-clk", "cfgr-clk"; 272 + interrupt-parent = <&intc>; 273 + interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>; 274 + #dma-cells = <1>; 275 + dma-channels = <4>; 276 + snps,dma-masters = <1>; 277 + snps,data-width = <2>; 278 + snps,block-size = <32767 32767 32767 32767>; 279 + snps,priority = <0 1 2 3>; 280 + snps,axi-max-burst-len = <8>; 281 + }; 282 + 283 + dmac1: dma-controller@10dc0000 { 284 + compatible = "snps,axi-dma-1.01a"; 285 + reg = <0x10dc0000 0x500>; 286 + clocks = <&clkmgr AGILEX5_L4_MAIN_CLK>, 287 + <&clkmgr AGILEX5_L4_MP_CLK>; 288 + clock-names = "core-clk", "cfgr-clk"; 289 + interrupt-parent = <&intc>; 290 + interrupts = <GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>; 291 + #dma-cells = <1>; 292 + dma-channels = <4>; 293 + snps,dma-masters = <1>; 294 + snps,data-width = <2>; 295 + snps,block-size = <32767 32767 32767 32767>; 296 + snps,priority = <0 1 2 3>; 297 + snps,axi-max-burst-len = <8>; 298 + }; 299 + 300 + rst: rstmgr@10d11000 { 301 + compatible = "altr,stratix10-rst-mgr", "altr,rst-mgr"; 302 + reg = <0x10d11000 0x1000>; 303 + #reset-cells = <1>; 304 + }; 305 + 306 + spi0: spi@10da4000 { 307 + compatible = "snps,dw-apb-ssi"; 308 + reg = <0x10da4000 0x1000>; 309 + #address-cells = <1>; 310 + #size-cells = <0>; 311 + interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>; 312 + resets = <&rst SPIM0_RESET>; 313 + reset-names = "spi"; 314 + reg-io-width = <4>; 315 + num-cs = <4>; 316 + clocks = <&clkmgr AGILEX5_L4_MAIN_CLK>; 317 + dmas = <&dmac0 2>, <&dmac0 3>; 318 + dma-names ="tx", "rx"; 319 + status = "disabled"; 320 + 321 + }; 322 + 323 + spi1: spi@10da5000 { 324 + compatible = "snps,dw-apb-ssi"; 325 + reg = <0x10da5000 0x1000>; 326 + #address-cells = <1>; 327 + #size-cells = <0>; 328 + interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>; 329 + resets = <&rst SPIM1_RESET>; 330 + reset-names = "spi"; 331 + reg-io-width = <4>; 332 + num-cs = <4>; 333 + clocks = <&clkmgr AGILEX5_L4_MAIN_CLK>; 334 + status = "disabled"; 335 + }; 336 + 337 + sysmgr: sysmgr@10d12000 { 338 + compatible = "altr,sys-mgr-s10","altr,sys-mgr"; 339 + reg = <0x10d12000 0x500>; 340 + }; 341 + 342 + timer0: timer0@10c03000 { 343 + compatible = "snps,dw-apb-timer"; 344 + reg = <0x10c03000 0x100>; 345 + interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>; 346 + clocks = <&clkmgr AGILEX5_L4_SP_CLK>; 347 + clock-names = "timer"; 348 + }; 349 + 350 + timer1: timer1@10c03100 { 351 + compatible = "snps,dw-apb-timer"; 352 + reg = <0x10c03100 0x100>; 353 + interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>; 354 + clocks = <&clkmgr AGILEX5_L4_SP_CLK>; 355 + clock-names = "timer"; 356 + }; 357 + 358 + timer2: timer2@10d00000 { 359 + compatible = "snps,dw-apb-timer"; 360 + reg = <0x10d00000 0x100>; 361 + interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>; 362 + clocks = <&clkmgr AGILEX5_L4_SP_CLK>; 363 + clock-names = "timer"; 364 + }; 365 + 366 + timer3: timer3@10d00100 { 367 + compatible = "snps,dw-apb-timer"; 368 + reg = <0x10d00100 0x100>; 369 + interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>; 370 + clocks = <&clkmgr AGILEX5_L4_SP_CLK>; 371 + clock-names = "timer"; 372 + }; 373 + 374 + uart0: serial@10c02000 { 375 + compatible = "snps,dw-apb-uart"; 376 + reg = <0x10c02000 0x100>; 377 + interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; 378 + reg-shift = <2>; 379 + reg-io-width = <4>; 380 + resets = <&rst UART0_RESET>; 381 + status = "disabled"; 382 + clocks = <&clkmgr AGILEX5_L4_SP_CLK>; 383 + }; 384 + 385 + uart1: serial@10c02100 { 386 + compatible = "snps,dw-apb-uart"; 387 + reg = <0x10c02100 0x100>; 388 + interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>; 389 + reg-shift = <2>; 390 + reg-io-width = <4>; 391 + resets = <&rst UART1_RESET>; 392 + status = "disabled"; 393 + clocks = <&clkmgr AGILEX5_L4_SP_CLK>; 394 + }; 395 + 396 + usb0: usb@10b00000 { 397 + compatible = "snps,dwc2"; 398 + reg = <0x10b00000 0x40000>; 399 + interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>; 400 + phys = <&usbphy0>; 401 + phy-names = "usb2-phy"; 402 + resets = <&rst USB0_RESET>, <&rst USB0_OCP_RESET>; 403 + reset-names = "dwc2", "dwc2-ecc"; 404 + clocks = <&clkmgr AGILEX5_USB2OTG_HCLK>; 405 + clock-names = "otg"; 406 + status = "disabled"; 407 + }; 408 + 409 + watchdog0: watchdog@10d00200 { 410 + compatible = "snps,dw-wdt"; 411 + reg = <0x10d00200 0x100>; 412 + interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>; 413 + resets = <&rst WATCHDOG0_RESET>; 414 + clocks = <&clkmgr AGILEX5_L4_SYS_FREE_CLK>; 415 + status = "disabled"; 416 + }; 417 + 418 + watchdog1: watchdog@10d00300 { 419 + compatible = "snps,dw-wdt"; 420 + reg = <0x10d00300 0x100>; 421 + interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>; 422 + resets = <&rst WATCHDOG1_RESET>; 423 + clocks = <&clkmgr AGILEX5_L4_SYS_FREE_CLK>; 424 + status = "disabled"; 425 + }; 426 + 427 + watchdog2: watchdog@10d00400 { 428 + compatible = "snps,dw-wdt"; 429 + reg = <0x10d00400 0x100>; 430 + interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>; 431 + resets = <&rst WATCHDOG2_RESET>; 432 + clocks = <&clkmgr AGILEX5_L4_SYS_FREE_CLK>; 433 + status = "disabled"; 434 + }; 435 + 436 + watchdog3: watchdog@10d00500 { 437 + compatible = "snps,dw-wdt"; 438 + reg = <0x10d00500 0x100>; 439 + interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>; 440 + resets = <&rst WATCHDOG3_RESET>; 441 + clocks = <&clkmgr AGILEX5_L4_SYS_FREE_CLK>; 442 + status = "disabled"; 443 + }; 444 + 445 + watchdog4: watchdog@10d00600 { 446 + compatible = "snps,dw-wdt"; 447 + reg = <0x10d00600 0x100>; 448 + interrupts = <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>; 449 + resets = <&rst WATCHDOG4_RESET>; 450 + clocks = <&clkmgr AGILEX5_L4_SYS_FREE_CLK>; 451 + status = "disabled"; 452 + }; 453 + 454 + qspi: spi@108d2000 { 455 + compatible = "intel,socfpga-qspi", "cdns,qspi-nor"; 456 + reg = <0x108d2000 0x100>, 457 + <0x10900000 0x100000>; 458 + #address-cells = <1>; 459 + #size-cells = <0>; 460 + interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>; 461 + cdns,fifo-depth = <128>; 462 + cdns,fifo-width = <4>; 463 + cdns,trigger-address = <0x00000000>; 464 + clocks = <&qspi_clk>; 465 + status = "disabled"; 466 + }; 467 + }; 468 + };
+39
arch/arm64/boot/dts/intel/socfpga_agilex5_socdk.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0-only 2 + /* 3 + * Copyright (C) 2023, Intel Corporation 4 + */ 5 + #include "socfpga_agilex5.dtsi" 6 + 7 + / { 8 + model = "SoCFPGA Agilex5 SoCDK"; 9 + compatible = "intel,socfpga-agilex5-socdk", "intel,socfpga-agilex5"; 10 + 11 + aliases { 12 + serial0 = &uart0; 13 + }; 14 + 15 + chosen { 16 + stdout-path = "serial0:115200n8"; 17 + }; 18 + }; 19 + 20 + &gpio1 { 21 + status = "okay"; 22 + }; 23 + 24 + &osc1 { 25 + clock-frequency = <25000000>; 26 + }; 27 + 28 + &uart0 { 29 + status = "okay"; 30 + }; 31 + 32 + &usb0 { 33 + status = "okay"; 34 + disable-over-current; 35 + }; 36 + 37 + &watchdog0 { 38 + status = "okay"; 39 + };
+2 -2
arch/arm64/boot/dts/intel/socfpga_agilex_n6000.dts
··· 20 20 stdout-path = "serial0:115200n8"; 21 21 }; 22 22 23 - memory@0 { 23 + memory@80000000 { 24 24 device_type = "memory"; 25 25 /* We expect the bootloader to fill in the reg */ 26 - reg = <0 0 0 0>; 26 + reg = <0 0x80000000 0 0>; 27 27 }; 28 28 29 29 soc {
+6 -6
arch/arm64/boot/dts/intel/socfpga_agilex_socdk.dts
··· 37 37 }; 38 38 }; 39 39 40 - memory { 40 + memory@80000000 { 41 41 device_type = "memory"; 42 42 /* We expect the bootloader to fill in the reg */ 43 - reg = <0 0 0 0>; 43 + reg = <0 0x80000000 0 0>; 44 44 }; 45 45 }; 46 46 ··· 128 128 129 129 qspi_boot: partition@0 { 130 130 label = "Boot and fpga data"; 131 - reg = <0x0 0x03FE0000>; 131 + reg = <0x0 0x04200000>; 132 132 }; 133 133 134 - qspi_rootfs: partition@3FE0000 { 135 - label = "Root Filesystem - JFFS2"; 136 - reg = <0x03FE0000 0x0C020000>; 134 + root: partition@4200000 { 135 + label = "Root Filesystem - UBIFS"; 136 + reg = <0x04200000 0x0BE00000>; 137 137 }; 138 138 }; 139 139 };
+2 -2
arch/arm64/boot/dts/intel/socfpga_agilex_socdk_nand.dts
··· 37 37 }; 38 38 }; 39 39 40 - memory { 40 + memory@80000000 { 41 41 device_type = "memory"; 42 42 /* We expect the bootloader to fill in the reg */ 43 - reg = <0 0 0 0>; 43 + reg = <0 0x80000000 0 0>; 44 44 }; 45 45 }; 46 46
+3 -3
arch/arm64/boot/dts/intel/socfpga_n5x_socdk.dts
··· 19 19 stdout-path = "serial0:115200n8"; 20 20 }; 21 21 22 - memory { 22 + memory@80000000 { 23 23 device_type = "memory"; 24 24 /* We expect the bootloader to fill in the reg */ 25 - reg = <0 0 0 0>; 25 + reg = <0 0x80000000 0 0>; 26 26 }; 27 27 28 28 soc { ··· 109 109 reg = <0x0 0x03FE0000>; 110 110 }; 111 111 112 - qspi_rootfs: partition@3FE0000 { 112 + qspi_rootfs: partition@3fe0000 { 113 113 label = "Root Filesystem - JFFS2"; 114 114 reg = <0x03FE0000 0x0C020000>; 115 115 };
+100
include/dt-bindings/clock/intel,agilex5-clkmgr.h
··· 1 + /* SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause */ 2 + /* 3 + * Copyright (C) 2023, Intel Corporation 4 + */ 5 + 6 + #ifndef __DT_BINDINGS_INTEL_AGILEX5_CLKMGR_H 7 + #define __DT_BINDINGS_INTEL_AGILEX5_CLKMGR_H 8 + 9 + /* fixed rate clocks */ 10 + #define AGILEX5_OSC1 0 11 + #define AGILEX5_CB_INTOSC_HS_DIV2_CLK 1 12 + #define AGILEX5_CB_INTOSC_LS_CLK 2 13 + #define AGILEX5_F2S_FREE_CLK 3 14 + 15 + /* PLL clocks */ 16 + #define AGILEX5_MAIN_PLL_CLK 4 17 + #define AGILEX5_MAIN_PLL_C0_CLK 5 18 + #define AGILEX5_MAIN_PLL_C1_CLK 6 19 + #define AGILEX5_MAIN_PLL_C2_CLK 7 20 + #define AGILEX5_MAIN_PLL_C3_CLK 8 21 + #define AGILEX5_PERIPH_PLL_CLK 9 22 + #define AGILEX5_PERIPH_PLL_C0_CLK 10 23 + #define AGILEX5_PERIPH_PLL_C1_CLK 11 24 + #define AGILEX5_PERIPH_PLL_C2_CLK 12 25 + #define AGILEX5_PERIPH_PLL_C3_CLK 13 26 + #define AGILEX5_CORE0_FREE_CLK 14 27 + #define AGILEX5_CORE1_FREE_CLK 15 28 + #define AGILEX5_CORE2_FREE_CLK 16 29 + #define AGILEX5_CORE3_FREE_CLK 17 30 + #define AGILEX5_DSU_FREE_CLK 18 31 + #define AGILEX5_BOOT_CLK 19 32 + 33 + /* fixed factor clocks */ 34 + #define AGILEX5_L3_MAIN_FREE_CLK 20 35 + #define AGILEX5_NOC_FREE_CLK 21 36 + #define AGILEX5_S2F_USR0_CLK 22 37 + #define AGILEX5_NOC_CLK 23 38 + #define AGILEX5_EMAC_A_FREE_CLK 24 39 + #define AGILEX5_EMAC_B_FREE_CLK 25 40 + #define AGILEX5_EMAC_PTP_FREE_CLK 26 41 + #define AGILEX5_GPIO_DB_FREE_CLK 27 42 + #define AGILEX5_S2F_USER0_FREE_CLK 28 43 + #define AGILEX5_S2F_USER1_FREE_CLK 29 44 + #define AGILEX5_PSI_REF_FREE_CLK 30 45 + #define AGILEX5_USB31_FREE_CLK 31 46 + 47 + /* Gate clocks */ 48 + #define AGILEX5_CORE0_CLK 32 49 + #define AGILEX5_CORE1_CLK 33 50 + #define AGILEX5_CORE2_CLK 34 51 + #define AGILEX5_CORE3_CLK 35 52 + #define AGILEX5_MPU_CLK 36 53 + #define AGILEX5_MPU_PERIPH_CLK 37 54 + #define AGILEX5_MPU_CCU_CLK 38 55 + #define AGILEX5_L4_MAIN_CLK 39 56 + #define AGILEX5_L4_MP_CLK 40 57 + #define AGILEX5_L4_SYS_FREE_CLK 41 58 + #define AGILEX5_L4_SP_CLK 42 59 + #define AGILEX5_CS_AT_CLK 43 60 + #define AGILEX5_CS_TRACE_CLK 44 61 + #define AGILEX5_CS_PDBG_CLK 45 62 + #define AGILEX5_EMAC1_CLK 47 63 + #define AGILEX5_EMAC2_CLK 48 64 + #define AGILEX5_EMAC_PTP_CLK 49 65 + #define AGILEX5_GPIO_DB_CLK 50 66 + #define AGILEX5_S2F_USER0_CLK 51 67 + #define AGILEX5_S2F_USER1_CLK 52 68 + #define AGILEX5_PSI_REF_CLK 53 69 + #define AGILEX5_USB31_SUSPEND_CLK 54 70 + #define AGILEX5_EMAC0_CLK 46 71 + #define AGILEX5_USB31_BUS_CLK_EARLY 55 72 + #define AGILEX5_USB2OTG_HCLK 56 73 + #define AGILEX5_SPIM_0_CLK 57 74 + #define AGILEX5_SPIM_1_CLK 58 75 + #define AGILEX5_SPIS_0_CLK 59 76 + #define AGILEX5_SPIS_1_CLK 60 77 + #define AGILEX5_DMA_CORE_CLK 61 78 + #define AGILEX5_DMA_HS_CLK 62 79 + #define AGILEX5_I3C_0_CORE_CLK 63 80 + #define AGILEX5_I3C_1_CORE_CLK 64 81 + #define AGILEX5_I2C_0_PCLK 65 82 + #define AGILEX5_I2C_1_PCLK 66 83 + #define AGILEX5_I2C_EMAC0_PCLK 67 84 + #define AGILEX5_I2C_EMAC1_PCLK 68 85 + #define AGILEX5_I2C_EMAC2_PCLK 69 86 + #define AGILEX5_UART_0_PCLK 70 87 + #define AGILEX5_UART_1_PCLK 71 88 + #define AGILEX5_SPTIMER_0_PCLK 72 89 + #define AGILEX5_SPTIMER_1_PCLK 73 90 + #define AGILEX5_DFI_CLK 74 91 + #define AGILEX5_NAND_NF_CLK 75 92 + #define AGILEX5_NAND_BCH_CLK 76 93 + #define AGILEX5_SDMMC_SDPHY_REG_CLK 77 94 + #define AGILEX5_SDMCLK 78 95 + #define AGILEX5_SOFTPHY_REG_PCLK 79 96 + #define AGILEX5_SOFTPHY_PHY_CLK 80 97 + #define AGILEX5_SOFTPHY_CTRL_CLK 81 98 + #define AGILEX5_NUM_CLKS 82 99 + 100 + #endif /* __DT_BINDINGS_INTEL_AGILEX5_CLKMGR_H */
+4 -1
include/dt-bindings/reset/altr,rst-mgr-s10.h
··· 63 63 #define I2C2_RESET 74 64 64 #define I2C3_RESET 75 65 65 #define I2C4_RESET 76 66 - /* 77-79 is empty */ 66 + #define I3C0_RESET 77 67 + #define I3C1_RESET 78 68 + /* 79 is empty */ 67 69 #define UART0_RESET 80 68 70 #define UART1_RESET 81 69 71 /* 82-87 is empty */ 70 72 #define GPIO0_RESET 88 71 73 #define GPIO1_RESET 89 74 + #define WATCHDOG4_RESET 90 72 75 73 76 /* BRGMODRST */ 74 77 #define SOC2FPGA_RESET 96