[PATCH v5 00/25] firmware: xilinx: Add xilinx specific sysfs interface

From: Jolly Shah
Date: Fri Apr 24 2020 - 16:58:43 EST


This patch series adds xilinx specific sysfs interface for below
purposes:
- Register access
- Set shutdown scope
- Set boot health status bit

Also this patch series removes eemi ops and adds API
corresponding to each eemi ops.

It depends on below patchset which fixes firmware driver Kconfig dependency.
https://github.com/torvalds/linux/commit/d0384eedcde21276ac51f57c641f875605024b32#diff-96cbd6396181cd8c25ea5d838c5590ba

Rajan Vaja (25):
firmware: xilinx: Remove eemi ops for get_api_version
firmware: xilinx: Remove eemi ops for get_chipid
firmware: xilinx: Remove eemi ops for query_data
firmware: xilinx: Remove eemi ops for clock_enable
firmware: xilinx: Remove eemi ops for clock_disable
firmware: xilinx: Remove eemi ops for clock_getstate
firmware: xilinx: Remove eemi ops for clock_setdivider
firmware: xilinx: Remove eemi ops for clock_getdivider
firmware: xilinx: Remove eemi ops for clock set/get rate
firmware: xilinx: Remove eemi ops for clock set/get parent
firmware: xilinx: Use APIs instead of IOCTLs
firmware: xilinx: Remove eemi ops for reset_assert
firmware: xilinx: Remove eemi ops for reset_get_status
firmware: xilinx: Remove eemi ops for init_finalize
firmware: xilinx: Remove eemi ops for set_suspend_mode
firmware: xilinx: Remove eemi ops for request_node
firmware: xilinx: Remove eemi ops for release_node
firmware: xilinx: Remove eemi ops for set_requirement
firmware: xilinx: Remove eemi ops for aes engine
firmware: xilinx: Remove eemi ops for fpga related APIs
firmware: xilinx: Add APIs to read/write GGS/PGGS registers
firmware: xilinx: Add sysfs interface
firmware: xilinx: Add system shutdown API interface
firmware: xilinx: Add sysfs to set shutdown scope
firmware: xilinx: Add sysfs and API to set boot health status

.../ABI/stable/sysfs-driver-firmware-zynqmp | 103 ++++
drivers/clk/zynqmp/clk-gate-zynqmp.c | 9 +-
drivers/clk/zynqmp/clk-mux-zynqmp.c | 6 +-
drivers/clk/zynqmp/clkc.c | 17 +-
drivers/clk/zynqmp/divider.c | 12 +-
drivers/clk/zynqmp/pll.c | 29 +-
drivers/crypto/xilinx/zynqmp-aes-gcm.c | 12 +-
drivers/firmware/xilinx/zynqmp-debug.c | 5 +-
drivers/firmware/xilinx/zynqmp.c | 601 +++++++++++++++++----
drivers/fpga/zynqmp-fpga.c | 14 +-
drivers/mmc/host/sdhci-of-arasan.c | 38 +-
drivers/nvmem/zynqmp_nvmem.c | 11 +-
drivers/reset/reset-zynqmp.c | 26 +-
drivers/soc/xilinx/zynqmp_pm_domains.c | 26 +-
drivers/soc/xilinx/zynqmp_power.c | 17 +-
drivers/spi/spi-zynqmp-gqspi.c | 5 -
include/linux/firmware/xlnx-zynqmp.h | 237 ++++++--
17 files changed, 862 insertions(+), 306 deletions(-)
create mode 100644 Documentation/ABI/stable/sysfs-driver-firmware-zynqmp

--
Changes in v5:
- [PATCH 21/26]:
- Fix compilation warning.
Changes in v4:
- Rebased on latest repository.
- Resolve compilation errors from patch #1 - #20.
- Add patch #19 to remove eemi ops for aes engine.
- [PATCH 11/25]:
- Add API for SD DLL reset.
- Rebase on latest repository.
- [PATCH 21/25]:
- Use explicit values for enums.
- [PATCH 22/25]:
- Remove function header for static functions.
- Remove unnecessary condition checks.
- Use one value per file.
- Use ATTRIBUTE_GROUPS() macro for assigning attribute groups.
- Remove unnecessary inclusion of header file.
- [PATCH 23/25]:
- Use explicit values for enums.
- [PATCH 24/25]:
- Use ATTRIBUTE_GROUPS() macro for assigning attribute groups.
- [PATCH 25/25]:
- Use dev_err() instead of pr_err().
- Use ATTRIBUTE_GROUPS() macro for assigning attribute groups.
Changes in v3:
- add patch #1/24 to #11/24 and #12/24 to #20/24 to remove eemi apis
and use direct function call.
- Add patch #11/24 to use ZynqMP APIs of IOCTLs instead of IOCTLs
and remove IOCTLs for ZynqMP.
- Add patch #20/24 to add APIs for read/write GGS and PGGS registers.
- [PATCH 21/24]:
- Add GGS sysfs interface in zynqmp.c file instead of zynqmp_ggs.c.
- Use platform device directory for sysfs instead of creating new
directory in firmware.
- Change kernel version to 5.6.
- Set count variable to the error value instead of testing ret
variable at the end of function to store GGS/PGGS.
- Use ZynqMP firmware API for write/read PGGS and GGS instead of
ioctls.
- Use platform device attribute off instead of creating new kobject.
- Change Date field in documentation.
- [PATCH 23/24]:
- Use platform device directory for sysfs instead of creating new
directory in firmware.
- Change kernel version to 5.6.
- Change Date field in documentation.
- [PATCH 24/24]:
- Use platform device directory for sysfs instead of creating new
directory in firmware.
- Change kernel version to 5.6.
- Change Date field in documentation.
- Add eemi API to set boot health status instead of IOCTL.
Changes in v2:
- Removed patch #1 for register access sysfs.
- Updated kernel version in documentation.
- Used DEVICE_ATTR_* and ATTRIBUTE_GROUPS macros.
- Correct typo
- Free Kobject structure in case of error.
- Resolved smatch errors.
- Updated Signed-off-by sequence.
--
2.7.4