[PATCH v3 0/2] Use NVMEM as reboot-mode write interface

From: Han Nandor
Date: Sun Apr 21 2019 - 15:09:43 EST


Description
-----------
Extend the reboot mode driver to use a NVMEM cell as writing interface.

Testing
-------
The testing is done by configuring DT from a custom board.
The NVMEM cell is configured in an RTC non-volatile memory.
Kernel: 4.14.60 (the patchset was rebased on kernel master)

DT configurations:
`
...
reboot-mode-nvmem@0 {
compatible = "simple-mfd";
reboot-mode {
compatible = "nvmem-reboot-mode";
nvmem-cells = <&reboot_mode>;
nvmem-cell-names = "reboot-mode";

mode-test = <0x21969147>;
};
};
...
reboot_mode: nvmem_reboot_mode@0 {
reg = <0x00 0x4>;
};
...
`

1. Reboot the system using the command `reboot test`

2. Verify that kernel logs show that reboot was done in mode `test`:
PASS
`[ 413.957172] reboot: Restarting system with command 'test' `

3. Stop in U-Boot and verify that mode `test` magic value is present
in RTCs non-volatile memory: PASS

Kernel: 5.1.0-rc3

1. Configure `arch/arm/configs/imx_v6_v7_defconfig` to contain
`CONFIG_NVMEM_REBOOT_MODE=y`
2. Verify that Kernel compiles successful: PASS
`
make ARCH=arm CROSS_COMPILE=arm-linux-gnu- imx_v6_v7_defconfig zImage
...
CC drivers/power/reset/nvmem-reboot-mode.o
...
Kernel: arch/arm/boot/zImage is ready
`
Changes since v1:
-----------------
- split the documentation on a separate patch
- add a missing header

Changes since v2:
----------------
- change the module license to GPL since GPL v2 is deprecated

Nandor Han (2):
power: reset: nvmem-reboot-mode: use NVMEM as reboot mode write
interface
dt-bindings: power: reset: add document for NVMEM based reboot-mode

.../power/reset/nvmem-reboot-mode.txt | 32 ++++++++
drivers/power/reset/Kconfig | 9 +++
drivers/power/reset/Makefile | 1 +
drivers/power/reset/nvmem-reboot-mode.c | 76 +++++++++++++++++++
4 files changed, 118 insertions(+)
create mode 100644 Documentation/devicetree/bindings/power/reset/nvmem-reboot-mode.txt
create mode 100644 drivers/power/reset/nvmem-reboot-mode.c

--
2.17.2