summaryrefslogtreecommitdiff
path: root/drivers/platform/sprd/boot_mode.c
diff options
context:
space:
mode:
authorYuval Adam <_@yuv.al>2017-08-30 08:25:59 +0000
committerYuval Adam <_@yuv.al>2017-08-30 08:25:59 +0000
commit8e4bff4cab0ddac6060645b0715210484d02ff40 (patch)
tree3a5c3024371a04692a3a6d9974d001cdff8ebf84 /drivers/platform/sprd/boot_mode.c
Initial file dump from open source releaseHEADmaster
Diffstat (limited to 'drivers/platform/sprd/boot_mode.c')
-rw-r--r--drivers/platform/sprd/boot_mode.c46
1 files changed, 46 insertions, 0 deletions
diff --git a/drivers/platform/sprd/boot_mode.c b/drivers/platform/sprd/boot_mode.c
new file mode 100644
index 00000000..b206dc4d
--- /dev/null
+++ b/drivers/platform/sprd/boot_mode.c
@@ -0,0 +1,46 @@
+#include <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/platform_device.h>
+#include <linux/delay.h>
+#include <linux/export.h>
+
+
+static int calibration_mode = false;
+static int __init calibration_start(char *str)
+{
+ int calibration_device =0;
+ int mode=0,freq=0,device=0;
+ if(str){
+ pr_info("modem calibartion:%s\n", str);
+ sscanf(str, "%d,%d,%d", &mode,&freq,&device);
+ }
+ if(device & 0x80){
+ calibration_device = device & 0xf0;
+ calibration_mode = true;
+ pr_info("calibration device = 0x%x\n",calibration_device);
+ }
+ return 1;
+}
+__setup("calibration=", calibration_start);
+
+int in_calibration(void)
+{
+ return (int)(calibration_mode == true);
+}
+
+EXPORT_SYMBOL(in_calibration);
+
+static int autotest_mode = false;
+static int __init autotest_start(char *str)
+{
+ autotest_mode = true;
+ return 1;
+}
+__setup("autotest=", autotest_start);
+
+int in_autotest(void)
+{
+ return (int)(autotest_mode == true);
+}
+
+EXPORT_SYMBOL(in_autotest);