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

Documentation: dt: edac: Fix Stratix10 IRQ bindings

Fix Stratix10 ECC bindings to specify only the single
bit error. On Stratix10 double bit errors are handled
as SErrors instead of interrupts.
Indicate the differences between the ARM64 and ARM32
EDAC architecture in the bindings.

Signed-off-by: Thor Thayer <thor.thayer@linux.intel.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Acked-by: Rob Herring <robh@kernel.org>
Cc: James Morse <james.morse@arm.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: devicetree@vger.kernel.org
Cc: dinguyen@kernel.org
Cc: linux-edac <linux-edac@vger.kernel.org>
Cc: mark.rutland@arm.com
Cc: mchehab@kernel.org
Link: https://lkml.kernel.org/r/1554388597-28019-2-git-send-email-thor.thayer@linux.intel.com

authored by

Thor Thayer and committed by
Borislav Petkov
b9c8172e fad9fab9

+19 -10
+19 -10
Documentation/devicetree/bindings/edac/socfpga-eccmgr.txt
··· 232 232 }; 233 233 }; 234 234 235 - Stratix10 SoCFPGA ECC Manager 235 + Stratix10 SoCFPGA ECC Manager (ARM64) 236 236 The Stratix10 SoC ECC Manager handles the IRQs for each peripheral 237 - in a shared register similar to the Arria10. However, ECC requires 238 - access to registers that can only be read from Secure Monitor with 239 - SMC calls. Therefore the device tree is slightly different. 237 + in a shared register similar to the Arria10. However, Stratix10 ECC 238 + requires access to registers that can only be read from Secure Monitor 239 + with SMC calls. Therefore the device tree is slightly different. Note 240 + that only 1 interrupt is sent in Stratix10 because the double bit errors 241 + are treated as SErrors in ARM64 instead of IRQs in ARM32. 240 242 241 243 Required Properties: 242 244 - compatible : Should be "altr,socfpga-s10-ecc-manager" 243 - - interrupts : Should be single bit error interrupt, then double bit error 244 - interrupt. 245 + - altr,sysgr-syscon : phandle to Stratix10 System Manager Block 246 + containing the ECC manager registers. 247 + - interrupts : Should be single bit error interrupt. 245 248 - interrupt-controller : boolean indicator that ECC Manager is an interrupt controller 246 249 - #interrupt-cells : must be set to 2. 250 + - #address-cells: must be 1 251 + - #size-cells: must be 1 252 + - ranges : standard definition, should translate from local addresses 247 253 248 254 Subcomponents: 249 255 250 256 SDRAM ECC 251 257 Required Properties: 252 258 - compatible : Should be "altr,sdram-edac-s10" 253 - - interrupts : Should be single bit error interrupt, then double bit error 254 - interrupt, in this order. 259 + - interrupts : Should be single bit error interrupt. 255 260 256 261 Example: 257 262 258 263 eccmgr { 259 264 compatible = "altr,socfpga-s10-ecc-manager"; 260 - interrupts = <0 15 4>, <0 95 4>; 265 + altr,sysmgr-syscon = <&sysmgr>; 266 + #address-cells = <1>; 267 + #size-cells = <1>; 268 + interrupts = <0 15 4>; 261 269 interrupt-controller; 262 270 #interrupt-cells = <2>; 271 + ranges; 263 272 264 273 sdramedac { 265 274 compatible = "altr,sdram-edac-s10"; 266 - interrupts = <16 4>, <48 4>; 275 + interrupts = <16 IRQ_TYPE_LEVEL_HIGH>; 267 276 }; 268 277 };