Wed Jul 18 16:12:49 EDT 2018


What do I understand?
- the interface is to set a register to a value
- somehow, a subsystem is linked to a pin configuration

What not?
- how to switch e.g. between GPIO and SPI?

E.g. below, the pruss_soc_bus node references pinctrl-0, which is a
node inside the am33xx_pinmux node.  I'm guessing that how this works
is that when the pruss drivers is initialized, it will call into the
pinctrl subsystem to set those pins.

&pruss_soc_bus {
	status = "okay";
	pruss@4a300000 {
		status = "okay";
		pinctrl-names = "default";
		pinctrl-0 = <&hatd_pru_pins>;
		pru@4a334000 {
			status = "okay";
		pru@4a338000 {
			status = "okay";
&am33xx_pinmux {
	hatd_pru_pins: hatd_pru_pins {
		pinctrl-single,pins = <
		// Comments annotate names from am335-bone-common-universal-pins.dtsi
		// It seems best just to copy.  FIXME: generate this file.
		0x0a0  0x05 // P8_45_pruout_pin  
		0x0a4  0x05 // P8_46_pruout_pin


- PIN CONTROLLER  (e.g. am33x_pinmux)
- PIN (unsigned integer, name, ...)
mount -t debugfs none /sys/kernel/debug/

- groups