View difference between Paste ID: xKYuquHb and MKtWJ8G8
SHOW: | | - or go back to the newest paste.
1
from glob import glob
2
from pathlib import Path
3
import errno
4
5
def pinmux_path( name ):
6
    paths = glob( '/sys/bus/platform/drivers/bone-pinmux-helper/*%s*/state' % name )
7
    if len(paths) == 0:
8
        raise KeyError( 'Pinmux node not found: ' + name )
9
    if len(paths) > 1:
10
        raise KeyError( 'Pinmux node ambiguous: ' + name )
11
    return Path( paths[0] )
12
13
def get_pinmux_state( name ):
14
    return pinmux_path( name ).read_text().rstrip()
15
16
def set_pinmux_state( name, state ):
17
    try:
18
        pinmux_path( name ).write_text( state )
19
    except OSError as err:
20
        if err.errno == errno.ENODEV:
21
            raise ValueError( 'Invalid state for ' + name + ': ' + state ) from None
22
        else:
23
            raise