Commit c91f2a03 authored by Leela Krishna Amudala's avatar Leela Krishna Amudala Committed by Kukjin Kim
Browse files

Documentation: Add examples to samsung-pinctrl device tree bindings documentation



This patch adds examples to samsung-pinctrl.txt documentaion file
on how to make gpio binding and gpio request

Signed-off-by: default avatarLeela Krishna Amudala <l.krishna@samsung.com>
Reviewed-by: default avatarDoug Anderson <dianders@chromium.org>
Reviewed-by: default avatarTomasz Figa <t.figa@samsung.com>
Acked-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Signed-off-by: default avatarKukjin Kim <kgene.kim@samsung.com>
parent de39310d
Loading
Loading
Loading
Loading
+42 −2
Original line number Diff line number Diff line
@@ -21,8 +21,18 @@ Required Properties:

  - gpio-controller: identifies the node as a gpio controller and pin bank.
  - #gpio-cells: number of cells in GPIO specifier. Since the generic GPIO
    binding is used, the amount of cells must be specified as 2. See generic
    GPIO binding documentation for description of particular cells.
    binding is used, the amount of cells must be specified as 2. See the below
    mentioned gpio binding representation for description of particular cells.

	Eg: <&gpx2 6 0>
	<[phandle of the gpio controller node]
	[pin number within the gpio controller]
	[flags]>

	Values for gpio specifier:
	- Pin number: is a value between 0 to 7.
	- Flags: 0 - Active High
		 1 - Active Low

- Pin mux/config groups as child nodes: The pin mux (selecting pin function
  mode) and pin config (pull up/down, driver strength) settings are represented
@@ -266,3 +276,33 @@ Example 4: Set up the default pin state for uart controller.

		pinctrl = devm_pinctrl_get_select_default(&pdev->dev);
	}

Example 5: A display port client node that supports 'default' pinctrl state
	   and gpio binding.

	display-port-controller {
		/* ... */

		samsung,hpd-gpio = <&gpx2 6 0>;
		pinctrl-names = "default";
		pinctrl-0 = <&dp_hpd>;
	};

Example 6: Request the gpio for display port controller

	static int exynos_dp_probe(struct platform_device *pdev)
	{
		int hpd_gpio, ret;
		struct device *dev = &pdev->dev;
		struct device_node *dp_node = dev->of_node;

		/* ... */

		hpd_gpio = of_get_named_gpio(dp_node, "samsung,hpd-gpio", 0);

		/* ... */

		ret = devm_gpio_request_one(&pdev->dev, hpd_gpio, GPIOF_IN,
					    "hpd_gpio");
		/* ... */
	}