Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
dt: add of_get_child_count helper function
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  Messages 1 - 25 of 38 - Collapse all  -  Translate all to Translated (View all originals)   Newer >
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Dong Aisheng  
View profile  
 More options Apr 26 2012, 10:31 am
Newsgroups: fa.linux.kernel
From: Dong Aisheng <b29...@freescale.com>
Date: Thu, 26 Apr 2012 14:31:00 UTC
Subject: [PATCH v4 1/4] dt: add of_get_child_count helper function
From: Dong Aisheng <dong.aish...@linaro.org>

Currently most code to get child count in kernel are almost same,
add a helper to implement this function for dt to use.

Cc: Grant Likely <grant.lik...@secretlab.ca>
Acked-by: Rob Herring <rob.herr...@calxeda.com>
Signed-off-by: Dong Aisheng <dong.aish...@linaro.org>

---
Rob missed this patch for 3.4 kernel.
Based on Rob's suggestion, we can get it go in with pinctrl driver.
Since Rob once had applied it, i added Rob's ack.
See:
https://lkml.org/lkml/2012/4/14/239

changes v3->v4:
 * addressed Grant's suggestion to use for_each_child_of_node.

changes v2->v3:
 Addressed some people's comments:
 * do not use assignment as expression
 * return 0 for non-dt case

Changes v1->v2:
 * change the name from of_get_child_number to of_get_child_count
---
 include/linux/of.h |   16 ++++++++++++++++
 1 files changed, 16 insertions(+), 0 deletions(-)

diff --git a/include/linux/of.h b/include/linux/of.h
index e3f942d..1c14976 100644
--- a/include/linux/of.h
+++ b/include/linux/of.h
@@ -193,6 +193,17 @@ extern struct device_node *of_get_next_child(const struct device_node *node,
        for (child = of_get_next_child(parent, NULL); child != NULL; \
             child = of_get_next_child(parent, child))

+static inline int of_get_child_count(const struct device_node *np)
+{
+       struct device_node *child = NULL;
+       int num = 0;
+
+       for_each_child_of_node(np, child)
+               num++;
+
+       return num;
+}
+
 extern struct device_node *of_find_node_with_property(
        struct device_node *from, const char *prop_name);
 #define for_each_node_with_property(dn, prop_name) \
@@ -300,6 +311,11 @@ static inline bool of_have_populated_dt(void)
 #define for_each_child_of_node(parent, child) \
        while (0)

+static inline int of_get_child_count(const struct device_node *np)
+{
+       return 0;
+}
+
 static inline int of_device_is_compatible(const struct device_node *device,
                                          const char *name)
 {
--
1.7.0.4

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


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "pinctrl: pinctrl-imx: add imx pinctrl core driver" by Dong Aisheng
Dong Aisheng  
View profile  
 More options Apr 26 2012, 10:31 am
Newsgroups: fa.linux.kernel
From: Dong Aisheng <b29...@freescale.com>
Date: Thu, 26 Apr 2012 14:31:11 UTC
Local: Thurs, Apr 26 2012 10:31 am
Subject: [PATCH v3 2/4] pinctrl: pinctrl-imx: add imx pinctrl core driver
From: Dong Aisheng <dong.aish...@linaro.org>

The driver has mux and config support while the gpio is still
not supported.
For select input setting, the driver will handle it internally
and do not need user to take care of it.

The pinctrl-imx core driver will parse the dts file and dynamically
create the pinmux functions and groups.

Each IMX SoC pinctrl driver should register pins with a pin register map
including mux register and config register and select input map to core
for proper operations.

Signed-off-by: Dong Aisheng <dong.aish...@linaro.org>

---
ChangeLog: v2->v3:
* add missed SION bit set from device tree
  Thanks for Richard Zhao's reminder.
ChangeLog: v1->v2:
* Change the binding a bit.
  For fsl,pins property, change it from pin name strings to pin function id
  which represents a pin working on a specific function. Then we can remove
  fsl,mux property since the pin function id already contains the mux setting.
  Also remove other pin config property in the first patch.
  Because in the future, we will switch to use dtc macro, then using a lot of
  propertys to represent the each pin config like pull, speed and etc seems
  needless.
  Then each pin entry in dts file becomes a pair of PIN_FUNC_ID and CONFIG:
  fsl,pins = <PIN_FUNC_ID CONFIG ..>
  See binding doc for details.
* Sascha raised a question that pins in the same group may have different
  pad setting for example I2C_CLK needs pull up while I2C_DAT not.
  The v1 driver can aslo handle this issue but needs split the different
  pad setting pins into different groups which loses a bit flexibility.
  Also suggested by Richard Zhao and Jason Liu, we may still want the iomux
  v3 simililar using way that allows each pin has the abiblity to configure
  its pad which seems reasonable because from HW point of view, FSL IMX are
  indeed pin based SoC which should be able to set per pin.
  So the main changes in this v2 patch are change to support per pin config.
  Then the using of iomux is almost the same as the existing iomux v3 for
  non dt imx platforms. See binding doc for example.

  After introduce the new way, there're mainly two known issues:
  1) Since many pins in the same group may have the same pad config setting,
     thus there may be some data redundance, however, since it's one word
     and it's purely describe hw i would think it's not a big issue.
  2) Need a magic number to indicate no pad config need. In current iomux v3,
     It's 1<<16 which is not used by IMX5, i used 1<<31 for both MX5 and MX6.
     However, it's definitely possibile that in the future, the bit 31 may also
     be used, that means we may need change the binding doc or just handle it in
     driver for different SoCs.
  3) Due to core limitation, the current pinconf_group_set/get only support
     get/set the same config(a u32 value)for all the pins in the same group,
     so i removed the imx_group_set/get functions support, instead, using
     imx_pin_get/set.
     About this limitation, we may need some futher discussion on if we may
     need to enhance it to be more flexible to support configure different
     pins in the same group.
* Refactor probe handling based on Stephen's suggestion.
* Enhanced the binding doc and split it into two part, pinctrl-imx common part
  and pinctrl-soc driver part.
* Change functions name from imx_pmx_* to imx_pinctrl_*.
* Other fixes based on Sascha, Stephen, Linus, Shawn's comments.
---
 .../bindings/pinctrl/fsl,imx-pinctrl.txt           |   93 +++
 drivers/pinctrl/Kconfig                            |    5 +
 drivers/pinctrl/Makefile                           |    1 +
 drivers/pinctrl/pinctrl-imx.c                      |  627 ++++++++++++++++++++
 drivers/pinctrl/pinctrl-imx.h                      |  106 ++++
 5 files changed, 832 insertions(+), 0 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/pinctrl/fsl,imx-pinctrl.txt
 create mode 100644 drivers/pinctrl/pinctrl-imx.c
 create mode 100644 drivers/pinctrl/pinctrl-imx.h

