On Mon, 27 Jan 2025 at 23:11, Bernhard Beschow <shen...@gmail.com> wrote:
>
>
>
> Am 27. Januar 2025 13:24:46 UTC schrieb Peter Maydell 
> <peter.mayd...@linaro.org>:
> >On Sat, 11 Jan 2025 at 18:37, Bernhard Beschow <shen...@gmail.com> wrote:
> >>
> >> Commit ce5dd27534b0 "hw/sd: Remove omap2_mmc device" removed the last user 
> >> of
> >> sd_set_cb(). Rework this functionality into GPIOs.
> >>
> >> Reviewed-by: Philippe Mathieu-Daudé <phi...@linaro.org>
> >> Signed-off-by: Bernhard Beschow <shen...@gmail.com>
> >
> >What is this for? We have a non-legacy API for "the SD controller
> >needs to know when the SD card is inserted or the readonly
> >status changes", which is that the controller implements the
> >SDBasClass set_inserted and set_readonly methods. (See the pl011
> >for an example.)
> >
> >I would prefer it if we used that consistently, rather than having
> >two mechanisms, one using GPIO lines and one using class methods.
> >I think we should delete the sd_set_cb() API and handling code
> >entirely.
>
> According to the Linux MMC controller DT schema, there are actually two ways 
> to implement cd and wp lines [1]. When implementing the imx8mp-evk board, I 
> thought I would need to model the GPIO style [2], hence I implemented it plus 
> the active low part on the SD card. Later I noticed that the card gets 
> detected anyway without the GPIO wiring, so I'm fine if the code gets removed 
> instead.

Even if you did need to implement that GPIO wiring, I think the
right way to do it is for the SD controller to implement a
subclass of SDBusClass so it can have its own implementations
of the set_inserted and set_readonly methods, and then it
is the SD controller object that has the GPIO lines, not
the SD card itself.

(I have a series almost ready to send out which QOMifies
the omap_mmc device and then deletes the "legacy" SD API,
including sd_set_cb().)

thanks
-- PMM

Reply via email to