On Tue, Sep 23, 2014 at 04:10:09PM +0200, Arnd Bergmann wrote: > On Tuesday 23 September 2014 21:58:14 Joe. C wrote: > > Thanks for review. > > The intend for these macros is helpin pinctrl user to write DT node. > > With these macro, we could write like this for i2c0: > > > > mediatek,pinfunc = <MT8135_PIN_100_SDA0__FUNC_SDA0 > > MT8135_PIN_101_SCL0__FUNC_SCL0>; > > > > We feel this is less error prone and easier to write than this: > > > > mediatek,pinfunc = <MT_PIN_FUNC(100, 1) MT_PIN_FUNC(101, 1)> > > But you don't actually use the same macros in the driver, so in effect > you just move the definitions from the file they are needed in to another > file as a macro. > > It is no less error prone to define those macros in mt8135-pinfunc.h > than in the pinctrl node, just less readable. IMO these defines make writing and reviewing dts files much easier. Once the macros are used widely and thus are likely correct you can be sure that every board has sane and non conflicting pin setups. The pin names can often be found in the schematics of a board, so you can verify the pinmux settings without looking in the SoC datasheet. If all you have in the dts files is MT_PIN_FUNC(pinx, funcy) then it can be quite hard to verify pins. First you have to get an idea how the pin numbers match the pins in the datasheet. In the bindings the pins are numbered, in the datasheet they usually only have names. Afterwards you have to find out which functions this pin has and how these match to the function number in the binding. Repeat this for dozens of pins. 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 devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html