diff --git a/Documentation/devicetree/bindings/pinctrl/fsl,imx-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/fsl,imx-pinctrl.txt
new file mode 100644
index 0000000..e00c7fc
--- /dev/null
+++ b/Documentation/devicetree/bindings/pinctrl/fsl,imx-pinctrl.txt
@@ -0,0 +1,93 @@
+* Freescale IOMUX Controller (IOMUXC) for i.MX
+
+The IOMUX Controller (IOMUXC), together with the IOMUX, enables the IC
+to share one PAD to several functional blocks. The sharing is done by
+multiplexing the PAD input/output signals. For each PAD there are up to
+8 muxing options (called ALT modes). Since different modules require
+different PAD settings (like pull up, keeper, etc) the IOMUXC controls
+also the PAD settings parameters.
+
+Please refer to pinctrl-bindings.txt in this directory for details of the
+common pinctrl bindings used by client devices, including the meaning of the
+phrase "pin configuration node".
+
+Freescale IMX pin configuration node is a node of a group of pins which can be
+used for a specific device or function. This node represents both mux and config
+of the pins in that group. The 'mux' selects the function mode(also named mux
+mode) this pin can work on and the 'config' configures various pad settings
+such as pull-up, open drain, drive strength, etc.
+
+Required properties for iomux controller:
+- compatible: "fsl,<soc>-iomuxc"
+  Please refer to each fsl,<soc>-pinctrl.txt binding doc for supported SoCs.
+
+Required properties for pin configuration node:
+- fsl,pins: two integers array, represents a group of pins mux and config
+  setting. The format is fsl,pins = <PIN_FUNC_ID CONFIG>, PIN_FUNC_ID is a
+  pin working on a specific function, CONFIG is the pad setting value like
+  pull-up on this pin. Please refer to fsl,<soc>-pinctrl.txt for the valid
+  pins and functions of each SoC.
+
+Bits used for CONFIG:
+NO_PAD_CTL(1 << 31): indicate this pin does not need config.
+
+SION(1 << 30): Software Input On Field.
+Force the selected mux mode input path no matter of MUX_MODE functionality.
+By default the input path is determined by functionality of the selected
+mux mode (regular).
+
+Other bits are used for PAD setting.
+
+NOTE:
+Some requirements for using fsl,imx-pinctrl binding:
+1. We have pin function node defined under iomux controller node to represent
+   what pinmux functions this SoC supports.
+2. The pin configuration node intends to work on a specific function should
+   to be defined under that specific function node.
+   The function node's name should represent well about what function
+   this group of pins in this pin configuration node are working on.
+3. The driver can use the function node's name and pin configuration node's
+   name describe the pin function and group hierarchy.
+   For example, Linux IMX pinctrl driver takes the function node's name
+   as the function name and pin configuration node's name as group name to
+   create the map table.
+4. Each pin configuration node should have a phandle, devices can set pins
+   configurations by referring to the phandle of that pin configuration node.
+
+Examples:
+usdhc@0219c000 { /* uSDHC4 */
+       fsl,card-wired;
+       vmmc-supply = <&reg_3p3v>;
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usdhc4_1>;
+};
+
+iomuxc@020e0000 {
+       compatible = "fsl,imx6q-iomuxc";
+       reg = <0x020e0000 0x4000>;
+
+       /* shared pinctrl settings */
+       usdhc4 {
+               pinctrl_usdhc4_1: usdhc4grp-1 {
+                       fsl,pins = <1386 0x17059     /* MX6Q_PAD_SD4_CMD__USDHC4_CMD */
+                                   1392 0x17059        /* MX6Q_PAD_SD4_CLK__USDHC4_CLK */
+                                   1462 0x17059        /* MX6Q_PAD_SD4_DAT0__USDHC4_DAT0 */
+                                   1470 0x17059        /* MX6Q_PAD_SD4_DAT1__USDHC4_DAT1 */
+                                   1478 0x17059        /* MX6Q_PAD_SD4_DAT2__USDHC4_DAT2 */
+                                   1486 0x17059        /* MX6Q_PAD_SD4_DAT3__USDHC4_DAT3 */
+                                   1493 0x17059        /* MX6Q_PAD_SD4_DAT4__USDHC4_DAT4 */
+                                   1501 0x17059        /* MX6Q_PAD_SD4_DAT5__USDHC4_DAT5 */
+                                   1509 0x17059        /* MX6Q_PAD_SD4_DAT6__USDHC4_DAT6 */
+                                   1517 0x17059>;   /* MX6Q_PAD_SD4_DAT7__USDHC4_DAT7 */
+               };
+       };
+       ....
+};
+Refer to the IOMUXC controller chapter in imx6q datasheet,
+0x17059 means enable hysteresis, 47KOhm Pull Up, 50Mhz speed,
+80Ohm driver strength and Fast Slew Rate.
+User should refer to each SoC spec to set the correct value.
+
+TODO: when dtc macro support is available, we can change above raw data
+to dt macro which can get better readability in dts file.
diff --git a/drivers/pinctrl/Kconfig b/drivers/pinctrl/Kconfig
index f73a5ea..aad2882 100644
--- a/drivers/pinctrl/Kconfig
+++ b/drivers/pinctrl/Kconfig
@@ -26,6 +26,11 @@ config DEBUG_PINCTRL
        help
          Say Y here to add some extra checks and diagnostics to PINCTRL calls.

+config PINCTRL_IMX
+       bool
+       select PINMUX
+       select PINCONF
+
 config PINCTRL_PXA3xx
        bool
        select PINMUX
diff --git a/drivers/pinctrl/Makefile b/drivers/pinctrl/Makefile
index 8e3c95a..a01a97c 100644
--- a/drivers/pinctrl/Makefile
+++ b/drivers/pinctrl/Makefile
@@ -9,6 +9,7 @@ ifeq ($(CONFIG_OF),y)
 obj-$(CONFIG_PINCTRL)          += devicetree.o
 endif
 obj-$(CONFIG_GENERIC_PINCONF)  += pinconf-generic.o
+obj-$(CONFIG_PINCTRL_IMX)      += pinctrl-imx.o
 obj-$(CONFIG_PINCTRL_PXA3xx)   += pinctrl-pxa3xx.o
 obj-$(CONFIG_PINCTRL_MMP2)     += pinctrl-mmp2.o
 obj-$(CONFIG_PINCTRL_PXA168)   += pinctrl-pxa168.o
