summaryrefslogtreecommitdiff
path: root/sys/src/9/bcm/devarch.c
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2019-04-10 15:06:56 +0200
committercinap_lenrek <cinap_lenrek@felloff.net>2019-04-10 15:06:56 +0200
commitfe34e52d19aeeb04bc34114fda928b6afeb62253 (patch)
treec643f5de37af1b38241c2d18eac6ed3bb7037c74 /sys/src/9/bcm/devarch.c
parentf00aa6b92a7a6d186cbfe8ca7d045e32f597bffa (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.c28
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);
+}