2024-01-11 12:51:42 +08:00
|
|
|
# Copyright (c) 2024 Renesas Electronics Corporation
|
|
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
|
|
|
|
description: |
|
|
|
|
The Renesas RA pin controller is a node responsible for controlling
|
|
|
|
pin function selection and pin properties, such as routing a SCI0 RXD
|
|
|
|
to P610.
|
|
|
|
|
|
|
|
The node has the 'pinctrl' node label set in your SoC's devicetree,
|
|
|
|
so you can modify it like this:
|
|
|
|
|
|
|
|
&pinctrl {
|
|
|
|
/* your modifications go here */
|
|
|
|
};
|
|
|
|
|
|
|
|
All device pin configurations should be placed in child nodes of the
|
|
|
|
'pinctrl' node, as shown in this example:
|
|
|
|
|
|
|
|
/* You can put this in places like a board-pinctrl.dtsi file in
|
|
|
|
* your board directory, or a devicetree overlay in your application.
|
|
|
|
*/
|
|
|
|
|
|
|
|
/* include pre-defined combinations for the SoC variant used by the board */
|
2024-07-18 20:34:21 +08:00
|
|
|
#include <dt-bindings/pinctrl/renesas/pinctrl-ra.h>
|
2024-01-11 12:51:42 +08:00
|
|
|
|
|
|
|
&pinctrl {
|
|
|
|
/* configuration for the sci0 "default" state */
|
|
|
|
sci0_default: sci0_default {
|
|
|
|
group1 {
|
|
|
|
/* tx */
|
|
|
|
psels = <RA_PSEL(RA_PSEL_SCI_0, 6, 9)>;
|
|
|
|
drive-strength = "medium";
|
|
|
|
};
|
|
|
|
group2 {
|
|
|
|
/* rx */
|
|
|
|
psels = <RA_PSEL(RA_PSEL_SCI_0, 6, 10)>;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
The 'sci0_default' child node encodes the pin configurations for a
|
|
|
|
particular state of a device; in this case, the default (that is, active)
|
|
|
|
state.
|
|
|
|
|
|
|
|
As shown, pin configurations are organized in groups within each child node.
|
|
|
|
Each group can specify a list of pin function selections in the 'psels'
|
|
|
|
property.
|
|
|
|
|
|
|
|
A group can also specify shared pin properties common to all the specified
|
|
|
|
pins, such as the 'input-enable' property in group 2. Here is a list of
|
|
|
|
supported standard pin properties:
|
|
|
|
|
|
|
|
- bias-disable: Disable pull-up/down (default, not required).
|
|
|
|
- bias-pull-up: Enable pull-up resistor.
|
|
|
|
- input-enable: Enable input from the pin.
|
|
|
|
- drive-strength: Set the drive strength of the pin. Possible
|
|
|
|
values are: low, medium, highspeed-high, high.
|
|
|
|
|
|
|
|
To link pin configurations with a device, use a pinctrl-N property for some
|
|
|
|
number N, like this example you could place in your board's DTS file:
|
|
|
|
|
|
|
|
#include "board-pinctrl.dtsi"
|
|
|
|
|
|
|
|
&sci0 {
|
|
|
|
pinctrl-0 = <&uart0_default>;
|
|
|
|
pinctrl-1 = <&uart0_sleep>;
|
|
|
|
pinctrl-names = "default", "sleep";
|
|
|
|
};
|
|
|
|
|
2024-07-18 20:34:21 +08:00
|
|
|
compatible: "renesas,ra-pinctrl-pfs"
|
2024-01-11 12:51:42 +08:00
|
|
|
|
|
|
|
include: base.yaml
|
|
|
|
|
|
|
|
child-binding:
|
|
|
|
description: |
|
|
|
|
Definitions for a pinctrl state.
|
|
|
|
child-binding:
|
|
|
|
|
|
|
|
include:
|
|
|
|
- name: pincfg-node.yaml
|
|
|
|
property-allowlist:
|
|
|
|
- bias-disable
|
|
|
|
- bias-pull-up
|
|
|
|
- input-enable
|
|
|
|
- drive-open-drain
|
|
|
|
|
|
|
|
properties:
|
|
|
|
psels:
|
|
|
|
required: true
|
|
|
|
type: array
|
|
|
|
description: |
|
|
|
|
An array of pins sharing the same group properties. Each
|
|
|
|
element of the array is an integer constructed from the
|
|
|
|
pin number and the alternative function of the pin.
|
|
|
|
drive-strength:
|
|
|
|
type: string
|
|
|
|
enum:
|
|
|
|
- "low"
|
|
|
|
- "medium"
|
|
|
|
- "highspeed-high"
|
|
|
|
- "high"
|
|
|
|
default: "low"
|
|
|
|
description: |
|
|
|
|
The drive strength of a pin. The default value is low, as this
|
|
|
|
is the power on reset value.
|
2024-08-16 17:20:31 +08:00
|
|
|
renesas,analog-enable:
|
|
|
|
type: boolean
|
|
|
|
description: enable analog input
|