I have a device that is claiming the pins that my overlay uses, but am unsure how to resolve the collision. This particular collision is with the cpsw, I think. I tried setting the status of cpsw_port1 and ethernet0 to “disabled”. The former had no immediate effect, and the second one caused boot errors. This is what I currently have,
&cpsw_port1 {
status = "disabled";
};
// ...
&am33xx_pinmux {
camera_pins: camera_pins {
#gpio-cells = <2>;
pinctrl-single,pins = <
/* Pins for camera control */
AM33XX_PADCONF(AM335X_PIN_MII1_TXD3, PIN_OUTPUT, MUX_MODE7) /* mii1_txd3 == flash */
AM33XX_PADCONF(AM335X_PIN_MII1_CRS, PIN_OUTPUT, MUX_MODE7) /* mii1_crs == bus_oe */
AM33XX_PADCONF(AM335X_PIN_MII1_COL, PIN_OUTPUT, MUX_MODE7) /* mii1_col == cam_oe */
AM33XX_PADCONF(AM335X_PIN_MII1_RX_CLK, PIN_OUTPUT, MUX_MODE7) /* mii1_rx_clk == clk_en */
AM33XX_PADCONF(AM335X_PIN_MII1_RXD0, PIN_OUTPUT, MUX_MODE7) /* mii1_rxd0 == input_en */
AM33XX_PADCONF(AM335X_PIN_MII1_RXD1, PIN_OUTPUT, MUX_MODE7) /* mii1_rxd1 == reset */
AM33XX_PADCONF(AM335X_PIN_MII1_RXD2, PIN_OUTPUT, MUX_MODE7) /* mii1_rxd2 == saddr */
AM33XX_PADCONF(AM335X_PIN_MII1_RXD3, PIN_OUTPUT, MUX_MODE7) /* mii1_rxd3 == standby */
AM33XX_PADCONF(AM335X_PIN_MII1_RX_ER, PIN_OUTPUT, MUX_MODE7) /* mii1_rx_er == trigger */
AM33XX_PADCONF(AM335X_PIN_MII1_RX_DV, PIN_OUTPUT, MUX_MODE7) /* mii1_rx_dv == vreg_en */
/* Pins for camera parallel bus. Currently only getting top 8 bits of pixel data */
AM33XX_PADCONF(AM335X_PIN_MCASP0_ACLKX, PIN_INPUT, MUX_MODE6) /* mcasp0_aclkx == pru0_r31_0 == camera D4 */
AM33XX_PADCONF(AM335X_PIN_MCASP0_FSX, PIN_INPUT, MUX_MODE6) /* mcasp0_fsx == pru0_r31_1 == camera D5 */
AM33XX_PADCONF(AM335X_PIN_MCASP0_AXR0, PIN_INPUT, MUX_MODE6) /* mcasp0_axr0 == pru0_r31_2 == camera D6 */
AM33XX_PADCONF(AM335X_PIN_MCASP0_AHCLKR, PIN_INPUT, MUX_MODE6) /* mcasp0_ahclkr == pru0_r31_3 == camera D7 */
AM33XX_PADCONF(AM335X_PIN_MCASP0_ACLKR, PIN_INPUT, MUX_MODE6) /* mcasp0_aclkr == pru0_r31_4 == camera D8 */
AM33XX_PADCONF(AM335X_PIN_MCASP0_FSR, PIN_INPUT, MUX_MODE6) /* mcasp0_fsr == pru0_r31_5 == camera D9 */
AM33XX_PADCONF(AM335X_PIN_MCASP0_AXR1, PIN_INPUT, MUX_MODE6) /* mcasp0_axr1 == pru0_r31_6 == camera D10 */
AM33XX_PADCONF(AM335X_PIN_MCASP0_AHCLKX, PIN_INPUT, MUX_MODE6) /* mcasp0_ahclkx == pru0_r31_7 == camera D11 */
AM33XX_PADCONF(AM335X_PIN_GPMC_AD14, PIN_INPUT, MUX_MODE6) /* gpmc_ad14 == pru0_r31_14 == camera VSYNC */
AM33XX_PADCONF(AM335X_PIN_GPMC_AD15, PIN_INPUT, MUX_MODE6) /* gpmc_ad15 == pru0_r31_15 == camera HSYNC */
AM33XX_PADCONF(AM335X_PIN_XDMA_EVENT_INTR1, PIN_INPUT, MUX_MODE5) /* xdma_event_intr1 == pru0_r31_16 == camera pixel clock */
>;
};
};
This is the error.
[ 29.547194] pinctrl-single 44e10800.pinmux: pin PIN71 already requested by 4a100000.switch; cannot claim for prudev
[ 29.601836] pinctrl-single 44e10800.pinmux: error -EINVAL: pin-71 (prudev)
[ 29.657828] pinctrl-single 44e10800.pinmux: error -EINVAL: could not request pin 71 (PIN71) from group camera_pins on device pinctrl-single