diff --git a/drivers/pinctrl/pinctrl-imx.c b/drivers/pinctrl/pinctrl-imx.c
new file mode 100644
index 0000000..8faf613
--- /dev/null
+++ b/drivers/pinctrl/pinctrl-imx.c
@@ -0,0 +1,627 @@
+/*
+ * Core driver for the imx pin controller
+ *
+ * Copyright (C) 2012 Freescale Semiconductor, Inc.
+ * Copyright (C) 2012 Linaro Ltd.
+ *
+ * Author: Dong Aisheng <dong.aish...@linaro.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of ...

read more »


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "mmc: sdhci-imx-esdhc: convert to use pinctrl subsystem" by Dong Aisheng
Dong Aisheng  
View profile  
 More options Apr 26 2012, 10:31 am
Newsgroups: fa.linux.kernel
From: Dong Aisheng <b29...@freescale.com>
Date: Thu, 26 Apr 2012 14:31:20 UTC
Local: Thurs, Apr 26 2012 10:31 am
Subject: [PATCH v3 4/4] mmc: sdhci-imx-esdhc: convert to use pinctrl subsystem
From: Dong Aisheng <dong.aish...@linaro.org>

This driver is shared between many platforms. Currently only imx6q has
pinctrl support, to avoid breaking other platforms that do not have pinctrl
support to run this driver, enable pinctrl dummy state for them before
they also convert to pinctrl subsystem.

Signed-off-by: Dong Aisheng <dong.aish...@linaro.org>
---
This patch depends on:
pinctrl: add pinctrl_provide_dummies interface for platforms to use
http://www.spinics.net/lists/arm-kernel/msg171538.html

ChangeLog v2->v3:
 * patch name updated.
   v1 name is ARM: imx6q: switch to use pinctrl driver
 * using pinctrl dummy state to avoid breaking other platforms to use this
   driver.

ChangeLog v1->v2:
 * using updated binding
---
 arch/arm/boot/dts/imx6q-arm2.dts               |    4 +++
 arch/arm/boot/dts/imx6q.dtsi                   |   32 ++++++++++++++++++++++++
 arch/arm/mach-imx/Kconfig                      |    2 +
 arch/arm/mach-imx/eukrea_mbimxsd35-baseboard.c |    2 +
 arch/arm/mach-imx/mach-cpuimx51.c              |    2 +
 arch/arm/mach-imx/mach-cpuimx51sd.c            |    2 +
 arch/arm/mach-imx/mach-eukrea_cpuimx25.c       |    2 +
 arch/arm/mach-imx/mach-mx25_3ds.c              |    2 +
 arch/arm/mach-imx/mach-mx35_3ds.c              |    2 +
 arch/arm/mach-imx/mach-mx51_3ds.c              |    2 +
 arch/arm/mach-imx/mach-mx51_babbage.c          |    2 +
 arch/arm/mach-imx/mach-mx51_efikamx.c          |    2 +
 arch/arm/mach-imx/mach-mx51_efikasb.c          |    2 +
 arch/arm/mach-imx/mach-mx53_ard.c              |    2 +
 arch/arm/mach-imx/mach-mx53_evk.c              |    2 +
 arch/arm/mach-imx/mach-mx53_loco.c             |    2 +
 arch/arm/mach-imx/mach-mx53_smd.c              |    2 +
 arch/arm/mach-imx/mach-pcm043.c                |    2 +
 arch/arm/mach-imx/mach-vpr200.c                |    2 +
 drivers/mmc/host/sdhci-esdhc-imx.c             |    9 ++++++
 20 files changed, 79 insertions(+), 0 deletions(-)

diff --git a/arch/arm/boot/dts/imx6q-arm2.dts b/arch/arm/boot/dts/imx6q-arm2.dts
index ce1c823..34dd9cd 100644
--- a/arch/arm/boot/dts/imx6q-arm2.dts
+++ b/arch/arm/boot/dts/imx6q-arm2.dts
@@ -37,12 +37,16 @@
                                cd-gpios = <&gpio6 11 0>;
                                wp-gpios = <&gpio6 14 0>;
                                vmmc-supply = <&reg_3p3v>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&pinctrl_usdhc3_1>;
                                status = "okay";
                        };

                        usdhc@0219c000 { /* uSDHC4 */
                                fsl,card-wired;
                                vmmc-supply = <&reg_3p3v>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&pinctrl_usdhc4_1>;
                                status = "okay";
                        };

diff --git a/arch/arm/boot/dts/imx6q.dtsi b/arch/arm/boot/dts/imx6q.dtsi
index 4905f51..a89f294 100644
--- a/arch/arm/boot/dts/imx6q.dtsi
+++ b/arch/arm/boot/dts/imx6q.dtsi
@@ -386,7 +386,39 @@
                        };

                        iomuxc@020e0000 {
+                               compatible = "fsl,imx6q-iomuxc";
                                reg = <0x020e0000 0x4000>;
+
+                               /* shared pinctrl settings */
+                               usdhc3 {
+                                       pinctrl_usdhc3_1: usdhc3grp-1 {
+                                               fsl,pins = <1273 0x17059     /* MX6Q_PAD_SD3_CMD__USDHC3_CMD */
+                                                           1281 0x10059        /* MX6Q_PAD_SD3_CLK__USDHC3_CLK */
+                                                           1289 0x17059        /* MX6Q_PAD_SD3_DAT0__USDHC3_DAT0 */
+                                                           1297 0x17059        /* MX6Q_PAD_SD3_DAT1__USDHC3_DAT1 */
+                                                           1305 0x17059        /* MX6Q_PAD_SD3_DAT2__USDHC3_DAT2 */
+                                                           1312 0x17059        /* MX6Q_PAD_SD3_DAT3__USDHC3_DAT3 */
+                                                           1265 0x17059        /* MX6Q_PAD_SD3_DAT4__USDHC3_DAT4 */
+                                                           1257 0x17059        /* MX6Q_PAD_SD3_DAT5__USDHC3_DAT5 */
+                                                           1249 0x17059        /* MX6Q_PAD_SD3_DAT6__USDHC3_DAT6 */
+                                                           1241 0x17059>;   /* MX6Q_PAD_SD3_DAT7__USDHC3_DAT7 */
+                                       };
+                               };
+
+                               usdhc4 {
+                                       pinctrl_usdhc4_1: usdhc4grp-1 {
+                                               fsl,pins = <1386 0x17059     /* MX6Q_PAD_SD4_CMD__USDHC4_CMD */
+                                                           1392 0x10059        /* MX6Q_PAD_SD4_CLK__USDHC4_CLK */
+                                                           1462 0x17059        /* MX6Q_PAD_SD4_DAT0__USDHC4_DAT0 */
+                                                           1470 0x17059        /* MX6Q_PAD_SD4_DAT1__USDHC4_DAT1 */
+                                                           1478 0x17059        /* MX6Q_PAD_SD4_DAT2__USDHC4_DAT2 */
+                                                           1486 0x17059        /* MX6Q_PAD_SD4_DAT3__USDHC4_DAT3 */
+                                                           1493 0x17059        /* MX6Q_PAD_SD4_DAT4__USDHC4_DAT4 */
+                                                           1501 0x17059        /* MX6Q_PAD_SD4_DAT5__USDHC4_DAT5 */
+                                                           1509 0x17059        /* MX6Q_PAD_SD4_DAT6__USDHC4_DAT6 */
+                                                           1517 0x17059>;   /* MX6Q_PAD_SD4_DAT7__USDHC4_DAT7 */
+                                       };
+                               };
                        };

                        dcic@020e4000 { /* DCIC1 */
diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
index 7561eca..e0fc67c 100644
--- a/arch/arm/mach-imx/Kconfig
+++ b/arch/arm/mach-imx/Kconfig
@@ -842,6 +842,8 @@ config SOC_IMX6Q
        select HAVE_IMX_MMDC
        select HAVE_IMX_SRC
        select HAVE_SMP
+       select PINCTRL
+       select PINCTRL_IMX6Q
        select USE_OF

        help
diff --git a/arch/arm/mach-imx/eukrea_mbimxsd35-baseboard.c b/arch/arm/mach-imx/eukrea_mbimxsd35-baseboard.c
index fd8bf8a..12bbb62 100644
--- a/arch/arm/mach-imx/eukrea_mbimxsd35-baseboard.c
+++ b/arch/arm/mach-imx/eukrea_mbimxsd35-baseboard.c
@@ -25,6 +25,7 @@
 #include <linux/gpio.h>
 #include <linux/interrupt.h>
 #include <linux/leds.h>
+#include <linux/pinctrl/machine.h>
 #include <linux/platform_device.h>
 #include <linux/input.h>
 #include <video/platform_lcd.h>
@@ -251,6 +252,7 @@ void __init eukrea_mbimxsd35_baseboard_init(void)
                        ARRAY_SIZE(eukrea_mbimxsd_pads)))
                printk(KERN_ERR "error setting mbimxsd pads !\n");

