Merge tag 'char-misc-6.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh...
authorLinus Torvalds <torvalds@linux-foundation.org>
Fri, 1 Sep 2023 16:53:54 +0000 (09:53 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 1 Sep 2023 16:53:54 +0000 (09:53 -0700)
Pull char/misc driver updates from Greg KH:
 "Here is the big set of char/misc and other small driver subsystem
  changes for 6.6-rc1.

  Stuff all over the place here, lots of driver updates and changes and
  new additions. Short summary is:

   - new IIO drivers and updates

   - Interconnect driver updates

   - fpga driver updates and additions

   - fsi driver updates

   - mei driver updates

   - coresight driver updates

   - nvmem driver updates

   - counter driver updates

   - lots of smaller misc and char driver updates and additions

  All of these have been in linux-next for a long time with no reported
  problems"

* tag 'char-misc-6.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (267 commits)
  nvmem: core: Notify when a new layout is registered
  nvmem: core: Do not open-code existing functions
  nvmem: core: Return NULL when no nvmem layout is found
  nvmem: core: Create all cells before adding the nvmem device
  nvmem: u-boot-env:: Replace zero-length array with DECLARE_FLEX_ARRAY() helper
  nvmem: sec-qfprom: Add Qualcomm secure QFPROM support
  dt-bindings: nvmem: sec-qfprom: Add bindings for secure qfprom
  dt-bindings: nvmem: Add compatible for QCM2290
  nvmem: Kconfig: Fix typo "drive" -> "driver"
  nvmem: Explicitly include correct DT includes
  nvmem: add new NXP QorIQ eFuse driver
  dt-bindings: nvmem: Add t1023-sfp efuse support
  dt-bindings: nvmem: qfprom: Add compatible for MSM8226
  nvmem: uniphier: Use devm_platform_get_and_ioremap_resource()
  nvmem: qfprom: do some cleanup
  nvmem: stm32-romem: Use devm_platform_get_and_ioremap_resource()
  nvmem: rockchip-efuse: Use devm_platform_get_and_ioremap_resource()
  nvmem: meson-mx-efuse: Convert to devm_platform_ioremap_resource()
  nvmem: lpc18xx_otp: Convert to devm_platform_ioremap_resource()
  nvmem: brcm_nvram: Use devm_platform_get_and_ioremap_resource()
  ...

1  2 
Documentation/devicetree/bindings/iio/frequency/adi,admv1014.yaml
MAINTAINERS
drivers/acpi/arm64/amba.c
drivers/android/binderfs.c
drivers/firmware/stratix10-rsu.c
drivers/hwmon/peci/dimmtemp.c

diff --cc MAINTAINERS
Simple merge
index b2a7631,0000000..60be8ee
mode 100644,000000..100644
--- /dev/null
@@@ -1,130 -1,0 +1,129 @@@
-       {"ARMHC500", 0}, /* ARM CoreSight ETM4x */
 +// SPDX-License-Identifier: GPL-2.0-only
 +
 +/*
 + * ACPI support for platform bus type.
 + *
 + * Copyright (C) 2015, Linaro Ltd
 + * Author: Graeme Gregory <graeme.gregory@linaro.org>
 + */
 +
 +#include <linux/acpi.h>
 +#include <linux/amba/bus.h>
 +#include <linux/clkdev.h>
 +#include <linux/clk-provider.h>
 +#include <linux/device.h>
 +#include <linux/err.h>
 +#include <linux/ioport.h>
 +#include <linux/kernel.h>
 +#include <linux/module.h>
 +
 +#include "init.h"
 +
 +static const struct acpi_device_id amba_id_list[] = {
 +      {"ARMH0061", 0}, /* PL061 GPIO Device */
 +      {"ARMH0330", 0}, /* ARM DMA Controller DMA-330 */
 +      {"ARMHC501", 0}, /* ARM CoreSight ETR */
 +      {"ARMHC502", 0}, /* ARM CoreSight STM */
 +      {"ARMHC503", 0}, /* ARM CoreSight Debug */
 +      {"ARMHC979", 0}, /* ARM CoreSight TPIU */
 +      {"ARMHC97C", 0}, /* ARM CoreSight SoC-400 TMC, SoC-600 ETF/ETB */
 +      {"ARMHC98D", 0}, /* ARM CoreSight Dynamic Replicator */
 +      {"ARMHC9CA", 0}, /* ARM CoreSight CATU */
 +      {"ARMHC9FF", 0}, /* ARM CoreSight Dynamic Funnel */
 +      {"", 0},
 +};
 +
 +static void amba_register_dummy_clk(void)
 +{
 +      static struct clk *amba_dummy_clk;
 +
 +      /* If clock already registered */
 +      if (amba_dummy_clk)
 +              return;
 +
 +      amba_dummy_clk = clk_register_fixed_rate(NULL, "apb_pclk", NULL, 0, 0);
 +      clk_register_clkdev(amba_dummy_clk, "apb_pclk", NULL);
 +}
 +
 +static int amba_handler_attach(struct acpi_device *adev,
 +                              const struct acpi_device_id *id)
 +{
 +      struct acpi_device *parent = acpi_dev_parent(adev);
 +      struct amba_device *dev;
 +      struct resource_entry *rentry;
 +      struct list_head resource_list;
 +      bool address_found = false;
 +      int irq_no = 0;
 +      int ret;
 +
 +      /* If the ACPI node already has a physical device attached, skip it. */
 +      if (adev->physical_node_count)
 +              return 0;
 +
 +      dev = amba_device_alloc(dev_name(&adev->dev), 0, 0);
 +      if (!dev) {
 +              dev_err(&adev->dev, "%s(): amba_device_alloc() failed\n",
 +                      __func__);
 +              return -ENOMEM;
 +      }
 +
 +      INIT_LIST_HEAD(&resource_list);
 +      ret = acpi_dev_get_resources(adev, &resource_list, NULL, NULL);
 +      if (ret < 0)
 +              goto err_free;
 +
 +      list_for_each_entry(rentry, &resource_list, node) {
 +              switch (resource_type(rentry->res)) {
 +              case IORESOURCE_MEM:
 +                      if (!address_found) {
 +                              dev->res = *rentry->res;
 +                              dev->res.name = dev_name(&dev->dev);
 +                              address_found = true;
 +                      }
 +                      break;
 +              case IORESOURCE_IRQ:
 +                      if (irq_no < AMBA_NR_IRQS)
 +                              dev->irq[irq_no++] = rentry->res->start;
 +                      break;
 +              default:
 +                      dev_warn(&adev->dev, "Invalid resource\n");
 +                      break;
 +              }
 +      }
 +
 +      acpi_dev_free_resource_list(&resource_list);
 +
 +      /*
 +       * If the ACPI node has a parent and that parent has a physical device
 +       * attached to it, that physical device should be the parent of
 +       * the amba device we are about to create.
 +       */
 +      if (parent)
 +              dev->dev.parent = acpi_get_first_physical_node(parent);
 +
 +      ACPI_COMPANION_SET(&dev->dev, adev);
 +
 +      ret = amba_device_add(dev, &iomem_resource);
 +      if (ret) {
 +              dev_err(&adev->dev, "%s(): amba_device_add() failed (%d)\n",
 +                     __func__, ret);
 +              goto err_free;
 +      }
 +
 +      return 1;
 +
 +err_free:
 +      amba_device_put(dev);
 +      return ret;
 +}
 +
 +static struct acpi_scan_handler amba_handler = {
 +      .ids = amba_id_list,
 +      .attach = amba_handler_attach,
 +};
 +
 +void __init acpi_amba_init(void)
 +{
 +      amba_register_dummy_clk();
 +      acpi_scan_add_handler(&amba_handler);
 +}
Simple merge
Simple merge
Simple merge