summaryrefslogtreecommitdiff
path: root/drivers/target
diff options
context:
space:
mode:
authorSean Anderson <sean.anderson@linux.dev>2024-06-11 01:35:50 +0300
committerLinus Walleij <linus.walleij@linaro.org>2024-06-17 11:47:06 +0300
commitf28cbab9bbd57abc3661ff84b7df60e28ded20b7 (patch)
treedf5f632b3269e5df3dff3332d06e0646986ada03 /drivers/target
parent58ba921150e96c5be718b92fd76e71ad82503c93 (diff)
downloadlinux-f28cbab9bbd57abc3661ff84b7df60e28ded20b7.tar.xz
pinctrl: zynqmp: Support muxing individual pins
While muxing groups of pins at once can be convenient for large interfaces, it can also be rigid. This is because the group is set to all pins which support a particular function, even though not all pins may be used. For example, the sdhci0 function may be used with a 8-bit eMMC, 4-bit SD card, or even a 1-bit SD card. In these cases, the extra pins may be repurposed for other uses, but this is not currently allowed. There is not too much point in pin "groups" when there are not actual pin groups at the hardware level. The pins can all be muxed individually, so there's no point in adding artificial groups on top. Just mux the pins like the hardware allows. To this effect, add a new group for each pin which can be muxed. These groups are part of each function the pin can be muxed to. We treat group selectors beyond the number of groups as "pin" groups. To set this up, we initialize groups before functions, and then create a bitmap of used pins for each function. These used pins are appended to the function's list of groups. Signed-off-by: Sean Anderson <sean.anderson@linux.dev> Reviewed-by: Sai Krishna Potthuri <sai.krishna.potthuri@amd.com> Acked-by: Michal Simek <michal.simek@amd.com> Link: https://lore.kernel.org/r/20240610223550.2449230-3-sean.anderson@linux.dev Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'drivers/target')
0 files changed, 0 insertions, 0 deletions