Commit graph

28 commits

Author SHA1 Message Date
Shawn Guo e16415313c pinctrl: imx: move hard-coding data into device tree
Currently, all imx pinctrl drivers maintain a big array of struct
imx_pin_reg which hard-codes data like register offset and mux mode
setting for each pin function.  Every time a new imx SoC support is
added, we need to add such a big mount of data.  With moving to single
kernel build, it's only matter of time to be blamed on memory consuming.

With DTC pre-processor support in place, the patch moves all these data
into device tree by redefining the PIN_FUNC_ID in imxXX-pinfunc.h and
changing the PIN_FUNC_ID parsing code a little bit.

The pin id gets re-numbered based on mux register offset, or config
register offset if the pin has no mux register, so that kernel can
identify the pin id from register offsets provided by device tree.

As a bonus point of the change, those arbitrary magic numbers standing
for particular PIN_FUNC_ID in device tree sources are now replaced by
macros to improve the readability of dts files.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Acked-by: Dong Aisheng <dong.aisheng@linaro.org>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
2013-04-09 22:52:50 +08:00
Shawn Guo 36dffd8f49 ARM: imx: use #include for all device trees
Replace /include/ (dtc) with #include (C pre-processor) for all imx DT
files, so that gcc -E handles the entire include tree, and hence any of
those files can #include some other file e.g. for constant definitions.

This allows future use of #defines and header files in order to define
names for various constants, such as pinctrl settings. Use of those
features will increase the readability of the device tree files.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2013-04-09 22:52:49 +08:00
Shawn Guo 7c1da5854f ARM: dts: add dtsi for imx6q and imx6dl
Add dtsi for imx6q and imx6dl with non-common blocks moved into there.
Major differences between imx6dl and imx6q:

 * Dual vs. Quad cores
 * single vs. dual IPU
 * 128 vs. 256 KB OCRAM
 * imx6q: ECSPI5, OpenVG (GC355), SATA
 * imx6dl: I2C4, PXP, EPDC, LCDIF
 * iomuxc/pads definition

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2013-02-10 23:25:47 +08:00
Shawn Guo 4bacf2a3fc ARM: dts: rename imx6q.dtsi to imx6qdl.dtsi
i.MX6 Quad and i.MX6 DualLite is similar enough to share one dtsi
file, so rename imx6q.dtsi to imx6qdl.dtsi preparing for the addition
of imx6dl support.

Another member of i.MX6 series i.MX6 SoloLite is different enough
from the other two, so it will stand as a separate dtsi.  That's why
we rename to imx6qdl.dtsi not imx6.dtsi.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2013-02-10 23:25:47 +08:00
Shawn Guo be4ccfcec3 ARM: dts: imx: use nodes label in board dts
Following omap3-evm.dts way, it changes all imx dts files to use label
in board dts to refer to nodes defined by soc dtsi.  Thus, the board
dts files become easier to read and edit with the least indentation
levels.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2013-02-10 23:25:42 +08:00
Richard Zhao 97a53092a1 ARM: dts: imx6q-sabrelite: add usbotg pinctrl support
Signed-off-by: Richard Zhao <richard.zhao@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2012-09-19 11:25:42 +08:00
Richard Zhao 28342c6113 ARM: dts: imx6q-sabrelite: add usbmisc device
- add usbmisc device
- set property fsl,usbmisc for usb controllers
- set disable-over-current for imx6q-sabrelite usb otg

Signed-off-by: Richard Zhao <richard.zhao@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2012-09-17 15:12:51 +08:00
Shawn Guo cb32b4e0fc imx-clk-dt-lookup
It replaces the clk_register_clkdev in imx6q clock driver with DT
 lookup.  It depends on Mike's clk-3.7 branch.
 
 When it gets merged together with imx-dt-3.7, there is a trivial
 conflict on arch/arm/boot/dts/imx6q.dtsi.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iQEcBAABAgAGBQJQTyFwAAoJEFBXWFqHsHzOcXkH/1a2RX8pUMsYHS5efpGaRUjJ
 7PKKbAuMuGAgqdRDv1t2dcXuUv3zJgY/sdrivD9iwMqVSsQDW9MrdKyvBXg9m5UL
 rg1Uc8r6mJlHSljimN8hoHp4PGFF7DCVls5y+3jsk/I2tWK+S/w00iP/aOFgkJNc
 9Bg0ZhofKGOGpYK5joaBYAqvVM7F92gjpX+PytNEkJHGRKxCEsTRq4DRR3+r3uqs
 GuoHOflYMEmviKYaZ/I14rwUJWFF4vIxuFC4vT88erpj3Fs0y7XkEWJiKU/2ma6M
 w86qOUI6nU0iW5AILu3IvjSEvh2h/ZZ+5y3lVvzghcKK2QP4d4bEWnC745NRVSI=
 =pxVx
 -----END PGP SIGNATURE-----

Merge tag 'imx-clk-dt-lookup' into imx/dt-for-3.7-2

Conflicts:
	arch/arm/boot/dts/imx6q.dtsi
2012-09-17 15:12:28 +08:00
Shawn Guo 0e87e0436c ARM: imx6q: replace clk_register_clkdev with clock DT lookup
It really becomes an maintenance issue that every time a device needs
to look up (clk_get) a clock we have to patch kernel clock file to call
clk_register_clkdev for that clock.

