]> git.dujemihanovic.xyz Git - u-boot.git/commit
cmd: Add a mux command
authorPratyush Yadav <p.yadav@ti.com>
Fri, 16 Oct 2020 10:46:35 +0000 (16:16 +0530)
committerTom Rini <trini@konsulko.com>
Wed, 28 Oct 2020 15:49:31 +0000 (11:49 -0400)
commit05115abe8df178638c2078aa11028ed31aab0b77
treef8c5cde5a74763b98b60c3665549093c9b706ddb
parent739592ccbbf6d2067e5aced1750b43a6d11fcdcf
cmd: Add a mux command

This command lets the user list, select, and deselect mux controllers
introduced with the mux framework on the fly. It has 3 subcommands:
list, select, and deselect.

List: Lists all the mux present on the system. The muxes are listed for
each chip. The chip is identified by its device name. Each chip can have
a number of mux controllers. Each is listed in sequence and is assigned
a sequential ID based on its position in the mux chip. It lists details
like ID, whether the mux is currently selected or not, the current
state, the idle state, and the number of states.

A sample output would look something like:

=> mux list
a-mux-controller:
ID Selected Current State Idle State Num States
0 no         unknown    as-is      0x4
1 no         0x2        0x2        0x10
2 no         0x73       0x73       0x100

another-mux-controller:
ID Selected Current State Idle State Num States
        0       no              0x1             0x1             0x4
        1       no              0x2             0x2             0x4

Select: Selects a given mux and puts it in the specified state. This
subcommand takes 3 arguments: mux chip, mux ID, state to set
the mux in. The arguments mux chip and mux ID are used to identify which
mux needs to be selected, and then it is selected to the given state.
The mux needs to be deselected before it can be selected again in
another state. The state should be a hexadecimal number.

For example:
=> mux list
a-mux-controller:
        ID      Selected        Current State   Idle State      Num States
        0       no              0x1             0x1             0x4
        1       no              0x1             0x1             0x4
=> mux select a-mux-controller 0 0x3
=> mux list
a-mux-controller:
        ID      Selected        Current State   Idle State      Num States
        0       yes             0x3             0x1             0x4
        1       no              0x1             0x1             0x4

Deselect: Deselects a given mux and puts it in its idle state. This
subcommand takes 2 arguments: the mux chip and mux ID to identify which
mux needs to be deselected. So in the above example, we can deselect mux
0 using:

=> mux deselect a-mux-controller 0
=> mux list
a-mux-controller:
        ID      Selected        Current State   Idle State      Num States
        0       no              0x1             0x1             0x4
        1       no              0x1             0x1             0x4

Signed-off-by: Pratyush Yadav <p.yadav@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
cmd/Kconfig
cmd/Makefile
cmd/mux.c [new file with mode: 0644]