+       pinctrl_provide_dummies();
        imx35_add_imx_uart1(&uart_pdata);
        imx35_add_ipu_core(&mx3_ipu_data);
        imx35_add_mx3_sdc_fb(&mx3fb_pdata);
diff --git a/arch/arm/mach-imx/mach-cpuimx51.c b/arch/arm/mach-imx/mach-cpuimx51.c
index 944025d..2c67d7f 100644
--- a/arch/arm/mach-imx/mach-cpuimx51.c
+++ b/arch/arm/mach-imx/mach-cpuimx51.c
@@ -22,6 +22,7 @@
 #include <linux/delay.h>
 #include <linux/io.h>
 #include <linux/interrupt.h>
+#include <linux/pinctrl/machine.h>

 #include <mach/eukrea-baseboards.h>
 #include <mach/common.h>
@@ -243,6 +244,7 @@ static void __init eukrea_cpuimx51_init(void)
        mxc_iomux_v3_setup_multiple_pads(eukrea_cpuimx51_pads,
                                        ARRAY_SIZE(eukrea_cpuimx51_pads));

+       pinctrl_provide_dummies();
        imx51_add_imx_uart(0, &uart_pdata);
        imx51_add_mxc_nand(&eukrea_cpuimx51_nand_board_info);

diff --git a/arch/arm/mach-imx/mach-cpuimx51sd.c b/arch/arm/mach-imx/mach-cpuimx51sd.c
index 9fbe923..5d5a872 100644
--- a/arch/arm/mach-imx/mach-cpuimx51sd.c
+++ b/arch/arm/mach-imx/mach-cpuimx51sd.c
@@ -25,6 +25,7 @@
 #include <linux/i2c-gpio.h>
 #include <linux/spi/spi.h>
 #include <linux/can/platform/mcp251x.h>
+#include <linux/pinctrl/machine.h>

 #include <mach/eukrea-baseboards.h>
 #include <mach/common.h>
@@ -265,6 +266,7 @@ static void __init eukrea_cpuimx51sd_init(void)

        mxc_iomux_v3_setup_multiple_pads(eukrea_cpuimx51sd_pads,
                                        ARRAY_SIZE(eukrea_cpuimx51sd_pads));
+       pinctrl_provide_dummies();

 #if defined(CONFIG_CPU_FREQ_IMX)
        get_cpu_op = mx51_get_cpu_op;
diff --git a/arch/arm/mach-imx/mach-eukrea_cpuimx25.c b/arch/arm/mach-imx/mach-eukrea_cpuimx25.c
index 76a97a5..b90b795 100644
--- a/arch/arm/mach-imx/mach-eukrea_cpuimx25.c
+++ b/arch/arm/mach-imx/mach-eukrea_cpuimx25.c
@@ -23,6 +23,7 @@
 #include <linux/clk.h>
 #include <linux/irq.h>
 #include <linux/gpio.h>
+#include <linux/pinctrl/machine.h>
 #include <linux/platform_device.h>
 #include <linux/usb/otg.h>
 #include <linux/usb/ulpi.h>
@@ -131,6 +132,7 @@ static void __init eukrea_cpuimx25_init(void)
                        ARRAY_SIZE(eukrea_cpuimx25_pads)))
                printk(KERN_ERR "error setting cpuimx25 pads !\n");

+       pinctrl_provide_dummies();
        imx25_add_imx_uart0(&uart_pdata);
        imx25_add_mxc_nand(&eukrea_cpuimx25_nand_board_info);
        imx25_add_imxdi_rtc(NULL);
diff --git a/arch/arm/mach-imx/mach-mx25_3ds.c b/arch/arm/mach-imx/mach-mx25_3ds.c
index f267342..347467c 100644
--- a/arch/arm/mach-imx/mach-mx25_3ds.c
+++ b/arch/arm/mach-imx/mach-mx25_3ds.c
@@ -29,6 +29,7 @@
 #include <linux/irq.h>
 #include <linux/gpio.h>
 #include <linux/platform_device.h>
+#include <linux/pinctrl/machine.h>
 #include <linux/usb/otg.h>

 #include <mach/hardware.h>
@@ -233,6 +234,7 @@ static void __init mx25pdk_init(void)
        mxc_iomux_v3_setup_multiple_pads(mx25pdk_pads,
                        ARRAY_SIZE(mx25pdk_pads));

+       pinctrl_provide_dummies();
        imx25_add_imx_uart0(&uart_pdata);
        imx25_add_fsl_usb2_udc(&otg_device_pdata);
        imx25_add_mxc_ehci_hs(&usbh2_pdata);
