misc: sram: add optional ioremap without write combining
Some SRAM users may require non-bufferable access to the memory, which is impossible, because devm_ioremap_wc() is used for setting sram->virt_base. This commit adds optional flag 'no-memory-wc', which allow to choose remap method, using DT property. Documentation is updated accordingly. Signed-off-by: Marcin Wojtas <mw@semihalf.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
d3bf9b19ff
commit
eb43e02313
2 changed files with 9 additions and 1 deletions
|
@ -25,6 +25,11 @@ Required properties in the sram node:
|
||||||
- ranges : standard definition, should translate from local addresses
|
- ranges : standard definition, should translate from local addresses
|
||||||
within the sram to bus addresses
|
within the sram to bus addresses
|
||||||
|
|
||||||
|
Optional properties in the sram node:
|
||||||
|
|
||||||
|
- no-memory-wc : the flag indicating, that SRAM memory region has not to
|
||||||
|
be remapped as write combining. WC is used by default.
|
||||||
|
|
||||||
Required properties in the area nodes:
|
Required properties in the area nodes:
|
||||||
|
|
||||||
- reg : iomem address range, relative to the SRAM range
|
- reg : iomem address range, relative to the SRAM range
|
||||||
|
|
|
@ -360,7 +360,10 @@ static int sram_probe(struct platform_device *pdev)
|
||||||
return -EBUSY;
|
return -EBUSY;
|
||||||
}
|
}
|
||||||
|
|
||||||
sram->virt_base = devm_ioremap_wc(sram->dev, res->start, size);
|
if (of_property_read_bool(pdev->dev.of_node, "no-memory-wc"))
|
||||||
|
sram->virt_base = devm_ioremap(sram->dev, res->start, size);
|
||||||
|
else
|
||||||
|
sram->virt_base = devm_ioremap_wc(sram->dev, res->start, size);
|
||||||
if (IS_ERR(sram->virt_base))
|
if (IS_ERR(sram->virt_base))
|
||||||
return PTR_ERR(sram->virt_base);
|
return PTR_ERR(sram->virt_base);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue