[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