@@ -300,6 +300,13 @@ unsafe fn security_set(ec: &mut Ec<Box<dyn Access>>, state: SecurityState) -> Re
300300 Ok ( ( ) )
301301}
302302
303+ unsafe fn usbc_mux_info ( ec : & mut Ec < Box < dyn Access > > , port : u8 ) -> Result < ( ) , Error > {
304+ let info = ec. usbc_mux_info ( port) ?;
305+ println ! ( "{:04X}" , info) ;
306+
307+ Ok ( ( ) )
308+ }
309+
303310fn parse_color ( s : & str ) -> Result < ( u8 , u8 , u8 ) , String > {
304311 let r = u8:: from_str_radix ( & s[ 0 ..2 ] , 16 ) ;
305312 let g = u8:: from_str_radix ( & s[ 2 ..4 ] , 16 ) ;
@@ -411,6 +418,12 @@ fn main() {
411418 . possible_values ( [ "lock" , "unlock" ] )
412419 )
413420 )
421+ . subcommand ( SubCommand :: with_name ( "usbc_mux_info" )
422+ . arg ( Arg :: with_name ( "port" )
423+ . value_parser ( clap:: value_parser!( u8 ) )
424+ . required ( true )
425+ )
426+ )
414427 . get_matches ( ) ;
415428
416429 let get_ec = || -> Result < _ , Error > {
@@ -693,6 +706,16 @@ fn main() {
693706 } ,
694707 }
695708 } ,
709+ Some ( ( "usbc_mux_info" , sub_m) ) => {
710+ let port = sub_m. get_one :: < u8 > ( "port" ) . unwrap ( ) ;
711+ match unsafe { usbc_mux_info ( & mut ec, * port) } {
712+ Ok ( ( ) ) => ( ) ,
713+ Err ( err) => {
714+ eprintln ! ( "failed to get usbc_mux_info {}: {:X?}" , port, err) ;
715+ process:: exit ( 1 ) ;
716+ } ,
717+ }
718+ } ,
696719 _ => unreachable ! ( )
697720 }
698721}
0 commit comments