Since clock DT support which is meant to resolve clock lookup in device
tree is in place, the patch moves imx6q client devices' clock lookup
over to device tree, so that any new lookup to be added at later time
can just get done in DT instead of kernel.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2012-09-11 19:16:14 +08:00
Fabio Estevam f8135a74df ARM: imx6q-sabrelite: Rename 'pinctrl_gpio_hog'
'pinctrl_gpio_hog' is used to setup the pin functions, and it is not
neccesarily used only for GPIO pins, so remove 'gpio' from its name
to describe a more generic term.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2012-09-11 16:27:00 +08:00
Shawn Guo 99d5f0cc17 ARM: dts: imx6q-sabrelite: add pinctrl for usdhc and enet
Add missing pinctrl of usdhc and enet for imx6q-sabrelite board.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2012-09-11 16:26:46 +08:00
Shawn Guo e30ba89fdf ARM: dts: imx6q: name iomuxc sub-nodes following pin function
Name iomuxc sub-nodes following pin function and hardware manual.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2012-09-11 16:26:44 +08:00
Shawn Guo 44a509fc47 ARM: dts: imx6q: improve indentation for fsl,pins
Change the indentation for property fsl,pins a little bit, so that
the first and the last line get the same indentation with all other
lines.  Then it will be easier to copy and past any of these lines.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2012-09-11 16:26:43 +08:00
Fabio Estevam 97a7dab423 ARM: imx6q-sabrelite: Setup CLKO IOMUX
In order to have audio functional on mx6qsabrelite, it is necessary
to setup the IOMUX for MX6Q_PAD_GPIO_0__CCM_CLKO pins as it provides
the audio clock.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2012-08-03 19:57:35 +08:00
Hui Wang 8ad7a30587 ARM: dts: imx6q-sabrelite: add ecspi1 pinctrl support
Imx6q sabrelite board uses ecspi1 to connect a spi flash sst25vf016b,
we need to add pinctrl information for it in the dts, otherwise the
ecspi1 driver can't work and the connected flash is wrongly
detected as a mr25h256 flash like this:

m25p80 spi32766.0: found mr25h256, expected sst25vf016b
m25p80 spi32766.0: mr25h256 (32 Kbytes)

Cc: Richard Zhao <richard.zhao@freescale.com>
Signed-off-by: Hui Wang <jason77.wang@gmail.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2012-07-12 14:59:11 +08:00
Richard Zhao 74bd88f78f ARM: dts: imx6q-sabrelite: add usb devices
- add usbphy devices
- add usb host controller and otg devices
- add usb h1 vbus regulator

Signed-off-by: Richard Zhao <richard.zhao@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2012-07-12 14:54:35 +08:00
Richard Zhao c3001b2a63 ARM: dts: imx6q-sabrelite: add serial2 pinctrl support
Signed-off-by: Richard Zhao <richard.zhao@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2012-05-11 15:18:08 +08:00
Richard Zhao b7879fe6da ARM: dts: imx6q-sabrelite: add sound device imx6q-sabrelite-sgtl5000
Signed-off-by: Richard Zhao <richard.zhao@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2012-05-11 15:18:07 +08:00
Richard Zhao 5ca65c1883 ARM: dts: imx6q-sabrelite: add audmux pinctrl support
Signed-off-by: Richard Zhao <richard.zhao@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2012-05-11 15:18:03 +08:00
Richard Zhao d99a79fcf4 ARM: dts: imx6q-sabrelite: add i2c1 pinctrl support
Signed-off-by: Richard Zhao <richard.zhao@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2012-05-11 15:18:02 +08:00
Richard Zhao f965cd55e2 ARM: dts: imx6q-sabrelite: add audmux device
Signed-off-by: Richard Zhao <richard.zhao@linaro.org>
Signed-off-by: Richard Zhao <richard.zhao@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2012-05-11 15:18:01 +08:00
Richard Zhao b1a5da8eb3 ARM: dts: imx6q-sabrelite: add ssi device
Signed-off-by: Richard Zhao <richard.zhao@linaro.org>
Signed-off-by: Richard Zhao <richard.zhao@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2012-05-11 15:18:00 +08:00
Fabio Estevam f07439c432 ARM: dts: imx6q-sabrelite: Add SPI NOR support
mx6qsabrelite has a sst25vf016b SPI NOR flash connected to eCSPI1.

Add support for it.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2012-05-11 15:17:54 +08:00
Shawn Guo 0c456cfa7e ARM: imx: rename uart and fec device tree nodes
It has been pointed out by device tree maintainer for several times
that the generic names 'serial' and 'ethernet' should be used for
those devices per ePAPR.  Renames imx uart and fec device tree nodes
to stop them being bad examples.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-05-11 15:08:24 +08:00
Shawn Guo 6f6ea93705 ARM: dts: imx6q-sabrelite: add vmmc-supply for usdhc
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2012-02-27 17:15:12 +08:00
Richard Zhao adcec4ce96 ARM: dts: imx6q-sabrelite: add sgtl5000 audio codec
Signed-off-by: Richard Zhao <richard.zhao@linaro.org>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2012-02-27 14:53:48 +08:00
Richard Zhao cf37a8ee60 ARM: dts: imx6q-sabrelite: add 2p5v and 3p3v regulators
Signed-off-by: Richard Zhao <richard.zhao@linaro.org>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2012-02-27 14:53:29 +08:00
Richard Zhao 3c8276c6bc arm/imx6: add imx6q sabrelite board support
- Add basic board dts file
- Add board compatible string to mach-imx6q.
- Update fsl DT board doc.

Signed-off-by: Richard Zhao <richard.zhao@linaro.org>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2011-12-14 21:25:45 +08:00