Certain fuses are protected by the XPU such that the AP cannot
access them. Attempting to do so causes an SError. Introduce an
SoC-specific compatible string, and introduce support into the
nvmem core to avoid accessing specified regions. Then use those
new elements in the qfprom driver to avoid SErrors when usermode
accesses certain registers.
Changes in v3:
- Fixed example (Doug and rob-bot)
- Use min()/max() macros instead of defining my own (Doug)
- Comment changes to indicate sorting (Doug)
- Add function to validate keepouts are proper (Doug)
Changes in v2:
- Add other soc compatible strings (Doug)
- Fix compatible string definition (Doug)
- Introduced keepout regions into the core (Srini)
- Use new core support in qfprom (Srini)
Evan Green (4):
dt-bindings: nvmem: Add soc qfprom compatible strings
arm64: dts: qcom: sc7180: Add soc-specific qfprom compat string
nvmem: core: Add support for keepout regions
nvmem: qfprom: Don't touch certain fuses
.../bindings/nvmem/qcom,qfprom.yaml | 17 +-
arch/arm64/boot/dts/qcom/sc7180.dtsi | 2 +-
drivers/nvmem/core.c | 153 +++++++++++++++++-
drivers/nvmem/qfprom.c | 30 ++++
include/linux/nvmem-provider.h | 17 ++
5 files changed, 211 insertions(+), 8 deletions(-)