mmc: switch mmc_helper to device_ api


mmc: switch mmc_helper to device_ api

Add generic mmc_helper which uses newly introduced device_*_property
api. Thanks to this change the sd/mmc drivers will be capable
of parsing both DT and ACPI description.

Ensure backward compatibility for all mmc_fdt_helper users.

Reviewed by: manu, mw
Sponsored by: Semihalf
Differential revision: https://reviews.freebsd.org/D31598

(cherry picked from commit 8a8166e5bcfb50e2b7280581b600d098fa6c9fc7)

mmc: Fix regression in 8a8166e5bcfb breaking Stratix 10 boot

The refactoring in 8a8166e5bcfb introduced a functional change that
breaks booting on the Stratix 10, hanging when it should be attaching
da0. Previously OF_getencprop was called with a pointer to host->f_max,
so if it wasn't present then the existing value was left untouched, but
after that commit it will instead clobber the value with 0. The dwmmc
driver, as used on the Stratix 10, sets a default value before calling
mmc_fdt_parse and so was broken by this functional change. It appears
that aw_mmc also does the same thing, so was presumably also broken on
some boards.

Fixes: 8a8166e5bcfb ("mmc: switch mmc_helper to device_ api")
Reviewed by: manu, mw
Differential Revision: https://reviews.freebsd.org/D32209

(cherry picked from commit 4a331971d2f1083f35b87197da0614fa3e0e53cb)


bag_semihalf.comAuthored on Aug 2 2021, 2:27 PM
mwCommitted on Mar 29 2022, 10:24 PM
Differential Revision
D31598: mmc_helper: add mmc_helper and rename mmc_fdt_helper to mmc_helper
rG45b49a0f96e0: device: add device_get_property and device_has_property