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 |