devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Heiko Stübner" <heiko@sntech.de>
To: linux-arm-kernel@lists.infradead.org
Cc: Mark Rutland <mark.rutland@arm.com>,
	devicetree@vger.kernel.org, srv_hongzhou.yang@mediatek.com,
	Vladimir Murzin <vladimir.murzin@arm.com>,
	Russell King <linux@arm.linux.org.uk>,
	Pawel Moll <pawel.moll@arm.com>,
	srv_heupstream@mediatek.com,
	Ian Campbell <ijc+devicetree@hellion.org.uk>Hongzhou Yang
	<hongzhou.yang@mediatek.com>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Linus Walleij <linus.walleij@linaro.org>,
	Ashwin Chaugule <ashwin.chaugule@linaro.org>,
	linux-kernel@vger.kernel.org,
	Grant Likely <grant.likely@linaro.org>,
	Rob Herring <robh+dt@kernel.org>,
	=Sascha Hauer <kernel@pengutronix.de>,
	Kumar Gala <galak@codeaurora.org>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	"Joe.C" <yingjoe.chen@mediatek.com>
Subject: Re: [PATCH 4/4] dt-bindings: Add pinctrl bindings for mt65xx/mt81xx.
Date: Fri, 19 Sep 2014 15:48:57 +0200	[thread overview]
Message-ID: <8504020.ELHUosuJMo@diego> (raw)
In-Reply-To: <1411127306-13677-5-git-send-email-srv_hongzhou.yang@mediatek.com>

Am Freitag, 19. September 2014, 19:48:26 schrieb 
srv_hongzhou.yang@mediatek.com:
> From: Hongzhou Yang <hongzhou.yang@mediatek.com>
> 
> Add devicetree bindings for Mediatek SoC pinctrl driver.
> 
> Signed-off-by: Hongzhou Yang <hongzhou.yang@mediatek.com>
> ---
>  .../devicetree/bindings/pinctrl/pinctrl-mt65xx.txt | 92
> ++++++++++++++++++++++ 1 file changed, 92 insertions(+)
>  create mode 100644
> Documentation/devicetree/bindings/pinctrl/pinctrl-mt65xx.txt
> 
> diff --git a/Documentation/devicetree/bindings/pinctrl/pinctrl-mt65xx.txt
> b/Documentation/devicetree/bindings/pinctrl/pinctrl-mt65xx.txt new file
> mode 100644
> index 0000000..e2deff6
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/pinctrl/pinctrl-mt65xx.txt
> @@ -0,0 +1,92 @@
> +* Mediatek MT65XX Pin Controller
> +
> +The Mediatek's Pin controller is used to control GPIO pins.
> +
> +Required properties:
> +- compatible: value should be either of the following.
> +    (a) "mediatek,mt8135-pinctrl", compatible with mt8135 pinctrl.
> +- reg: Should contain the register physical address and length for the
> +  pin controller.
> +- gpio-controller : Marks the device node as a gpio controller.
> +- #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 the
> below +  mentioned gpio binding representation for description of
> particular cells. +
> +	Eg: <&pio 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 202.
> +	- Flags:  bit field of flags, as defined in <dt-bindings/gpio/gpio.h>.
> +            Only the following flags are supported:
> +            0 - GPIO_ACTIVE_HIGH
> +            1 - GPIO_ACTIVE_LOW
> +
> +Please refer to pinctrl-bindings.txt in this directory for details of the
> +common pinctrl bindings used by client devices.
> +
> +A pinctrl node should contain at least one subnodes representing the
> +pinctrl groups available on the machine. Each subnode will list the
> +pins it needs, and how they should be configured, with regard to muxer
> +configuration and pullups. If one of these options is
> +not set, its actual value will be unspecified.
> +
> +Required subnode-properties:
> +
> +- mediatek,pinfunc: List of gpio number and function to mux.
> +
> +The mediatek,pinfunc can use defines directly,
> +which are already defind in boot/dts/mt8135-pinfunc.h.
> +
> +Optional subnode-properties:
> +- mediatek,pull: Integer, defines in dt-bindings/pinctrl/mt65xx.h.
> +    MT_PIN_PULL_DISABLE: No resistor
> +    MT_PIN_CONF_PULL_UP: Pull-up resistor
> +    MT_PIN_CONF_PULL_DOWN: Pull-down resistor

