Re: [PATCH 2/4] pinctrl: Add pinctrl binding for Broadcom Capri SoCs

From: Matt Porter
Date: Fri Oct 04 2013 - 08:51:28 EST


On 10/03/2013 08:23 PM, Sherman Yin wrote:
Adds pinctrl driver devicetree binding for Broadcom Capri (BCM281xx) SoCs.

Signed-off-by: Sherman Yin <syin@xxxxxxxxxxxx>
Reviewed-by: Christian Daudt <bcm@xxxxxxxxxxxxx>
Reviewed-by: Matt Porter <matt.porter@xxxxxxxxxx>
---
.../bindings/pinctrl/brcm,capri-pinctrl.txt | 419 ++++++++++++++++++++
1 file changed, 419 insertions(+)
create mode 100644 Documentation/devicetree/bindings/pinctrl/brcm,capri-pinctrl.txt

diff --git a/Documentation/devicetree/bindings/pinctrl/brcm,capri-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/brcm,capri-pinctrl.txt
new file mode 100644
index 0000000..79e0e5a
--- /dev/null
+++ b/Documentation/devicetree/bindings/pinctrl/brcm,capri-pinctrl.txt
@@ -0,0 +1,419 @@
+Broadcom Capri Pin Controller
+
+This is a pin controller for the Broadcom BCM281xx SoC family, which includes
+BCM11130, BCM11140, BCM11351, BCM28145, and BCM28155 SoCs.
+
+=== Pin Controller Node ===
+
+Required Properties:
+
+- compatible: Must be "brcm,capri-pinctrl".
+- reg: Base address of the PAD Controller register block and the size
+ of the block.
+
+For example, the following is the bare minimum node:
+
+ pinctrl@35004800 {
+ compatible = "brcm,capri-pinctrl";
+ reg = <0x35004800 0x430>;
+ };
+
+As a Pin Controller Device, in addition to the required properties, this node
+should also contain the pin configuration nodes that client devices reference,
+if any.
+
+=== Pin Configuration Node ===
+
+Each pin configuration node is a sub-node of the pin controller node and is a
+container of an arbitrary number of subnodes, called group nodes.
+
+Please refer to the pinctrl-bindings.txt in this directory for details of the
+common pinctrl bindings used by client devices, including the definition of a
+"pin configuration node".
+
+=== Group Node ===
+
+A group node specifies the desired pin mux and/or pin configuration for an
+arbitrary number of pins. The group node only affect the properties specified
+in the node, and has no effect on any properties that are omitted.
+
+The names of the group nodes are optional and not used. The group nodes have
+the following properties:
+
+Required Properties:
+
+- brcm,pins: Multiple strings. Specifies the name(s) of one or more pins to
+ be configured by this node.
+
+Optional Properties:
+
+- brcm,function: Multiple strings. Specifies the pin mux selection. Values are:
+ "alt1", "alt2", "alt3", "alt4"
+- brcm,hysteresis: Multiple integers, applicable to standard pins only. Turns
+ on hysteresis of input.
+ 0: TTL input, 1: Schmitt Trigger input
+- brcm,pull: Multiple integers, applicable to standard pins only. Specifies
+ pull-up or pull-down.
+ 0: neither, 1: pull-up, 2: pull-down, 3: both
+- brcm,input_dis: Multiple integers, applicable to all pins. Input disable

I missed this before. Hyphens are preferred over underscores in property names.

+ control.
+ 0: off, 1: input disabled
+- brcm,slew: Multiple integers. Slew rate of output.
+ 0: fast output, 1: normal output (most pins)
+ 0: normal output, 1: fast output (IC_DM and IC_DP)
+ 0: Fast mode, 1: High speed mode (I2C)
+- brcm,drive_str: Multiple integers. Drive strength.
+ 0: 2 mA
+ 1: 4 mA
+ 2: 6 mA
+ 3: 8 mA
+ 4: 10 mA
+ 5: 12 mA
+ 6: 14 mA
+ 7: 16 mA
+- brcm,pull_up_str: Multiple integers. Pull Up strength.
+ 0: No pull-up
+ 1: 1.2 kOhm
+ 2: 1.8 kOhm
+ 3: 720 Ohm
+ 4: 2.7 kOhm
+ 5: 831 Ohm
+ 6: 1.08 kOhm
+ 7: 568 Ohm
+- brcm,mode: Multiple integers. Mode select.
+ 0: Fast mode, 1: High Speed mode (I2C)

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/