-
Notifications
You must be signed in to change notification settings - Fork 39
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Introduce the Renesas H3ULCB r8a77951 pinctrl driver with SCMI interface #19
Draft
oleksiimoisieiev
wants to merge
15
commits into
renesas-rcar:rcar_gen3_v2.5
Choose a base branch
from
oleksiimoisieiev:pinctrl_pr_github
base: rcar_gen3_v2.5
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Introduce the Renesas H3ULCB r8a77951 pinctrl driver with SCMI interface #19
oleksiimoisieiev
wants to merge
15
commits into
renesas-rcar:rcar_gen3_v2.5
from
oleksiimoisieiev:pinctrl_pr_github
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Revering SiP service removal. SiP functionality is needed for SCMI protocol implementation. This reverts commit ba21828. Signed-off-by: Oleksii Moisieiev <[email protected]>
Actually it is shared memory region owned by Secure World DDR area for communication between server (ARM TF) and client (some software running in lower privilege level) using SCMI protocol. Signed-off-by: Oleksandr Tyshchenko <[email protected]> Signed-off-by: Sergiy Kibrik <[email protected]>
Will be used in ATF SCP implementation. Signed-off-by: Sergiy Kibrik <[email protected]> Signed-off-by: Oleksii Moisieiev <[email protected]>
Signed-off-by: Sergiy Kibrik <[email protected]>
This driver does not actually manage R-Car power, but merely keeps Linux scmi_pm_domain driver happy by successful replies Signed-off-by: Sergiy Kibrik <[email protected]>
Add SCMI base procol commands handling. Signed-off-by: Sergiy Kibrik <[email protected]>
Put HW descriptions for EAVB, USB, I2C and audio controllers under corresponding drivers management. Signed-off-by: Sergiy Kibrik <[email protected]>
Set scmi_max_payload equals to SCMI_PAYLOAD_SZIE (128) from SCP-firmware, which was taken as a reference. Link to SCP firmware: https://github.com/ARM-software/SCP-firmware.git SCMI_PAYLOAD_SZIE is defined in software_mmap.h file and sets maximum payload for the scmi message. Linux kernel smc implementation also has max_payload = 128. This code was presented in the following patch: https://lore.kernel.org/r/[email protected] The direct link for the code line is: https://github.com/ARM-software/SCP-firmware/blob/dc4dfbad2b3104288f7aeade14ffca523a7b33ce/product/rcar/include/software_mmap.h#L78 Signed-off-by: Oleksii Moisieiev <[email protected]>
Complete implementation of the discover_list_protocols handler. It includes skip handling and dynamic generation of the protocols list. Signed-off-by: Oleksii Moisieiev <[email protected]>
This defines the generic interface, and ops, which should provide the platform specific implementation of pin control subsystem. This driver was designed to be used from agents via SCP, as well as from the other drivers, which requires pins configuration. Signed-off-by: Oleksii Moisieiev <[email protected]>
Moved implementation of the r8a77951 pinctrl driver. Implementation was taken from the follwoing location Repository: https://github.com/renesas-rcar/linux-bsp.git Path: drivers/pinctrl/renesas Commit: 301d2c636929be96f3d87b1b5d287f87ed67a7be Signed-off-by: Oleksii Moisieiev <[email protected]>
Implementation of the r8a77951 pinctrl driver, based on the renesas linux-bsp source code. Implements include/drivers/pinctrl.h generic interface. Signed-off-by: Oleksii Moisieiev <[email protected]>
Moving ALIGN_NEXT macro to the common header, so another SCMI protocols could use this macro. Signed-off-by: Oleksii Moisieiev <[email protected]>
SCMI pinctrl implementation for Renesas. Using pinctrl driver to work with PINS. This driver implements SCMI Pinctrl protocol and provides interface for agents to access to the HW. Signed-off-by: Oleksii Moisieiev <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This merge request was marked as Draft because SCMI protocol is still under the discussion.
The main idea of the feature is to separate HW configuration from the OS level and move it to AT-F. This gives a big advantages for virtualized systems, when different set of pins should be assigned to the different OS. In this case, actual sets of pins could be passed to different OS, which has registered scmi-pinctrl clients and requests AT-F to do any HW changes.
This is the implementation of the pinctrl driver for Renesas H3ULCB board, which provides the mappings and configurations of pins and has exclusive access to the HW. Pin control subsystem configuration can be accessed and modified through the SCMI pinctrl protocol. This protocol is under discussion right now, so the implementation is not final.
The Pin States configuration is expected to take place on OS side, which performs the configuration and requests AT-F to make changes in HW.
This can be tested using the follwoing scenario:
using command:
set CONFIG_PINCTRL_SCMI=y in your .config
Upload bl2.bin and bl31.bin to the board and boot using linux-bsp kernel and the device-tree from the previous steps.
This setup will redirect the pin control subsystem requests from the kernel to AT-F.
Check if the devices works properly.