I’ve been trying to port the driver for a SPI rtc, the DS3234, from the 3.8 kernel
to a recent 4.4. After minor changes the cape manager loads the dts file sucessfully,
and the slot entry and /dev/rtc1 appear, but reading and writing to the clock fails.
Checking the pins and pin groups it seems that 4.4 isn’t enabling the pins group.
In 3.8 I get:
pin 100 (44e10990): 481a0000.spi (GPIO UNCLAIMED) function pinctrl_spi1_pins group pinctrl_spi1_pins
pin 101 (44e10994): 481a0000.spi (GPIO UNCLAIMED) function pinctrl_spi1_pins group pinctrl_spi1_pins
pin 102 (44e10998): 481a0000.spi (GPIO UNCLAIMED) function pinctrl_spi1_pins group pinctrl_spi1_pins
pin 103 (44e1099c): 481a0000.spi (GPIO UNCLAIMED) function pinctrl_spi1_pins group pinctrl_spi1_pins
and in 4.4 the pins are unclaimed by both GPIO and MUX.
The uEnv.txt line is: optargs=bone_capemgr.enable_partno=BB-SPIDEV0,BB-SPI1CLK
Loading SPIDEV1 in place of SPI1CLK produces the correct /dev/spidevN.N devices,
but again these don’t seem to be useable; the test programs in the kernel
sources fail.
The only change between the 3.8 and 4.4 setups is that the HDMI overlay has gone,
and there seems no way to disable HDMI. There’s a note in one of Robert Nelson’s
pages that setting dtb=am335x-boneblack-overlay.dtb in uEnv.txt will achieve this,
but checking the new u-boot code that doesn’t seem likely, and checking the pins
and pingroups shows no change.
Has anyone any ideas as to how to configure the pingroups under 4.4, or how to
initialise the device tree for SPI?
Thanks - C W Rose