Please use the generic pinconfig for such options instead of defining your own.

For examples on how to do this in a devicetree-context using 
pinconf_generic_parse_dt_config() you could look at

drivers/pinctrl/nomadik/pinctrl-abx500.c
drivers/pinctrl/pinctrl-tz1090.c
drivers/pinctrl/sh-pfc/pinctrl.c


Heiko

> +
> +The mediatek,pull can be either a single value or an array.
> +If it is a single value, that means all pins use use this value for same.
> +If it is an array, the means one value per pin.
> +
> +Examples:
> +
> +pinctrl@01c20800 {
> +	compatible = "mediatek,mt8135-pinctrl";
> +	reg = <0x01c20800 0x400>;
> +	gpio-controller;
> +	#gpio-cells = <2>;
> +
> +	i2c0_pins_a: i2c0@0 {
> +		mediatek,pinfunc = <MT8135_PIN_100_SDA0__FUNC_SDA0
> MT8135_PIN_101_SCL0__FUNC_SCL0>; +		mediatek,pull = 
<MT_PIN_PULL_DISABLE>;
> +	};
> +
> +	i2c1_pins_a: i2c1@0 {
> +		mediatek,pinfunc = <MT8135_PIN_195_SDA1__FUNC_SDA1
> MT8135_PIN_196_SCL1__FUNC_SCL1>; +		mediatek,pull = 
<MT_PIN_PULL_DISABLE>;
> +	};
> +
> +	i2c2_pins_a: i2c2@0 {
> +		mediatek,pinfunc = <MT8135_PIN_193_SDA2__FUNC_SDA2
> MT8135_PIN_194_SCL2__FUNC_SCL2>; +		mediatek,pull = 
<MT_PIN_PULL_DISABLE>;
> +	};
> +
> +	i2c3_pins_a: i2c3@0 {
> +		mediatek,pinfunc = <MT8135_PIN_35_SCL3__FUNC_SCL3
> MT8135_PIN_36_SDA3__FUNC_SDA3>; +		mediatek,pull = 
<MT_PIN_PULL_DISABLE>;
> +	};
> +
> +	uart2_pins_a: uart2@0 {
> +		mediatek,pinfunc = <MT8135_PIN_53_URXD2__FUNC_URXD2
> MT8135_PIN_54_UTXD2__FUNC_UTXD2>; +		mediatek,pull = 
<MT_PIN_PULL_DISABLE>;
> +	};
> +
> +	uart3_pins_a: uart3@0 {
> +		mediatek,pinfunc = <MT8135_PIN_191_URXD3__FUNC_URXD3
> MT8135_PIN_192_UTXD3__FUNC_UTXD3>; +		mediatek,pull =
> <MT_PIN_PULL_DISABLE>;
> +	};
> +	...
> +
> +};

      reply	other threads:[~2014-09-19 13:48 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-19 11:48 [PATCH 0/4] Add Mediatek SoC Pinctrl/GPIO driver for MT8135 srv_hongzhou.yang
2014-09-19 11:48 ` [PATCH 1/4] arm: mediatek: Add config option for mediatek SoCs srv_hongzhou.yang
2014-09-19 11:48 ` [PATCH 2/4] ARM: mediatek: Add Pinctrl/GPIO driver for mt8135 srv_hongzhou.yang
2014-09-19 13:47   ` Joe.C
2014-09-19 14:33     ` Matthias Brugger
2014-09-19 11:48 ` [PATCH 3/4] ARM: dts: mt8135: Add pinctrl node " srv_hongzhou.yang
2014-09-19 11:48 ` [PATCH 4/4] dt-bindings: Add pinctrl bindings for mt65xx/mt81xx srv_hongzhou.yang
2014-09-19 13:48   ` Heiko Stübner [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=8504020.ELHUosuJMo@diego \
    --to=heiko@sntech.de \
    --cc=devicetree@vger.kernel.org \
    --cc=ijc+devicetree@hellion.org.uk \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux@arm.linux.org.uk \
    --cc=mark.rutland@arm.com \
    --cc=pawel.moll@arm.com \
    --cc=srv_heupstream@mediatek.com \
    --cc=srv_hongzhou.yang@mediatek.com \
    --cc=vladimir.murzin@arm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).