mirror-linux/drivers/pwm
Linus Torvalds 416f99c3b1 Driver core changes for 6.19-rc1
- Arch Topology:
   - Move parse_acpi_topology() from arm64 to common code for reuse in RISC-V
 
 - CPU:
   - Expose housekeeping CPUs through /sys/devices/system/cpu/housekeeping
   - Print a newline (or 0x0A) instead of '(null)' reading
     /sys/devices/system/cpu/nohz_full when nohz_full= is not set
 
 - debugfs
   - Remove (broken) 'no-mount' mode
   - Remove redundant access mode checks in debugfs_get_tree() and
     debugfs_create_*() functions
 
 - Devres:
   - Remove unused devm_free_percpu() helper
   - Move devm_alloc_percpu() from device.h to devres.h
 
 - Firmware Loader:
   - Replace simple_strtol() with kstrtoint()
   - Do not call cancel_store() when no upload is in progress
 
 - kernfs:
   - Increase struct super_block::maxbytes to MAX_LFS_FILESIZE
   - Fix a missing unwind path in __kernfs_new_node()
 
 - Misc:
   - Increase the name size in struct auxiliary_device_id to 40 characters
   - Replace system_unbound_wq with system_dfl_wq and add WQ_PERCPU to
     alloc_workqueue()
 
 - Platform:
   - Replace ERR_PTR() with IOMEM_ERR_PTR() in platform ioremap functions
 
 - Rust:
   - Auxiliary:
     - Unregister auxiliary device on parent device unbind
     - Move parent() to impl Device; implement device context aware parent() for
       Device<Bound>
     - Illustrate how to safely obtain a driver's device private data when
       calling from an auxiliary driver into the parant device driver
 
   - DebugFs:
     - Implement support for binary large objects
 
   - Device:
     - Let probe() return the driver's device private data as pinned initializer,
       i.e. impl PinInit<Self, Error>
     - Implement safe accessor for a driver's device private data for
       Device<Bound> (returned reference can't out-live driver binding and
       guarantees the correct private data type)
     - Implement AsBusDevice trait, to be used by class device abstractions to
       derive the bus device type of the parent device
 
   - DMA:
     - Store raw pointer of allocation as NonNull
     - Use start_ptr() and start_ptr_mut() to inherit correct mutability of self
 
   - FS:
     - Add file::Offset type alias
 
   - I2C:
     - Add abstractions for I2C device / driver infrastructure
     - Implement abstractions for manual I2C device registrations
 
   - I/O:
     - Use "kernel vertical" style for imports
     - Define ResourceSize as resource_size_t
     - Move ResourceSize to top-level I/O module
     - Add type alias for phys_addr_t
     - Implement Rust version of read_poll_timeout_atomic()
 
   - PCI:
     - Use "kernel vertical" style for imports
     - Move I/O and IRQ infrastructure to separate files
     - Add support for PCI interrupt vectors
     - Implement TryInto<IrqRequest<'a>> for IrqVector<'a> to convert an
       IrqVector bound to specific pci::Device into an IrqRequest bound to the
       same pci::Device's parent Device
     - Leverage pin_init_scope() to get rid of redundant Result in IRQ methods
 
   - PinInit:
     - Add {pin_}init_scope() to execute code before creating an initializer
 
   - Platform:
     - Leverage pin_init_scope() to get rid of redundant Result in IRQ methods
 
   - Timekeeping:
     - Implement abstraction of udelay()
 
   - Uaccess:
     - Implement read_slice_partial() and read_slice_file() for UserSliceReader
     - Implement write_slice_partial() and write_slice_file() for UserSliceWriter
 
 - sysfs
   - Prepare the constification of struct attribute
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQS2q/xV6QjXAdC7k+1FlHeO1qrKLgUCaTAehwAKCRBFlHeO1qrK
 LmzvAP0TWwKUGIduccknIa1AFvBM92lWVZptSysotv3SLFZq3wD9GBLIENt1DkEk
 s+GBqbobPgoyaodaysqLQ/SNqF9TcAM=
 =Wutw
 -----END PGP SIGNATURE-----

Merge tag 'driver-core-6.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/driver-core/driver-core

