This includes helper function for pin configuration and a DT binding for the pinctrl DT node. There's two important notes to be made regarding this protocol: * pinctrl drivers have no subsytem API to implement as opposed to clock control drivers. Because of this (and the fact that `pinctrl_configure_pins()` doesn't require a `struct device` handle) the pinctrl driver consists only of a helper function, which implements the `PINCTRL_CONFIGURE_PINS` command. Additionally, the `scmi_protocol` structure is defined inside the pinctrl helpers source file to avoid redundant code (otherwise, each SCMI-based pinctrl driver would have to define it its source file). * each vendor may have their own set of pin propeties and DT representations for them. Because of this, there can't be a generic, SCMI-based pinctrl driver. As such, each vendor who wants to use the SCMI support for pinctrl operations will have to implement their pinctrl driver (which, to put it simply, revolves around implemeting `pinctrl_configure_pins()`) and make use of the pin configuration function introduced in this commit. Moreover, this means that each vendor will have control over the way their pin properties are encoded in the `scmi_pinctrl_settings` structure. Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
60 lines
1.7 KiB
Plaintext
60 lines
1.7 KiB
Plaintext
# Copyright 2024 NXP
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
if ARM_SCMI
|
|
|
|
config ARM_SCMI_CLK_HELPERS
|
|
bool "Helper functions for SCMI clock protocol"
|
|
default y
|
|
depends on DT_HAS_ARM_SCMI_CLOCK_ENABLED
|
|
help
|
|
Enable support for SCMI clock protocol helper functions.
|
|
|
|
config ARM_SCMI_MAILBOX_TRANSPORT
|
|
bool "SCMI transport based on shared memory and doorbells"
|
|
default y
|
|
depends on DT_HAS_ARM_SCMI_ENABLED
|
|
depends on ARM_SCMI_SHMEM
|
|
select ARM_SCMI_TRANSPORT_HAS_STATIC_CHANNELS
|
|
help
|
|
Enable support for SCMI transport based on shared memory
|
|
and doorbells.
|
|
|
|
config ARM_SCMI_PINCTRL_HELPERS
|
|
bool "Helper functions for SCMI pinctrl protocol"
|
|
default y
|
|
depends on DT_HAS_ARM_SCMI_PINCTRL_ENABLED
|
|
help
|
|
Enable support for SCMI pinctrl protocol helper functions.
|
|
|
|
config ARM_SCMI_SHMEM
|
|
bool "SCMI shared memory (SHMEM) driver"
|
|
default y
|
|
depends on DT_HAS_ARM_SCMI_SHMEM_ENABLED
|
|
help
|
|
Enable support for SCMI shared memory (SHMEM) driver.
|
|
|
|
config ARM_SCMI_SHMEM_INIT_PRIORITY
|
|
int "SCMI shared memory (SHMEM) initialization priority"
|
|
default 15
|
|
help
|
|
SCMI SHMEM driver device initialization priority.
|
|
|
|
config ARM_SCMI_TRANSPORT_HAS_STATIC_CHANNELS
|
|
bool "Transport layer has static channels"
|
|
help
|
|
Enable this if the SCMI transport layer uses static channels.
|
|
What this means is that each protocol will have its channels
|
|
assigned at compile time. This option is recommended for
|
|
transport layer drivers which can use the default channel
|
|
allocation scheme (i.e: use protocol-specific channels if
|
|
they exist, otherwise use base protocol channels).
|
|
|
|
config ARM_SCMI_TRANSPORT_INIT_PRIORITY
|
|
int "SCMI transport layer initialization priority"
|
|
default 20
|
|
help
|
|
SCMI transport driver device initialization priority.
|
|
|
|
endif # ARM_SCMI
|