[PATCH v3 4/6] cmd: Add a mux command

Simon Glass sjg at chromium.org
Wed Jun 17 05:12:12 CEST 2020


On Thu, 11 Jun 2020 at 13:45, Pratyush Yadav <p.yadav at ti.com> wrote:
>
> 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 at ti.com>
> ---
>  cmd/Kconfig  |   6 ++
>  cmd/Makefile |   1 +
>  cmd/mux.c    | 161 +++++++++++++++++++++++++++++++++++++++++++++++++++
>  3 files changed, 168 insertions(+)
>  create mode 100644 cmd/mux.c

Reviewed-by: Simon Glass <sjg at chromium.org>

Please can you add a patch with a test for this? See
ut_assert_nextline(), etc. and my 'memory search' series.


More information about the U-Boot mailing list