Here's v2 of hwspinlock support in A64 SoC. Main changes: * Rewrote dt bindings in yaml * Re-arranged hwspinlock node in dts to follow ascending address order * Sorted includes alphabetically * Minor style changes * Use GENMASK/FIELD_GET to query number of locks from mmio register * Separate hwspinlock_device from sun50i_hwspinlock. This enables to utilize devm_add_action_or_reset, which results in cleaner error handling in the probe function. * Switched to device managed resources where applicable. This was tested on a pine64 board. I loadeded/unloaded the driver checking the state of clock/reset/sysstatus registers as well as trying lock/unlock operations (using the devmem busybox utility). Nikolay Borisov (3): hwspinlock: sunxi: Implement support for Allwinner's A64 SoC arm64: dts: allwinner: a64: Add hwspinlock node dt-bindings: hwlock: Document A64 hwspinlock bindings .../allwinner,sun50i-a64-hwspinlock.yaml | 47 +++++ arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 9 + drivers/hwspinlock/Kconfig | 9 + drivers/hwspinlock/Makefile | 1 + drivers/hwspinlock/sun50i_hwspinlock.c | 163 ++++++++++++++++++ 5 files changed, 229 insertions(+) create mode 100644 Documentation/devicetree/bindings/hwlock/allwinner,sun50i-a64-hwspinlock.yaml create mode 100644 drivers/hwspinlock/sun50i_hwspinlock.c -- 2.17.1