* Pinmuxing with devicetree (beaglebone)
@ 2013-04-21 9:43 Tim Sander
2013-04-22 15:33 ` Haojian Zhuang
0 siblings, 1 reply; 3+ messages in thread
From: Tim Sander @ 2013-04-21 9:43 UTC (permalink / raw)
To: linux-arm-kernel; +Cc: LKML
Hi
I am currently trying to get pinmuxing working on a beaglebone board with an
offtree driver. This is for a custom handbuild hardware so i guess there is no
point in bringing this mainline.
While this is havyly patched 3.8.4 version running over here i think the
pinmux infrastructure is the new standard way. At least there is a
pinctrl/44e10800.pinmux directory in debugfs?
My last aproach was using the devicetree but beeing new to this devicetree
stuff i just got stuck:
http://comments.gmane.org/gmane.linux.ports.arm.kernel/231204
Now i tried use the way it is described in Documentation/pinctrl.txt but still
there are the includes missing: #include <linux/pinctrl/consumer.h>.
Also while there is a /sys/kernel/debug/pinctrl/44e10800.pinmux in debugfs i
found that not so intuitive as the omap_mux which disappeared. Also i didn't
find any documentation for this debugfs stuff.
So what is the recommended way to get this stupid pinmuxing going. In pre
devicetree days one would just pick the mux.h include of the platform and
initialized the muxers which was pretty straight forward. Now with device tree
its much more complicated. No proper syntax checking as with the c definitions
and no documentation how to get this magic stuff working :-(.
The whole stuff is build by a ptxdist (a embedded buildsystem) and can be
found over here:
https://gitorious.org/ptxdist-beaglebone/ptxdist-beaglebone
Best regards
Tim
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Pinmuxing with devicetree (beaglebone)
2013-04-21 9:43 Pinmuxing with devicetree (beaglebone) Tim Sander
@ 2013-04-22 15:33 ` Haojian Zhuang
2013-05-01 22:24 ` Tim Sander
0 siblings, 1 reply; 3+ messages in thread
From: Haojian Zhuang @ 2013-04-22 15:33 UTC (permalink / raw)
To: Tim Sander; +Cc: linux-arm-kernel, LKML
On Sun, Apr 21, 2013 at 5:43 PM, Tim Sander <tim@krieglstein.org> wrote:
> Hi
>
> I am currently trying to get pinmuxing working on a beaglebone board with an
> offtree driver. This is for a custom handbuild hardware so i guess there is no
> point in bringing this mainline.
>
> While this is havyly patched 3.8.4 version running over here i think the
> pinmux infrastructure is the new standard way. At least there is a
> pinctrl/44e10800.pinmux directory in debugfs?
>
> My last aproach was using the devicetree but beeing new to this devicetree
> stuff i just got stuck:
> http://comments.gmane.org/gmane.linux.ports.arm.kernel/231204
>
> Now i tried use the way it is described in Documentation/pinctrl.txt but still
> there are the includes missing: #include <linux/pinctrl/consumer.h>.
>
> Also while there is a /sys/kernel/debug/pinctrl/44e10800.pinmux in debugfs i
> found that not so intuitive as the omap_mux which disappeared. Also i didn't
> find any documentation for this debugfs stuff.
>
> So what is the recommended way to get this stupid pinmuxing going. In pre
> devicetree days one would just pick the mux.h include of the platform and
> initialized the muxers which was pretty straight forward. Now with device tree
> its much more complicated. No proper syntax checking as with the c definitions
> and no documentation how to get this magic stuff working :-(.
>
> The whole stuff is build by a ptxdist (a embedded buildsystem) and can be
> found over here:
> https://gitorious.org/ptxdist-beaglebone/ptxdist-beaglebone
>
"pins" node could dump the register configuration if it's pinctrl-single driver.
You can dump this to check whether the right pinmux is set.
I checked your patch in the link. It seems that you only write the pinmux
configuration without using them.
Don't forget to append this in your DTS file.
pinctrl-names = "default";
pinctrl-0 = <&wind_pins>;
There're two documents worth to read for enabling pins for
pinctrl-single driver.
Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt
Documentation/devicetree/bindings/pinctrl/pinctrl-single.txt
Regards
Haojian
> Best regards
> Tim
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Pinmuxing with devicetree (beaglebone)
2013-04-22 15:33 ` Haojian Zhuang
@ 2013-05-01 22:24 ` Tim Sander
0 siblings, 0 replies; 3+ messages in thread
From: Tim Sander @ 2013-05-01 22:24 UTC (permalink / raw)
To: Haojian Zhuang; +Cc: linux-arm-kernel, LKML
Hi Haojian and Linux-Folks
Thanks for your reply. This is just a short followup how i got it working. But
as the 3.8.4 kernel on the beaglebone is having no ethernet connectivity i
went back to the 3.2 kernel without device tree support for the time beeing.
So i didn't spent to much time on the device tree stuff.
> > I am currently trying to get pinmuxing working on a beaglebone board with
> > an offtree driver. This is for a custom handbuild hardware so i guess
> > there is no point in bringing this mainline.
> >
> > While this is havyly patched 3.8.4 version running over here i think the
> > pinmux infrastructure is the new standard way. At least there is a
> > pinctrl/44e10800.pinmux directory in debugfs?
> >
> > My last aproach was using the devicetree but beeing new to this
> > devicetree stuff i just got stuck:
> > http://comments.gmane.org/gmane.linux.ports.arm.kernel/231204
> >
> > Now i tried use the way it is described in Documentation/pinctrl.txt but
> > still there are the includes missing: #include
> > <linux/pinctrl/consumer.h>.
> >
> > Also while there is a /sys/kernel/debug/pinctrl/44e10800.pinmux in
> > debugfs i found that not so intuitive as the omap_mux which disappeared.
> > Also i didn't find any documentation for this debugfs stuff.
> >
> > So what is the recommended way to get this stupid pinmuxing going. In pre
> > devicetree days one would just pick the mux.h include of the platform and
> > initialized the muxers which was pretty straight forward. Now with device
> > tree its much more complicated. No proper syntax checking as with the c
> > definitions and no documentation how to get this magic stuff working
> > :-(.
> >
> > The whole stuff is build by a ptxdist (a embedded buildsystem) and can be
> > found over here:
> > https://gitorious.org/ptxdist-beaglebone/ptxdist-beaglebone
>
> "pins" node could dump the register configuration if it's pinctrl-single
> driver.
>
> You can dump this to check whether the right pinmux is set.
>
> I checked your patch in the link. It seems that you only write the pinmux
> configuration without using them.
>
> Don't forget to append this in your DTS file.
> pinctrl-names = "default";
> pinctrl-0 = <&wind_pins>;
Thanks for the pointers, but somehow these fragments didn't work. What worked
was writing it directly into the included dtb at the proper place eg.:
am33xx_pinmux: pinmux@44e10800 {
pinctrl-names = "default";
pinctrl-0 = <&userleds_pins>;
userled_pins: pinmux_userled_pins {
pinctrl-single,pins = <
/* Tims wind pins */
0x000 0x27 /* gpmc_ad0 = ad0 = P8-25 = gpio1_0|input, no pullup, gpio mux */
0x004 0x27 /* gpmc_ad1 = ad1 = P8-24 = gpio1_1|input, no pullup, gpio mux */
0x008 0x27 /* gpmc_ad2 = ad2 = P8-5 = gpio1_2|input, no pullup, gpio mux */
0x00c 0x27 /* gpmc_ad3 = ad3 = P8-6 = gpio1_3|input, no pullup, gpio mux */
0x038 0x26 /* gpmc_ad14 = pru_gpio_in14 = P8_16 = gpio1.14|input, no pullup, pru0 gpio 14 */
0x54 0x7 /* gpmc_a5.gpio1_21, OUTPUT | MODE7 */
0x58 0x17 /* gpmc_a6.gpio1_22, OUTPUT_PULLUP | MODE7 */
0x5c 0x7 /* gpmc_a7.gpio1_23, OUTPUT | MODE7 */
0x60 0x17 /* gpmc_a8.gpio1_24, OUTPUT_PULLUP | MODE7 */
>;
};
i2c0_pins: pinmux_i2c0_pins {
pinctrl-single,pins = <
0x188 0x70 /* i2c0_sda, SLEWCTRL_SLOW | INPUT_PULLUP | MODE0 */
0x18c 0x70 /* i2c0_scl, SLEWCTRL_SLOW | INPUT_PULLUP | MODE0 */
>;
};
i2c2_pins: pinmux_i2c2_pins {
pinctrl-single,pins = <
0x178 0x73 /* uart1_ctsn.i2c2_sda, SLEWCTRL_SLOW | INPUT_PULLUP | MODE3 */
0x17c 0x73 /* uart1_rtsn.i2c2_scl, SLEWCTRL_SLOW | INPUT_PULLUP | MODE3 */
>;
};
};
Also one thing i didn't know is that the dtb can also reverse compile so that the result can be seen.
This is especially handy with these fragment and include stuff.
Best regards
Tim
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2013-05-01 22:24 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-04-21 9:43 Pinmuxing with devicetree (beaglebone) Tim Sander
2013-04-22 15:33 ` Haojian Zhuang
2013-05-01 22:24 ` Tim Sander
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).