diff options
Diffstat (limited to 'static/freebsd/man4/fdt_pinctrl.4 3.html')
| -rw-r--r-- | static/freebsd/man4/fdt_pinctrl.4 3.html | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/static/freebsd/man4/fdt_pinctrl.4 3.html b/static/freebsd/man4/fdt_pinctrl.4 3.html new file mode 100644 index 00000000..97f4264c --- /dev/null +++ b/static/freebsd/man4/fdt_pinctrl.4 3.html @@ -0,0 +1,111 @@ +<table class="head"> + <tr> + <td class="head-ltitle">FDT_PINCTRL(4)</td> + <td class="head-vol">Device Drivers Manual</td> + <td class="head-rtitle">FDT_PINCTRL(4)</td> + </tr> +</table> +<div class="manual-text"> +<section class="Sh"> +<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1> +<p class="Pp"><code class="Nm">fdt_pinctrl</code> — <span class="Nd">FDT + I/O pin multiplexing support</span></p> +</section> +<section class="Sh"> +<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1> +<p class="Pp"><code class="Cd">device fdt_pinctrl</code></p> +</section> +<section class="Sh"> +<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1> +<p class="Pp">Pin multiplexing is a technology used to re-purpose a single + physical connection (depending on chip packaging it may be pin, ball, or + pad) by routing its signal to any one of several different SoC internal + devices. For example, based on the actual device design, a single SoC chip + pin might perform any of these roles: SPI clock, I2C data, GPIO pin, or PWM + signal. Function selection is performed by the pinmux controller, a SoC + hardware block which is usually controlled by a set of registers. Pinmux + controller capabilities and register format depend on the actual hardware + implementation.</p> +<p class="Pp">On <a class="Xr">fdt(4)</a> based systems, the pinmux controller + is represented by a node in the device tree. It may have any number of child + nodes representing pin configuration groups. Properties of such nodes are + hardware-specific and handled by individual pinctrl drivers.</p> +<section class="Ss"> +<h2 class="Ss" id="Example_1"><a class="permalink" href="#Example_1">Example + 1</a></h2> +<p class="Pp">Pinmux controller device tree node</p> +<div class="Bd Pp Li"> +<pre>pinctrl@7e220000 { + compatible = "vndr,soc1715-pinctrl"; + reg = <0x7e220000 0x100> + + spi0_pins: spi0 { + vndr,pins = <11 12> + vndr,functions = <ALT0 ALT5> + } + + i2c0_pins: i2c0 { + ... + } +}</pre> +</div> +<p class="Pp">Client devices are hardware devices that require certain pin + configurations to function properly. Depending on the state the device is in + (active, idle) it might require different pin configurations. Each + configuration is described by setting the pinctrl-N property to the list of + phandles pointing to specific child nodes of the pinmux controller node. N + is an integer value starting with 0 and incremented by 1 for every new set + of pin configurations. pinctrl-0 is a default configuration that is applied + in the <a class="Xr">fdt_pinctrl_configure_tree(9)</a> call. In addition to + referring to pin configurations by index, they can be referred to by name if + the pinctrl-names property is set. The value of pinctrl-names is a list of + strings with names for each pinctrl-N property. Client devices can request + specific configuration using <a class="Xr">fdt_pinctrl_configure(9)</a> and + <a class="Xr">fdt_pinctrl_configure_by_name(9)</a>.</p> +</section> +<section class="Ss"> +<h2 class="Ss" id="Example_2"><a class="permalink" href="#Example_2">Example + 2</a></h2> +<div class="Bd Li"> +<pre>backlight@7f000000 { + compatible = "vndr,vndr-bl" + reg = <0x7f000000 0x20> + ... + pinctrl-name = "active", "idle" + pinctrl-0 = <&backlight_active_pins> + pinctrl-1 = <&backlight_idle_pins> +}</pre> +</div> +<p class="Pp">The pinctrl driver should implement the FDT_PINCTRL_CONFIGURE + method, register itself as a pin configuration handler by calling + fdt_pinctrl_register function, and call + <a class="Xr">fdt_pinctrl_configure_tree(9)</a> to configure pins for all + enabled devices (devices where the "status" property is not set to + "disabled").</p> +</section> +</section> +<section class="Sh"> +<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE + ALSO</a></h1> +<p class="Pp"><a class="Xr">fdt_pinctrl(9)</a></p> +</section> +<section class="Sh"> +<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1> +<p class="Pp">The <code class="Nm">fdt_pinctrl</code> driver first appeared in + <span class="Ux">FreeBSD 10.2</span>.</p> +</section> +<section class="Sh"> +<h1 class="Sh" id="AUTHORS"><a class="permalink" href="#AUTHORS">AUTHORS</a></h1> +<p class="Pp">The <code class="Nm">fdt_pinctrl</code> device driver was + developed by <span class="An">Ian Lepore</span> + <<a class="Mt" href="mailto:ian@FreeBSD.org">ian@FreeBSD.org</a>>. + This manual page was written by <span class="An">Oleksandr Tymoshenko</span> + <<a class="Mt" href="mailto:gonzo@FreeBSD.org">gonzo@FreeBSD.org</a>>.</p> +</section> +</div> +<table class="foot"> + <tr> + <td class="foot-date">March 3, 2018</td> + <td class="foot-os">FreeBSD 15.0</td> + </tr> +</table> |
