• Arnd Bergmann's avatar
    Merge tag 'scmi-updates-4.17' of... · f46f11dc
    Arnd Bergmann authored
    Merge tag 'scmi-updates-4.17' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into next/drivers
    
    Pull "ARM SCMI support for v4.17" from Sudeep Holla:
    
    ARM System Control and Management Interface(SCMI)[1] is more flexible and
    easily extensible than any of the existing interfaces.
    
    Few existing as well as future ARM platforms provide micro-controllers
    to abstract various power and other system management tasks which have
    similar interfaces, both in terms of the functions that are provided by
    them, and in terms of how requests are communicated to them.
    
    There are quite a few protocols like ARM SCPI, TI SCI, QCOM RPM, Nvidia Tegra
    BPMP, and so on already. This specification is to standardize and avoid any
    further fragmentation in the design of such interface by various vendors.
    
    The current SCMI driver implementation is very basic and initial support.
    It lacks support for notifications, asynchronous/delayed response, perf/power
    statistics region and sensor register region.
    
    Mailbox is the only form of transport supported currently in the driver.
    SCMI supports interrupt based mailbox communication, where, on completion
    of the processing of a message, the caller receives an interrupt as well as
    polling for completion.
    
    SCMI is designed to minimize the dependency on the mailbox/transport
    hardware. So in terms of SCMI, each channel in the mailbox includes
    memory area, doorbell and completion interrupt.
    
    However the doorbell and completion interrupt is highly mailbox dependent
    which was bit of controversial as part of SCMI/mailbox discussions.
    
    Arnd and me discussed about the few aspects of SCMI and the mailbox framework:
    
    1. Use of mailbox framework for doorbell type mailbox controller:
       - Such hardware may not require any data to be sent to signal the remote
         about the presence of a message. The channel will have in-built
         information on how to trigger the signal to the remote.
         There are few mailbox controller drivers which are purely doorbell based.
         e.g.QCOM IPC, STM, Tegra, ACPI PCC,..etc
    
    2. Supporting other mailbox controller:
       - SCMI just needs a mechanism to signal the remote firmware. Such
         controller may need fixed message to be sent to trigger a doorbell.
         In such case we may need to get that data from DT and pass the same
         to the controller. It's not covered in the current DT binding, but
         can be extended as optional property in future.
    
         However handling notifications may be interesting on such mailbox, but
         again there is no way to interpret what the data field(remote message)
         means, it could be a bit mask or a number or don't-care.
    
    Arnd mentioned that he doesn't like the way the mailbox binding deals
    with doorbell-type hardware, but we do have quite a few precedent drivers
    already and changing the binding to add a data field would not make it any
    better, but could cause other problems. So he is happy with the status quo
    of SCMI implementation.
    
    [1] http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.den0056a/index.html
    
    * tag 'scmi-updates-4.17' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux:
      cpufreq: scmi: add support for fast frequency switching
      cpufreq: add support for CPU DVFS based on SCMI message protocol
      hwmon: add support for sensors exported via ARM SCMI
      hwmon: (core) Add hwmon_max to hwmon_sensor_types enumeration
      clk: add support for clocks provided by SCMI
      firmware: arm_scmi: add device power domain support using genpd
      firmware: arm_scmi: add per-protocol channels support using idr objects
      firmware: arm_scmi: refactor in preparation to support per-protocol channels
      firmware: arm_scmi: add option for polling based performance domain operations
      firmware: arm_scmi: add support for polling based SCMI transfers
      firmware: arm_scmi: probe and initialise all the supported protocols
      firmware: arm_scmi: add initial support for sensor protocol
      firmware: arm_scmi: add initial support for power protocol
      firmware: arm_scmi: add initial support for clock protocol
      firmware: arm_scmi: add initial support for performance protocol
      firmware: arm_scmi: add scmi protocol bus to enumerate protocol devices
      firmware: arm_scmi: add common infrastructure and support for base protocol
      firmware: arm_scmi: add basic driver infrastructure for SCMI
      dt-bindings: arm: add support for ARM System Control and Management Interface(SCMI) protocol
      dt-bindings: mailbox: add support for mailbox client shared memory
    f46f11dc
MAINTAINERS 436 KB