Pull driver core updates from Danilo Krummrich:
 "Arch Topology:
   - Move parse_acpi_topology() from arm64 to common code for reuse in
     RISC-V

  CPU:
   - Expose housekeeping CPUs through /sys/devices/system/cpu/housekeeping
   - Print a newline (or 0x0A) instead of '(null)' reading
     /sys/devices/system/cpu/nohz_full when nohz_full= is not set

  debugfs
   - Remove (broken) 'no-mount' mode
   - Remove redundant access mode checks in debugfs_get_tree() and
     debugfs_create_*() functions

  Devres:
   - Remove unused devm_free_percpu() helper
   - Move devm_alloc_percpu() from device.h to devres.h

  Firmware Loader:
   - Replace simple_strtol() with kstrtoint()
   - Do not call cancel_store() when no upload is in progress

  kernfs:
   - Increase struct super_block::maxbytes to MAX_LFS_FILESIZE
   - Fix a missing unwind path in __kernfs_new_node()

  Misc:
   - Increase the name size in struct auxiliary_device_id to 40
     characters
   - Replace system_unbound_wq with system_dfl_wq and add WQ_PERCPU to
     alloc_workqueue()

  Platform:
   - Replace ERR_PTR() with IOMEM_ERR_PTR() in platform ioremap
     functions

  Rust:
   - Auxiliary:
      - Unregister auxiliary device on parent device unbind
      - Move parent() to impl Device; implement device context aware
        parent() for Device<Bound>
      - Illustrate how to safely obtain a driver's device private data
        when calling from an auxiliary driver into the parant device
        driver

   - DebugFs:
      - Implement support for binary large objects

   - Device:
      - Let probe() return the driver's device private data as pinned
        initializer, i.e. impl PinInit<Self, Error>
      - Implement safe accessor for a driver's device private data for
        Device<Bound> (returned reference can't out-live driver binding
        and guarantees the correct private data type)
      - Implement AsBusDevice trait, to be used by class device
        abstractions to derive the bus device type of the parent device

   - DMA:
      - Store raw pointer of allocation as NonNull
      - Use start_ptr() and start_ptr_mut() to inherit correct
        mutability of self

   - FS:
      - Add file::Offset type alias

   - I2C:
      - Add abstractions for I2C device / driver infrastructure
      - Implement abstractions for manual I2C device registrations

   - I/O:
      - Use "kernel vertical" style for imports
      - Define ResourceSize as resource_size_t
      - Move ResourceSize to top-level I/O module
      - Add type alias for phys_addr_t
      - Implement Rust version of read_poll_timeout_atomic()

   - PCI:
      - Use "kernel vertical" style for imports
      - Move I/O and IRQ infrastructure to separate files
      - Add support for PCI interrupt vectors
      - Implement TryInto<IrqRequest<'a>> for IrqVector<'a> to convert
        an IrqVector bound to specific pci::Device into an IrqRequest
        bound to the same pci::Device's parent Device
      - Leverage pin_init_scope() to get rid of redundant Result in IRQ
        methods

   - PinInit:
      - Add {pin_}init_scope() to execute code before creating an
        initializer

   - Platform:
      - Leverage pin_init_scope() to get rid of redundant Result in IRQ
        methods

   - Timekeeping:
      - Implement abstraction of udelay()

   - Uaccess:
      - Implement read_slice_partial() and read_slice_file() for
        UserSliceReader
      - Implement write_slice_partial() and write_slice_file() for
        UserSliceWriter

  sysfs:
   - Prepare the constification of struct attribute"

* tag 'driver-core-6.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/driver-core/driver-core: (75 commits)
  rust: pci: fix build failure when CONFIG_PCI_MSI is disabled
  debugfs: Fix default access mode config check
  debugfs: Remove broken no-mount mode
  debugfs: Remove redundant access mode checks
  driver core: Check drivers_autoprobe for all added devices
  driver core: WQ_PERCPU added to alloc_workqueue users
  driver core: replace use of system_unbound_wq with system_dfl_wq
  tick/nohz: Expose housekeeping CPUs in sysfs
  tick/nohz: avoid showing '(null)' if nohz_full= not set
  sysfs/cpu: Use DEVICE_ATTR_RO for nohz_full attribute
  kernfs: fix memory leak of kernfs_iattrs in __kernfs_new_node
  fs/kernfs: raise sb->maxbytes to MAX_LFS_FILESIZE
  mod_devicetable: Bump auxiliary_device_id name size
  sysfs: simplify attribute definition macros
  samples/kobject: constify 'struct foo_attribute'
  samples/kobject: add is_visible() callback to attribute group
  sysfs: attribute_group: enable const variants of is_visible()
  sysfs: introduce __SYSFS_FUNCTION_ALTERNATIVE()
  sysfs: transparently handle const pointers in ATTRIBUTE_GROUPS()
  sysfs: attribute_group: allow registration of const attribute
  ...
