mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 14:53:58 -04:00
Agilex5 integrates an ARM SMMU (System Memory Management Unit) with
Translation Buffer Units (TBUs) assigned to various peripherals,
including the NAND controller.
The Cadence HP NAND controller ("cdns,hp-nfc") on Agilex5 is behind a
TBU connected to the system's SMMUv3. To support this, the controller
requires an `iommus` property in the device tree to properly configure
address translation through the IOMMU framework.
Adding the `iommus` property to the binding schema allows the OS
to associate the NAND controller with its corresponding SMMU stream ID.
This enables:
- DMA address translation between the controller and system memory
- Memory protection for NAND operations
- Proper functioning of the IOMMU framework in secure or virtualized
environments
This change documents the IOMMU integration for the NAND controller
on platforms like Agilex5 where such hardware is present.
Signed-off-by: Adrian Ng Ho Yin <adrianhoyin.ng@altera.com>
Signed-off-by: Khairul Anuar Romli <khairul.anuar.romli@altera.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Dinh Nguyen <dinguyen@kernel.org>
85 lines
1.7 KiB
YAML
85 lines
1.7 KiB
YAML
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/mtd/cdns,hp-nfc.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: Cadence NAND controller
|
|
|
|
maintainers:
|
|
- Niravkumar L Rabara <niravkumar.l.rabara@intel.com>
|
|
|
|
allOf:
|
|
- $ref: nand-controller.yaml
|
|
|
|
properties:
|
|
compatible:
|
|
items:
|
|
- const: cdns,hp-nfc
|
|
|
|
reg:
|
|
items:
|
|
- description: Controller register set
|
|
- description: Slave DMA data port register set
|
|
|
|
reg-names:
|
|
items:
|
|
- const: reg
|
|
- const: sdma
|
|
|
|
interrupts:
|
|
maxItems: 1
|
|
|
|
clocks:
|
|
maxItems: 1
|
|
|
|
clock-names:
|
|
items:
|
|
- const: nf_clk
|
|
|
|
dmas:
|
|
maxItems: 1
|
|
|
|
iommus:
|
|
maxItems: 1
|
|
|
|
cdns,board-delay-ps:
|
|
description: |
|
|
Estimated Board delay. The value includes the total round trip
|
|
delay for the signals and is used for deciding on values associated
|
|
with data read capture. The example formula for SDR mode is the
|
|
following.
|
|
board delay = RE#PAD delay + PCB trace to device + PCB trace from device
|
|
+ DQ PAD delay
|
|
|
|
required:
|
|
- compatible
|
|
- reg
|
|
- reg-names
|
|
- interrupts
|
|
- clocks
|
|
- clock-names
|
|
|
|
unevaluatedProperties: false
|
|
|
|
examples:
|
|
- |
|
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
|
|
|
nand-controller@10b80000 {
|
|
compatible = "cdns,hp-nfc";
|
|
reg = <0x10b80000 0x10000>,
|
|
<0x10840000 0x10000>;
|
|
reg-names = "reg", "sdma";
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
|
|
clocks = <&clk>;
|
|
clock-names = "nf_clk";
|
|
cdns,board-delay-ps = <4830>;
|
|
|
|
nand@0 {
|
|
reg = <0>;
|
|
};
|
|
};
|