diff --git a/arch/arm/mach-imx/mach-mx35_3ds.c b/arch/arm/mach-imx/mach-mx35_3ds.c
index 6ae51c6..b8cfc6a 100644
--- a/arch/arm/mach-imx/mach-mx35_3ds.c
+++ b/arch/arm/mach-imx/mach-mx35_3ds.c
@@ -31,6 +31,7 @@
 #include <linux/platform_device.h>
 #include <linux/memory.h>
 #include <linux/gpio.h>
+#include <linux/pinctrl/machine.h>
 #include <linux/usb/otg.h>

 #include <linux/mtd/physmap.h>
@@ -380,6 +381,7 @@ static void __init mx35_3ds_init(void)

        mxc_iomux_v3_setup_multiple_pads(mx35pdk_pads, ARRAY_SIZE(mx35pdk_pads));

+       pinctrl_provide_dummies();
        imx35_add_fec(NULL);
        imx35_add_imx2_wdt(NULL);
        platform_add_devices(devices, ARRAY_SIZE(devices));
diff --git a/arch/arm/mach-imx/mach-mx51_3ds.c b/arch/arm/mach-imx/mach-mx51_3ds.c
index 83eab41..9a8a6f2 100644
--- a/arch/arm/mach-imx/mach-mx51_3ds.c
+++ b/arch/arm/mach-imx/mach-mx51_3ds.c
@@ -14,6 +14,7 @@
 #include <linux/platform_device.h>
 #include <linux/spi/spi.h>
 #include <linux/gpio.h>
+#include <linux/pinctrl/machine.h>

 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
@@ -139,6 +140,7 @@ static void __init mx51_3ds_init(void)

        mxc_iomux_v3_setup_multiple_pads(mx51_3ds_pads,
                                        ARRAY_SIZE(mx51_3ds_pads));
+       pinctrl_provide_dummies();

        imx51_add_imx_uart(0, &uart_pdata);
        imx51_add_imx_uart(1, &uart_pdata);
diff --git a/arch/arm/mach-imx/mach-mx51_babbage.c b/arch/arm/mach-imx/mach-mx51_babbage.c
index e4b822e..9adc94b 100644
--- a/arch/arm/mach-imx/mach-mx51_babbage.c
+++ ...

read more »


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "pinctrl: pinctrl-imx: add imx pinctrl core driver" by Dong Aisheng
Dong Aisheng  
View profile  
 More options Apr 26 2012, 10:35 am
Newsgroups: fa.linux.kernel
From: Dong Aisheng <aisheng.d...@freescale.com>
Date: Thu, 26 Apr 2012 14:35:19 UTC
Local: Thurs, Apr 26 2012 10:35 am
Subject: Re: [PATCH v3 2/4] pinctrl: pinctrl-imx: add imx pinctrl core driver

Hi Shawn & Sascha,

Please help review if this can meet your requirement.

Regards
Dong Aisheg

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


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Jean-Christophe PLAGNIOL-VILLARD  
View profile  
 More options Apr 26 2012, 11:36 am
Newsgroups: fa.linux.kernel
From: Jean-Christophe PLAGNIOL-VILLARD <plagn...@jcrosoft.com>
Date: Thu, 26 Apr 2012 15:36:08 UTC
Local: Thurs, Apr 26 2012 11:36 am
Subject: Re: [PATCH v3 2/4] pinctrl: pinctrl-imx: add imx pinctrl core driver

We have on Imx mxc at91 and other SoC controler hich you configure per pin

which means one pin have multiple function and the same function is on
multiple pins

so the groups are just a list of possible pins

Instead of re-inventing bindings we do need to come with a common binding whre
it's possible

So instead I proppose (send in the v2) to use common way to describe the group

1) we describe one function per pin

        functions {
                rxd_pb12 {
                        atmel,pin-id = <44>;
                        atmel,mux = <0>;
                };

                txd_pb13 {
                        atmel,pin-id = <45>;
                        atmel,pull = <2>;
                        atmel,mux = <0>;
                };

                txd0_pb19 {
                        atmel,pin-id = <51>;
                        atmel,pull = <2>;
                        atmel,mux = <0>;
                };

                rxd0_pb18 {
                        atmel,pin-id = <50>;
                        atmel,mux = <0>;
                };

                rts0_pb17 {
                        atmel,pin-id = <49>;
                        atmel,mux = <1>;
                };

                cts0_pb15 {
                        atmel,pin-id = <47>;
                        atmel,mux = <1>;
                };
        };

advantage if you need to set a pull-up or any pin parameter different on your board
you can overwrite it without re-creating a group

This is controller specific

and then we have the common bindings to describe the group
by using phandle of the functions to describe the group

        groups {
                dbgu {
                        pinctrl,functions = < &rxd_pb12
                                              &txd_pb13 >;
                };

                uart0_rxd_txd {
                        pinctrl,functions = < &rxd0_pb18
                                              &txd0_pb19 >;
                };

                uart0_rts_cts {
                        pinctrl,functions = < &rxd0_pb18
                                              &txd0_pb19
                                              &rts0_pb17
                                              &cts0_pb15 >;
                };
        };

this will be handle by a generic code in c

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


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "dt: add of_get_child_count helper function" by Stephen Warren
Stephen Warren  
View profile  
 More options Apr 26 2012, 12:24 pm
Newsgroups: fa.linux.kernel
From: Stephen Warren <swar...@wwwdotorg.org>
Date: Thu, 26 Apr 2012 16:24:21 UTC
Local: Thurs, Apr 26 2012 12:24 pm
Subject: Re: [PATCH v4 1/4] dt: add of_get_child_count helper function
On 04/26/2012 08:40 AM, Dong Aisheng wrote:

> From: Dong Aisheng <dong.aish...@linaro.org>

