lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20250930093132.2003-1-dongxuyang@eswincomputing.com>
Date: Tue, 30 Sep 2025 17:31:32 +0800
From: dongxuyang@...incomputing.com
To: p.zabel@...gutronix.de,
	robh@...nel.org,
	krzk+dt@...nel.org,
	conor+dt@...nel.org,
	devicetree@...r.kernel.org,
	linux-kernel@...r.kernel.org
Cc: ningyu@...incomputing.com,
	linmin@...incomputing.com,
	huangyifeng@...incomputing.com,
	pinkesh.vaghela@...fochips.com,
	Xuyang Dong <dongxuyang@...incomputing.com>
Subject: [PATCH v7 0/2] Add driver support for ESWIN eic7700 SoC reset controller

From: Xuyang Dong <dongxuyang@...incomputing.com>

This series depends on the config option patch [1].

[1] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?h=next-20250929&id=ce2d00c6e192b588ddc3d1efb72b0ea00ab5538f

Updates:

  dt-bindings: reset: eswin: Documentation for eic7700 SoC
  v6 -> v7:
    1. Removed vendor prefix patch dependency from cover letter, because the
       patch was applied. Updated the link of config option patch.
    2. Modified reg address from 0x51828000 to 0x51828300 in yaml. Beacuse the
       SoC used the reset registers from 0x51828300.
    3. Modified reg size from 0x80000 to 0x200. Beacuse reset registers used
       the size of 0x200.
    4. Modified SYSCRG_CLEAR_BOOT_INFO_OFFSET from 0x30C to 0xC. Modified
       SYSCRG_RESET_OFFSET from 0x400 to 0x100. Because modified the 
       reset-controller reg from 0x51828000 to 0x51828300. And the offset was 
       also modified.
    5. Added .reg_stride = 4 in eic7700_regmap_config. Beacuse riscv supported
       4-byte aligned access.
    Link to v6: https://lore.kernel.org/all/20250826110610.1338-1-dongxuyang@eswincomputing.com/

  v5 -> v6:
    Add dependencies of vendor prefix and config option patch in cover-letter.
    Link to v5: https://lore.kernel.org/all/20250725093249.669-1-dongxuyang@eswincomputing.com/

  v4 -> v5:
    1. Dropped EIC7700_RESET_MAX from bindings.
    2. Add "Reviewed-by" tag of "Krzysztof Kozlowski" for Patch 1.
    3. Corrected the link to previous versions.
    Link to v4: https://lore.kernel.org/all/20250715121427.1466-1-dongxuyang@eswincomputing.com/

  v3 -> v4:
    1. Remove register offsets in dt-bindings.
    2. The const value of "#reset-cell" was changed from 2 to 1.
       Because the offsets were removed from dt-bindings. There are
       only IDs. And removed the description of it.
    3. Modify copyright year from 2024 to 2025.
    4. Redefined the IDs in the dt-bindings and used these to build a
       reset array in reset driver. Ensure that the reset register and
       reset value corresponding to the IDs are correct.
    Link to v3: https://lore.kernel.org/all/20250619075811.1230-1-dongxuyang@eswincomputing.com/

  v2 -> v3:
    1. Drop syscon and simple-mfd from yaml and code, because these are
       not necessary.
    2. Update description to introduce reset controller.
    3. Add reset control indices for dt-bindings.
    4. Keep the register offsets in dt-bindings.
    Link to v2: https://lore.kernel.org/all/20250619075811.1230-1-dongxuyang@eswincomputing.com/

  v1 -> v2:
    1. Clear warnings/errors for using "make dt_binding_check".
    2. Update example, change parent node from sys-crg to reset-controller
       for reset yaml.
    3. Drop the child node and add '#reset-cells' to the parent node.
    4. Drop the description, because sys-crg block is changed to reset-
       controller.
    5. Change hex numbers to decimal numbers going from 0, and drop the
       not needed hardware numbers.
    Link to v1: https://lore.kernel.org/all/20250619075811.1230-1-dongxuyang@eswincomputing.com/

  reset: eswin: Add eic7700 reset driver
  v6 -> v7:
    1. Added .reg_stride = 4 in regmap_config. Because eic7700 only supported
       4-byte register access.
    2. Modified SYSCRG_CLEAR_BOOT_INFO_OFFSET from 0x30C to 0xC. Modified
       SYSCRG_RESET_OFFSET from 0x400 to 0x100. Because the base address has
       changed from 0x51828000 to 0x51828300.

  v5 -> v6:
    1. Removed platform_set_drvdata() function.
    2. In probe function, defined struct device *dev = &pdev->dev.
       Modified &pdev->dev to dev.
    Link to v5: https://lore.kernel.org/all/20250725093249.669-1-dongxuyang@eswincomputing.com/

  v4 -> v5:
    1. The value of .max_register is 0x7fffc.
    2. Converted "to_eswin_reset_data" from macro to inline function.
    3. Modified EIC7700_RESET_OFFSET to EIC7700_RESET and eic7700_
       register_offset to eic7700_reset.
    4. Since EIC7700_RESET_MAX is dropped, used eic7700_reset[] without
       EIC7700_RESET_MAX.
    5. Removed function eswin_reset_set, and put regmap_clear_bits in
       eswin_reset_assert and regmap_set_bits in eswin_reset_deassert.
    6. Added usleep_range in function eswin_reset_reset which was missed.
    7. Used ARRAY_SIZE(eic7700_reset) for data->rcdev.nr_resets.
    8. Use builtin_platform_driver, because reset driver is a reset
       controller for SoC. Removed eswin_reset_init function.
    9. Modified eswin_reset_* to eic7700_reset_*.
    Link to v4: https://lore.kernel.org/all/20250715121427.1466-1-dongxuyang@eswincomputing.com/

  v3 -> v4:
    1. Add 'const' for the definition. It is 'const struct of_phandle_
       args *reset_spec = data;'.
    2. Modify copyright year from 2024 to 2025.
    3. Included "eswin,eic7700-reset.h" in reset driver.
    4. Added mapping table for reset IDs.
    5. Removed of_xlate and idr functions as we are using IDs from DTS.
    6. Removed .remove function.
    Link to v3: https://lore.kernel.org/all/20250619075811.1230-1-dongxuyang@eswincomputing.com/

  v2 -> v3:
    1. Change syscon_node_to_regmap() to MMIO regmap functions, because
       dropped syscon.
    2. Add BIT() in function eswin_reset_set() to shift the reset
       control indices.
    3. Remove forced type conversions from function eswin_reset_of_
       xlate_lookup_id().
    Link to v2: https://lore.kernel.org/all/20250619075811.1230-1-dongxuyang@eswincomputing.com/

  v1 -> v2:
    1. Modify the code according to the suggestions.
    2. Use eswin_reset_assert() and eswin_reset_deassert in function
       eswin_reset_reset().
    3. Place RESET_EIC7700 in Kconfig and Makefile in order.
    4. Use dev_err_probe() in probe function.
    Link to v1: https://lore.kernel.org/all/20250619075811.1230-1-dongxuyang@eswincomputing.com/

Xuyang Dong (2):
  dt-bindings: reset: eswin: Documentation for eic7700 SoC
  reset: eswin: Add eic7700 reset driver

 .../bindings/reset/eswin,eic7700-reset.yaml   |  42 ++
 drivers/reset/Kconfig                         |  10 +
 drivers/reset/Makefile                        |   1 +
 drivers/reset/reset-eic7700.c                 | 429 ++++++++++++++++++
 .../dt-bindings/reset/eswin,eic7700-reset.h   | 298 ++++++++++++
 5 files changed, 780 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/reset/eswin,eic7700-reset.yaml
 create mode 100644 drivers/reset/reset-eic7700.c
 create mode 100644 include/dt-bindings/reset/eswin,eic7700-reset.h

--
2.43.0


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