2025-12-05 21:29:02 -08:00
..
Kconfig Merge branch 'pwm/th1520' into pwm/for-next 2025-11-14 11:56:14 +01:00
Makefile Merge branch 'pwm/th1520' into pwm/for-next 2025-11-14 11:56:14 +01:00
core.c Merge branch 'pwm/th1520' into pwm/for-next 2025-11-14 11:56:14 +01:00
pwm-ab8500.c
pwm-adp5585.c pwm: adp5585: Correct mismatched pwm chip info 2025-11-14 11:55:56 +01:00
pwm-airoha.c pwm: airoha: Add support for EN7581 SoC 2025-11-14 11:56:14 +01:00
pwm-apple.c
pwm-argon-fan-hat.c pwm: argon-fan-hat: Add Argon40 Fan HAT support 2025-07-07 08:39:35 +02:00
pwm-atmel-hlcdc.c pwm: Switch back to struct platform_driver::remove() 2024-09-16 15:24:59 +02:00
pwm-atmel-tcb.c pwm: atmel-tcb: Use min() macro 2024-10-25 11:33:34 +02:00
pwm-atmel.c pwm: atmel: Drop driver local locking 2025-07-07 08:39:35 +02:00
pwm-axi-pwmgen.c include: linux: move adi-axi-common.h out of fpga 2025-06-30 17:57:15 -07:00
pwm-bcm-iproc.c
pwm-bcm-kona.c
pwm-bcm2835.c pwm: bcm2835: Make sure the channel is enabled after pwm_request() 2025-11-19 11:41:00 +01:00
pwm-berlin.c pwm: berlin: Fix wrong register in suspend/resume 2025-09-15 11:39:43 +02:00
pwm-brcmstb.c
pwm-clk.c pwm: Switch back to struct platform_driver::remove() 2024-09-16 15:24:59 +02:00
pwm-clps711x.c pwm: clps711x: Drop driver local locking 2025-07-07 08:39:35 +02:00
pwm-crc.c
pwm-cros-ec.c pwm: cros-ec: Avoid -Wflex-array-member-not-at-end warnings 2025-09-15 11:39:47 +02:00
pwm-dwc-core.c module: Convert default symbol namespace to string literal 2024-12-03 08:22:25 -08:00
pwm-dwc.c pwm: Replace deprecated PCI functions 2024-12-18 11:12:05 +01:00
pwm-dwc.h module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
pwm-ep93xx.c pwm: ep93xx: drop legacy pinctrl 2024-09-12 14:33:11 +00:00
pwm-fsl-ftm.c pwm: Add the S32G support in the Freescale FTM driver 2025-09-15 11:39:45 +02:00
pwm-gpio.c pwm: gpio: Switch to use hrtimer_setup() 2025-02-07 16:41:37 +01:00
pwm-hibvt.c pwm: Switch back to struct platform_driver::remove() 2024-09-16 15:24:59 +02:00
pwm-img.c pwm: img: Remove redundant pm_runtime_mark_last_busy() calls 2025-07-09 10:51:20 +02:00
pwm-imx-tpm.c pwm: imx-tpm: Reset counter if CMOD is 0 2025-07-29 17:51:27 +02:00
pwm-imx1.c pwm: add missing MODULE_DESCRIPTION() macros 2024-07-10 17:52:46 +02:00
pwm-imx27.c pwm: imx27: Use clk_bulk_*() API to simplify clock handling 2024-10-25 11:42:36 +02:00
pwm-intel-lgm.c pwm: add missing MODULE_DESCRIPTION() macros 2024-07-10 17:52:46 +02:00
pwm-iqs620a.c
pwm-jz4740.c pwm: jz4740: Another few conversions to regmap_{set,clear}_bits() 2024-07-10 17:52:46 +02:00
pwm-keembay.c
pwm-loongson.c pwm: loongson: Fix LOONGSON_PWM_FREQ_DEFAULT 2025-09-15 11:39:28 +02:00
pwm-lp3943.c pwm: lp3943: Fix an incorrect type in lp3943_pwm_parse_dt() 2024-09-16 15:23:36 +02:00
pwm-lpc18xx-sct.c pwm: lpc18xx-sct: Drop driver local locking 2025-07-07 08:39:36 +02:00
pwm-lpc32xx.c
pwm-lpss-pci.c pwm: Changes for v6.14-rc1 2025-01-22 10:43:09 -08:00
pwm-lpss-platform.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
pwm-lpss.c Pin control changes for the v6.15 kernel cycle: 2025-03-29 16:59:16 -07:00
pwm-lpss.h pwm: lpss: Only include <linux/pwm.h> where needed 2025-02-04 08:23:42 +01:00
pwm-max7360.c pwm: max7360: Clean MAX7360 code 2025-11-14 11:56:14 +01:00
pwm-mc33xs2410.c pwm: mc33xs2410: add hwmon support 2025-07-24 09:20:39 +02:00
pwm-mediatek.c pwm: mediatek: Make use of struct_size macro 2025-11-14 11:56:14 +01:00
pwm-meson.c pwm: meson: Simplify meson_pwm_cnt_to_ns() 2025-04-14 08:03:15 +02:00
pwm-microchip-core.c pwm: microchip-core: Drop driver local locking 2025-07-07 08:39:36 +02:00
pwm-mtk-disp.c
pwm-mxs.c
pwm-ntxec.c
pwm-omap-dmtimer.c pwm: Switch back to struct platform_driver::remove() 2024-09-16 15:24:59 +02:00
pwm-pca9685.c pwm: pca9586: Convert to waveform API 2025-09-15 11:39:46 +02:00
pwm-pxa.c pwm: pxa: Add optional reset control 2025-07-07 08:39:33 +02:00
pwm-raspberrypi-poe.c
pwm-rcar.c pwm: rcar: Improve register calculation 2025-04-04 09:23:39 +02:00
pwm-renesas-tpu.c
pwm-rockchip.c pwm: rockchip: Round period/duty down on apply, up on get 2025-07-07 08:39:35 +02:00
pwm-rz-mtu3.c
pwm-rzg2l-gpt.c pwm: rzg2l-gpt: Allow checking period_tick cache value only if sibling channel is enabled 2025-11-27 09:58:07 +01:00
pwm-samsung.c of: remove internal arguments from of_property_for_each_u32() 2024-07-25 06:53:47 -05:00
pwm-sifive.c pwm: sifive: Fix rounding and idempotency issues in apply and get_state 2025-07-07 08:39:34 +02:00
pwm-sl28cpld.c
pwm-sophgo-sg2042.c pwm: sophgo-sg2042: Add support for SG2044 2025-07-07 08:39:34 +02:00
pwm-spear.c pwm: add missing MODULE_DESCRIPTION() macros 2024-07-10 17:52:46 +02:00
pwm-sprd.c
pwm-sti.c pwm: sti: Drop driver local locking 2025-07-07 08:39:36 +02:00
pwm-stm32-lp.c pwm: stm32-lp: Add support for stm32mp25 2025-05-13 11:13:56 +01:00
pwm-stm32.c pwm: stm32: add support for stm32mp25 2025-07-07 08:39:34 +02:00
pwm-stmpe.c pwm: stmpe: Allow to compile as a module 2025-03-03 10:38:54 +01:00
pwm-sun4i.c pwm: sun4i: Drop driver local locking 2025-07-07 08:39:36 +02:00
pwm-sunplus.c
pwm-tegra.c pwm: Switch back to struct platform_driver::remove() 2024-09-16 15:24:59 +02:00
pwm-tiecap.c pwm: tiecap: Document behaviour of hardware disable 2025-09-15 11:39:44 +02:00
pwm-tiehrpwm.c pwm: tiehrpwm: Fix corner case in clock divisor calculation 2025-09-15 11:39:43 +02:00
pwm-twl-led.c pwm: twl-led: Drop driver local locking 2025-07-07 08:39:36 +02:00
pwm-twl.c
pwm-visconti.c pwm: add missing MODULE_DESCRIPTION() macros 2024-07-10 17:52:46 +02:00
pwm-vt8500.c
pwm-xilinx.c pwm: xilinx: Simplify using devm_ functions 2024-07-10 17:53:52 +02:00
pwm_th1520.rs Driver core changes for 6.19-rc1 2025-12-05 21:29:02 -08:00