> Currently most code to get child count in kernel are almost same,
> add a helper to implement this function for dt to use.
> diff --git a/include/linux/of.h b/include/linux/of.h
> +static inline int of_get_child_count(const struct device_node *np)
> +{
> +  struct device_node *child = NULL;

You don't actually need to initialize child here. It doesn't really
matter here, but in a more complex function, it might hide a
used-before-initialized error.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "mmc: sdhci-imx-esdhc: convert to use pinctrl subsystem" by Stephen Warren
Stephen Warren  
View profile  
 More options Apr 26 2012, 12:32 pm
Newsgroups: fa.linux.kernel
From: Stephen Warren <swar...@wwwdotorg.org>
Date: Thu, 26 Apr 2012 16:32:59 UTC
Local: Thurs, Apr 26 2012 12:32 pm
Subject: Re: [PATCH v3 4/4] mmc: sdhci-imx-esdhc: convert to use pinctrl subsystem
On 04/26/2012 08:40 AM, Dong Aisheng wrote:

> From: Dong Aisheng <dong.aish...@linaro.org>

> This driver is shared between many platforms. Currently only imx6q has
> pinctrl support, to avoid breaking other platforms that do not have pinctrl
> support to run this driver, enable pinctrl dummy state for them before
> they also convert to pinctrl subsystem.

The series,

Acked-by: Stephen Warren <swar...@wwwdotorg.org>

(My ack isn't meant to override or influence any discussions between
Freescale maintainers re: the binding, but more that the binding seems
to be /a/ reasonable solution, and is specified well enough that I
understand what's going on there)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "pinctrl: pinctrl-imx: add imx pinctrl core driver" by Jean-Christophe PLAGNIOL-VILLARD
Jean-Christophe PLAGNIOL-VILLARD  
View profile  
 More options Apr 26 2012, 3:20 pm
Newsgroups: fa.linux.kernel
From: Jean-Christophe PLAGNIOL-VILLARD <plagn...@jcrosoft.com>
Date: Thu, 26 Apr 2012 19:20:25 UTC
Local: Thurs, Apr 26 2012 3:20 pm
Subject: Re: [PATCH v3 2/4] pinctrl: pinctrl-imx: add imx pinctrl core driver
On 22:40 Thu 26 Apr     , Dong Aisheng wrote:

honestly I don't like this it's obscure need to decode manually

I propose to use phandle

as example on uart you will want or not the rst/cts so you will have quite a
lot of bindings

so you can describe the pin configuration (function) and refer it by phandle
in the group

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


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "dt: add of_get_child_count helper function" by Dong Aisheng
Dong Aisheng  
View profile  
 More options Apr 26 2012, 11:19 pm
Newsgroups: fa.linux.kernel
From: Dong Aisheng <aisheng.d...@freescale.com>
Date: Fri, 27 Apr 2012 03:19:12 UTC
Local: Thurs, Apr 26 2012 11:19 pm
Subject: Re: [PATCH v4 1/4] dt: add of_get_child_count helper function

Correct, i could change it.

Regards
Dong Aisheng

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


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Dong Aisheng  
View profile  
 More options Apr 26 2012, 11:27 pm
Newsgroups: fa.linux.kernel
From: Dong Aisheng <b29...@freescale.com>
Date: Fri, 27 Apr 2012 03:27:07 UTC
Local: Thurs, Apr 26 2012 11:27 pm
Subject: [PATCH v5 1/1] dt: add of_get_child_count helper function
From: Dong Aisheng <dong.aish...@linaro.org>

Currently most code to get child count in kernel are almost same,
add a helper to implement this function for dt to use.

Cc: Grant Likely <grant.lik...@secretlab.ca>
Acked-by: Rob Herring <rob.herr...@calxeda.com>
Signed-off-by: Dong Aisheng <dong.aish...@linaro.org>

---
Rob missed this patch for 3.4 kernel.
Based on Rob's suggestion, we can get it go in with pinctrl driver.
Since Rob once had applied it, i added Rob's ack.
See:
https://lkml.org/lkml/2012/4/14/239

changes v4->v5:
 * do not initialize child node pointer based on Stephen's suggestion.

changes v3->v4:
 * addressed Grant's suggestion to use for_each_child_of_node.

changes v2->v3:
 Addressed some people's comments:
 * do not use assignment as expression
 * return 0 for non-dt case

Changes v1->v2:
 * change the name from of_get_child_number to of_get_child_count
---
 include/linux/of.h |   16 ++++++++++++++++
 1 files changed, 16 insertions(+), 0 deletions(-)

diff --git a/include/linux/of.h b/include/linux/of.h
index e3f942d..2ec1083 100644
--- a/include/linux/of.h
+++ b/include/linux/of.h
@@ -193,6 +193,17 @@ extern struct device_node *of_get_next_child(const struct device_node *node,
        for (child = of_get_next_child(parent, NULL); child != NULL; \
             child = of_get_next_child(parent, child))

+static inline int of_get_child_count(const struct device_node *np)
+{
+       struct device_node *child;
+       int num = 0;
+
+       for_each_child_of_node(np, child)
+               num++;
+
+       return num;
+}
+
 extern struct device_node *of_find_node_with_property(
        struct device_node *from, const char *prop_name);
 #define for_each_node_with_property(dn, prop_name) \
@@ -300,6 +311,11 @@ static inline bool of_have_populated_dt(void)
 #define for_each_child_of_node(parent, child) \
        while (0)

+static inline int of_get_child_count(const struct device_node *np)
+{
+       return 0;
+}
+
 static inline int of_device_is_compatible(const struct device_node *device,
                                          const char *name)
 {
--
1.7.0.4

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


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "pinctrl: pinctrl-imx: add imx pinctrl core driver" by Dong Aisheng
Dong Aisheng  
View profile  
 More options Apr 26 2012, 11:39 pm
Newsgroups: fa.linux.kernel
From: Dong Aisheng <aisheng.d...@freescale.com>
Date: Fri, 27 Apr 2012 03:39:06 UTC
Local: Thurs, Apr 26 2012 11:39 pm
Subject: Re: [PATCH v3 2/4] pinctrl: pinctrl-imx: add imx pinctrl core driver

Hmm, i can't say you're wrong.
What you suggested may be suitable for your SoCs, before i know more about your SoC
details, i may not comment too much.

The binding i used here basically follows the exist iomux v3 convention which we're
using for non dt platforms, i think most people working on fsl platform may would
want a similar using as before since iomux v3 is very easy to use for imx soc.
You can refer to: iomux-mx51.h.

After dt macro support is available(which is still in progress), we may
convert the raw data above to raw data then user do not need to decode
the setting anymore.

Regards
Dong Aisheng

--
To unsubscribe from this list: send the line "unsubscribe ...

read more »


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Shawn Guo  
View profile  
 More options Apr 27 2012, 1:30 am
Newsgroups: fa.linux.kernel
From: Shawn Guo <shawn....@linaro.org>
Date: Fri, 27 Apr 2012 05:30:52 UTC
Local: Fri, Apr 27 2012 1:30 am
Subject: Re: [PATCH v3 2/4] pinctrl: pinctrl-imx: add imx pinctrl core driver

Acked-by: Shawn Guo <shawn....@linaro.org>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "pinctrl: pinctrl-imx: add imx6q pinctrl driver" by Shawn Guo
Shawn Guo  
View profile  
 More options Apr 27 2012, 1:35 am
Newsgroups: fa.linux.kernel
From: Shawn Guo <shawn....@linaro.org>
Date: Fri, 27 Apr 2012 05:35:40 UTC
Local: Fri, Apr 27 2012 1:35 am
Subject: Re: [PATCH v3 3/4] pinctrl: pinctrl-imx: add imx6q pinctrl driver

On Thu, Apr 26, 2012 at 10:40:26PM +0800, Dong Aisheng wrote:
> From: Dong Aisheng <dong.aish...@linaro.org>

> Signed-off-by: Dong Aisheng <dong.aish...@linaro.org>

Acked-by: Shawn Guo <shawn....@linaro.org>

> ---
> ChangeLog v1-v2:
> * add binding doc for pinctrl-imx6q
> * refactor the probe
> ---

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

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "pinctrl: pinctrl-imx: add imx pinctrl core driver" by Shawn Guo
Shawn Guo  
View profile  
 More options Apr 27 2012, 1:48 am
Newsgroups: fa.linux.kernel
From: Shawn Guo <shawn....@linaro.org>
Date: Fri, 27 Apr 2012 05:48:55 UTC
Local: Fri, Apr 27 2012 1:48 am
Subject: Re: [PATCH v3 2/4] pinctrl: pinctrl-imx: add imx pinctrl core driver
On Thu, Apr 26, 2012 at 05:15:36PM +0200, Jean-Christophe PLAGNIOL-VILLARD wrote:
> We have on Imx mxc at91 and other SoC controler hich you configure per pin

> which means one pin have multiple function and the same function is on
> multiple pins

> so the groups are just a list of possible pins

> Instead of re-inventing bindings we do need to come with a common binding whre
> it's possible

> So instead I proppose (send in the v2) to use common way to describe the group

Let's see how many nodes we will have in device tree.  For imx6q
example, there are 332 pins and each pin has up to 8 function selects.
We will end up with having 332 x 8 = 2656 sub nodes under node
"functions".  Device tree simply cannot afford such a bloating.

Regards,
Shawn

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

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "pinctrl: pinctrl-imx: add imx6q pinctrl driver" by Sascha Hauer
Sascha Hauer  
View profile  
 More options Apr 27 2012, 2:45 am
Newsgroups: fa.linux.kernel
From: Sascha Hauer <s.ha...@pengutronix.de>
Date: Fri, 27 Apr 2012 06:45:34 UTC
Local: Fri, Apr 27 2012 2:45 am
Subject: Re: [PATCH v3 3/4] pinctrl: pinctrl-imx: add imx6q pinctrl driver

Wouldn't it make sense to document the CONFIG bits here? Something like

Pull keeper enabled (pke)       (1 << 7)
..

Not all bits are available on all pins, refer to the datasheet...

Sascha

--
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "pinctrl: pinctrl-imx: add imx pinctrl core driver" by Jean-Christophe PLAGNIOL-VILLARD
Jean-Christophe PLAGNIOL-VILLARD  
View profile  
 More options Apr 27 2012, 2:49 am
Newsgroups: fa.linux.kernel
From: Jean-Christophe PLAGNIOL-VILLARD <plagn...@jcrosoft.com>
Date: Fri, 27 Apr 2012 06:49:07 UTC
Local: Fri, Apr 27 2012 2:49 am
Subject: Re: [PATCH v3 2/4] pinctrl: pinctrl-imx: add imx pinctrl core driver
On 13:48 Fri 27 Apr     , Shawn Guo wrote:

device tree can offord it

except you are going to have hundereds of duplicated pinctrl configuration
as different board will have different mux which is impossbile to maintain
either

and I do not expect we add all the configuration possible but just the common
one

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


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Jean-Christophe PLAGNIOL-VILLARD  
View profile  
 More options Apr 27 2012, 2:51 am
Newsgroups: fa.linux.kernel
From: Jean-Christophe PLAGNIOL-VILLARD <plagn...@jcrosoft.com>
Date: Fri, 27 Apr 2012 06:51:55 UTC
Local: Fri, Apr 27 2012 2:51 am
Subject: Re: [PATCH v3 2/4] pinctrl: pinctrl-imx: add imx pinctrl core driver

this is not an excuse to duplicate bindings

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


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "pinctrl: pinctrl-imx: add imx6q pinctrl driver" by Dong Aisheng
Dong Aisheng  
View profile  
 More options Apr 27 2012, 3:07 am
Newsgroups: fa.linux.kernel
From: Dong Aisheng <aisheng.d...@freescale.com>
Date: Fri, 27 Apr 2012 07:07:35 UTC
Local: Fri, Apr 27 2012 3:07 am
Subject: Re: [PATCH v3 3/4] pinctrl: pinctrl-imx: add imx6q pinctrl driver

Yes, it makes sense for me to add it.

> Not all bits are available on all pins, refer to the datasheet...

Regards
Dong Aisheng

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


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "pinctrl: pinctrl-imx: add imx pinctrl core driver" by Shawn Guo
Shawn Guo  
View profile  
 More options Apr 27 2012, 3:25 am
Newsgroups: fa.linux.kernel
From: Shawn Guo <shawn....@linaro.org>
Date: Fri, 27 Apr 2012 07:25:22 UTC
Local: Fri, Apr 27 2012 3:25 am
Subject: Re: [PATCH v3 2/4] pinctrl: pinctrl-imx: add imx pinctrl core driver

No.  Device tree maintainers has told that.  Looking into the clock DT
binding discussion, you will find that Grant does not like to have
even 100~200 nodes to represent an entire clock tree in the DT.

With your proposal (actually this has been proposed long time before),
to represent the pins for a 24bit display, it easily consumes 28 nodes
on mach-mxs, while my binding only needs one node.  So in short, the
proposal has been discussed and it's not a sensible one.

Regards,
Shawn

> except you are going to have hundereds of duplicated pinctrl configuration
> as different board will have different mux which is impossbile to maintain
> either

> and I do not expect we add all the configuration possible but just the common
> one

> Best Regards,
> J.

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

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Sascha Hauer  
View profile  
 More options Apr 27 2012, 3:30 am
Newsgroups: fa.linux.kernel
From: Sascha Hauer <s.ha...@pengutronix.de>
Date: Fri, 27 Apr 2012 07:30:59 UTC
Local: Fri, Apr 27 2012 3:30 am
Subject: Re: [PATCH v3 2/4] pinctrl: pinctrl-imx: add imx pinctrl core driver

I don't exactly know where are you aiming at. I think that you want a
collection of pin groups somewhere and want to refer to it in the device
nodes. No, please don't. There's no way to come up with a common group
needed for example for the IPU (image processing unit). What pins you
want to use here depends on the number of data lines you have on your
panel and what type of panel you have. You can always use the remaining
pins for somethin else. SPI is another example. The SPI unit has some
dedicated chip select lines. The exact number of used chip selects is
board specific.

Sascha

--
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "mmc: sdhci-imx-esdhc: convert to use pinctrl subsystem" by Sascha Hauer
Sascha Hauer  
View profile  
 More options Apr 27 2012, 3:35 am
Newsgroups: fa.linux.kernel
From: Sascha Hauer <s.ha...@pengutronix.de>
Date: Fri, 27 Apr 2012 07:35:15 UTC
Local: Fri, Apr 27 2012 3:35 am
Subject: Re: [PATCH v3 4/4] mmc: sdhci-imx-esdhc: convert to use pinctrl subsystem

Here you are patching only the boards which happen to use the esdhc
controller, so we need to patch other boards when another driver gains
pinctrl. Let's add the provide_dummies call to the SoCs instead which
do not have pinctrl yet.

Sascha

--
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "pinctrl: pinctrl-imx: add imx pinctrl core driver" by Jean-Christophe PLAGNIOL-VILLARD
Jean-Christophe PLAGNIOL-VILLARD  
View profile  
 More options Apr 27 2012, 3:40 am
Newsgroups: fa.linux.kernel
From: Jean-Christophe PLAGNIOL-VILLARD <plagn...@jcrosoft.com>
Date: Fri, 27 Apr 2012 07:40:23 UTC
Local: Fri, Apr 27 2012 3:40 am
Subject: Re: [PATCH v3 2/4] pinctrl: pinctrl-imx: add imx pinctrl core driver
On 15:25 Fri 27 Apr     , Shawn Guo wrote:

except duplicate bindings instead having common one make no sense either

so imx, at91 and ST (STB SoC and other does have the same type of pin IP

to not come with a common bindig means we are doint the same crap as before

with switch to DT

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


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Shawn Guo  
View profile  
 More options Apr 27 2012, 4:11 am
Newsgroups: fa.linux.kernel
From: Shawn Guo <shawn....@linaro.org>
Date: Fri, 27 Apr 2012 08:11:38 UTC
Local: Fri, Apr 27 2012 4:11 am
Subject: Re: [PATCH v3 2/4] pinctrl: pinctrl-imx: add imx pinctrl core driver
On Fri, Apr 27, 2012 at 09:11:04AM +0200, Jean-Christophe PLAGNIOL-VILLARD wrote:
> except duplicate bindings instead having common one make no sense either

> so imx, at91 and ST (STB SoC and other does have the same type of pin IP

> to not come with a common bindig means we are doint the same crap as before

> with switch to DT

It can be every different in hardware details from one pin based
controller to another.  mxs pinctrl is another pin based IP, and Dong
tried to approach a binding working good for both imx and mxs, but in
the end we agree imx binding does not work so good for mxs, and vice
versa.  And that's why pinctrl core binding design leaves out the
platform specific binding.

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


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "mmc: sdhci-imx-esdhc: convert to use pinctrl subsystem" by Dong Aisheng
Dong Aisheng  
View profile  
 More options Apr 27 2012, 4:20 am
Newsgroups: fa.linux.kernel
From: Dong Aisheng <aisheng.d...@freescale.com>
Date: Fri, 27 Apr 2012 08:20:43 UTC
Local: Fri, Apr 27 2012 4:20 am
Subject: Re: [PATCH v3 4/4] mmc: sdhci-imx-esdhc: convert to use pinctrl subsystem

Yes, theoretically, if a board does not have drivers running with pinctrl,
it may not need change.

There're so many boards under arch/arm/mach-imx/*:
b29396@shlinux2:~/upstream/linux-pinctrl$ ls arch/arm/mach-imx/mach-
mach-apf9328.c             mach-imx27_visstrim_m10.c  mach-mx31lilly.c           mach-mx51_efikamx.o        mach-pcm037_eet.c
mach-armadillo5x0.c        mach-imx6q.c               mach-mx31lilly.o           mach-mx51_efikasb.c        mach-pcm037_eet.o
mach-armadillo5x0.o        mach-imx6q.o               mach-mx31lite.c            mach-mx51_efikasb.o        mach-pcm037.o
mach-bug.c                 mach-kzm_arm11_01.c        mach-mx31lite.o            mach-mx53_ard.c            mach-pcm038.c
mach-bug.o                 mach-kzm_arm11_01.o        mach-mx31moboard.c         mach-mx53_ard.o            mach-pcm043.c
mach-cpuimx27.c            mach-mx1ads.c              mach-mx31moboard.o         mach-mx53_evk.c            mach-pcm043.o
mach-cpuimx35.c            mach-mx21ads.c             mach-mx35_3ds.c            mach-mx53_evk.o            mach-qong.c
mach-cpuimx51.c            mach-mx25_3ds.c            mach-mx35_3ds.o            mach-mx53_loco.c           mach-qong.o
mach-cpuimx51.o            mach-mx27_3ds.c            mach-mx50_rdp.c            mach-mx53_loco.o           mach-scb9328.c
mach-cpuimx51sd.c          mach-mx27ads.c             mach-mx51_3ds.c            mach-mx53_smd.c            mach-vpr200.c
mach-cpuimx51sd.o          mach-mx31_3ds.c            mach-mx51_3ds.o            mach-mx53_smd.o            mach-vpr200.o
mach-eukrea_cpuimx25.c     mach-mx31_3ds.o            mach-mx51_babbage.c        mach-mxt_td60.c
mach-imx27ipcam.c          mach-mx31ads.c             mach-mx51_babbage.o        mach-pca100.c
mach-imx27lite.c           mach-mx31ads.o             mach-mx51_efikamx.c        mach-pcm037.c

Some of them i'm not familiar and i don't know whether they may use pinctrl
so i just patched the affected ones.

One lazy method may be just patch all board files without pinctrl support
and it will not cause any error.

What's your suggestion?

> pinctrl. Let's add the provide_dummies call to the SoCs instead which
> do not have pinctrl yet.

You meant add provide_dummies call in imx*_soc_init call?
We could do it but there might be a case that some boards are converted
to use pinctrl while others still not but they're based on the same soc.
For examples, 4 mx53 boards and we may not be able to convert them all at
the same time.

Regards
Dong Aisheng

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


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Sascha Hauer  
View profile  
 More options Apr 27 2012, 4:31 am
Newsgroups: fa.linux.kernel
From: Sascha Hauer <s.ha...@pengutronix.de>
Date: Fri, 27 Apr 2012 08:31:55 UTC
Local: Fri, Apr 27 2012 4:31 am
Subject: Re: [PATCH v3 4/4] mmc: sdhci-imx-esdhc: convert to use pinctrl subsystem

My point is that none of the mx5 boards have pinctrl since there is no
SoC driver for it.
For DT based boards pinctrl should be mandatory once the SoC has pinctrl
support. All non DT boards probably won't get pinctrl anyway.

Sascha

--
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Messages 1 - 25 of 38   Newer >
« Back to Discussions « Newer topic     Older topic »