97 lines
3.0 KiB
YAML
97 lines
3.0 KiB
YAML
# Copyright (c) 2021 IoT.bzh
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
description: |
|
|
Renesas R-Car Pin Function Controller node
|
|
This binding gives a base representation of the R-Car pins configuration.
|
|
The R-Car pin controller is a singleton node responsible for controlling
|
|
pin function selection and pin properties. For example, you can use this
|
|
node to route CAN0 TX A to pin 'RD', and enable pull-up resistor as well
|
|
as driving ability.
|
|
|
|
The node has the 'pfc' node label set in your SoC's devicetree, so you can
|
|
modify it like this:
|
|
|
|
&pfc {
|
|
/* your modifications go here */
|
|
};
|
|
|
|
All device pin configurations should be placed in child nodes of the
|
|
'pfc' 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 pins and functions for the SoC used by the board */
|
|
#include <dt-bindings/pinctrl/renesas/pinctrl-r8a77951.h>
|
|
|
|
&pfc {
|
|
/* configuration for can0 data a tx default state */
|
|
can0_data_a_tx_default: can0_data_a_tx_default {
|
|
/* configure PIN_RD as FUNC_CAN0_TX_A */
|
|
pin = <PIN_RD FUNC_CAN0_TX_A>;
|
|
};
|
|
/* configuration for can0 data a rx default state */
|
|
can0_data_a_rx_default: can0_data_a_rx_default {
|
|
/* configure PIN_RD_WR as FUNC_CAN0_RX_A */
|
|
pin = <PIN_RD_WR FUNC_CAN0_RX_A>;
|
|
};
|
|
};
|
|
|
|
The 'can0_data_a_tx_default' child node encodes the pin configurations
|
|
for a particular state of a device; in this case, the default
|
|
(that is, active) state. You would specify the low-power configuration for
|
|
the same device in a separate child node.
|
|
|
|
A pin configuration can also specify pin properties such as the
|
|
'bias-pull-up' property. Here is a list of supported standard pin
|
|
properties:
|
|
|
|
- bias-disable
|
|
- bias-pull-down
|
|
- bias-pull-up
|
|
- drive-strength
|
|
- power-source
|
|
|
|
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"
|
|
|
|
&can0 {
|
|
pinctrl-0 = <&can0_data_a_tx_default &can0_data_a_rx_default>;
|
|
pinctrl-1 = <&can0_data_a_tx_sleep &can0_data_a_rx_sleep>;
|
|
pinctrl-names = "default", "sleep";
|
|
};
|
|
|
|
compatible: "renesas,rcar-pfc"
|
|
|
|
include: base.yaml
|
|
|
|
properties:
|
|
reg:
|
|
required: true
|
|
|
|
child-binding:
|
|
description: |
|
|
This binding gives a base representation of the R-Car pins configuration.
|
|
|
|
include:
|
|
- name: pincfg-node.yaml
|
|
property-allowlist:
|
|
- bias-disable
|
|
- bias-pull-down
|
|
- bias-pull-up
|
|
- drive-strength
|
|
- power-source
|
|
|
|
properties:
|
|
pin:
|
|
type: array
|
|
required: true
|
|
description: |
|
|
The array is expected to have up to two elements. The first element is
|
|
the pin the second optional element is the pin function.
|
|
drive-strength:
|
|
enum: [3, 6, 9, 12, 15, 18, 21, 24]
|