The following definition in am33xx.h is wrong:
#define SLEWCTRL_FAST (1 << 6)
A correct definition would be:
#define SLEWCTRL_FAST (0 << 6) /* dummy, fast is default */
#define SLEWCTRL_SLOW (1 << 6)
References:
- It was correct in the Rowboat kernel: mux.h:
#define AM33XX_SLEWCTRL_FAST (0 << 6)
#define AM33XX_SLEWCTRL_SLOW (1 << 6)
- AM335x Technical Reference Manual
Section "9.2.2 Pad Control Registers": Bit 6 SLEWCTRL: 0 = Fast, 1 = Slow
Section "9.3.1.50 conf_<module>_<pin> Register": Bit 6, Field conf_<module>_pin_slewctrl: Select between faster or slower slew rate. 0 = Fast, 1 = Slow.
-
meta-ti message from Peter A. Bigot: "mis-definition of SLEWCTRL_FAST in dt-bindings amxxxx header"
-
TI forum discussion: AM335x Slew rate setup in the device tree
-
It's not fixed at kernel.org