On Fri, Jan 8, 2021, 10:35 AM Abdelatif Guettouche <
abdelatif.guettou...@gmail.com> wrote:

> >  One problem was I didn't understand current CS definition. I thought
> > #define GPIO_MCP2515_CS   (GPIO_OUTPUT|GPIO_CNF_OUTPP|GPIO_MODE_50MHz|\
> >                            GPIO_OUTPUT_SET|GPIO_PORTA|GPIO_PIN4)
> > created a bitmask named GPIO_MCP2515_CS but no, it creates an ASCII
> string
> > that does its magic in stm32_configgpio()
>
>
> That doesn't create an ASCII string.  GPIOs follow a simple encoding
> that changes from chip to chip depending on the capabilities of the
> chip.
>
> The CS pin isn't part of the chip driver because it's (for the most
> cases) a normal GPIO that changes from board to board.
> The board logic that adds a CS pin is very simple and doesn't require
> deep kernel knowledge.
>

A key exception is when the CS is behind an IO expander. Which the current
design allows.

The biggest issue I see is that drivers are hard coding the CS reference
like the MCP2515 which always uses SPIDEV_CANBUS(0), this should be passed
in to the initialization of all SPI devices and owned by the private device
structure not hard coded. I could even see the argument for this being part
of the generic SPI interface structure.

>

Reply via email to