diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2019-04-10 15:06:56 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2019-04-10 15:06:56 +0200 |
commit | fe34e52d19aeeb04bc34114fda928b6afeb62253 (patch) | |
tree | c643f5de37af1b38241c2d18eac6ed3bb7037c74 /sys/src/9/bcm/devarch.c | |
parent | f00aa6b92a7a6d186cbfe8ca7d045e32f597bffa (diff) |
bcm: move okay() from uartmini.c to devarch.c
Diffstat (limited to 'sys/src/9/bcm/devarch.c')
-rw-r--r-- | sys/src/9/bcm/devarch.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/sys/src/9/bcm/devarch.c b/sys/src/9/bcm/devarch.c index 7db14bdfa..f799e33c6 100644 --- a/sys/src/9/bcm/devarch.c +++ b/sys/src/9/bcm/devarch.c @@ -172,3 +172,31 @@ archinit(void) addarchfile("cputype", 0444, cputyperead, nil); addarchfile("cputemp", 0444, cputempread, nil); } + +void +okay(int on) +{ + static int first; + static int okled, polarity; + char *p; + + if(!first++){ + p = getconf("bcm2709.disk_led_gpio"); + if(p == nil) + p = getconf("bcm2708.disk_led_gpio"); + if(p != nil) + okled = strtol(p, 0, 0); + else + okled = 'v'; + p = getconf("bcm2709.disk_led_active_low"); + if(p == nil) + p = getconf("bcm2708.disk_led_active_low"); + polarity = (p == nil || *p == '1'); + if(okled != 'v') + gpiosel(okled, Output); + } + if(okled == 'v') + vgpset(0, on); + else if(okled != 0) + gpioout(okled, on^polarity); +} |