auto_shutdown: add an interface to set timing [1/1]

PD#SWPL-87003

Problem:
In order to modify the timing dynamically

Solution:
Add an interface to set timing,
passing in the timing time through command line parameters

Verify:
A113L-AD403

Change-Id: Ied6ece38df072fbce0f5cca475ecfd0c4fadc304
Signed-off-by: shu.wang <shu.wang@amlogic.com>
diff --git a/utils/auto_shutdown.c b/utils/auto_shutdown.c
index bddf5f2..c2e3e8f 100644
--- a/utils/auto_shutdown.c
+++ b/utils/auto_shutdown.c
@@ -28,7 +28,11 @@
 	printf("[Auto Shutdown][%s] " fmt, __func__, ##args)
 
 /*timer*/
-#define POWER_OFF_TIME_SEC   (45*60)    //45min
+#define POWER_OFF_TIME_DEFAULT           (45)                        //45min
+#define POWER_OFF_TIME_MIN               (5)                         //5min
+#define POWER_OFF_TIME_MAX               (90)                        //90min
+#define MIN_TO_SEC                       (60)                        //60s
+#define POWER_OFF_TIME_TO_SEC_DEFAULT    (POWER_OFF_TIME_DEFAULT * MIN_TO_SEC)
 
 /*usb*/
 #define UEVENT_BUFFER_SIZE 2048
@@ -75,6 +79,7 @@
 
 static int usb_state = USB_CONNECT;
 static int bt_state = HFP_STATE_DISCONNECT;
+static int timing_time_sec = POWER_OFF_TIME_TO_SEC_DEFAULT;
 
 static int stop_timer(void);
 static int check_to_start_timer(void);
@@ -404,15 +409,37 @@
 {
 	if (usb_state == USB_DISCONNECT
 		&& bt_state == HFP_STATE_DISCONNECT)
-		start_timer(POWER_OFF_TIME_SEC);
+		start_timer(timing_time_sec);
 	return 0;
 }
 
-int main(void)
+int main(int argc, char **argv)
 {
 	int usb_fd, key_fd;
+	int timing_time_min;
 	pthread_t bt_thread_id;
 	struct pollfd pollfds[2];
+	const char *cmd_usage = {
+		"Usage:\n"
+		"\t Automatic shutdown when idle \n"
+		"\t auto_shutdown <Timing time> \n"
+		"\t <Timing time>: 5 ~ 90\n"
+		"\t MIN:5min  MAX:90min  Default:45min\n"
+	};
+
+	if (argc != 2) {
+		printf("%s", cmd_usage);
+		return -1;
+	}
+
+	if ((timing_time_min = atoi(argv[1])) != 0) {
+		if (timing_time_min < POWER_OFF_TIME_MIN || timing_time_min > POWER_OFF_TIME_MAX)
+			timing_time_min = POWER_OFF_TIME_DEFAULT;
+	} else {
+		timing_time_min = POWER_OFF_TIME_DEFAULT;
+	}
+	INFO("Timing time: %d min\n", timing_time_min);
+	timing_time_sec = timing_time_min * MIN_TO_SEC;
 
 	memset(pollfds, 0, sizeof(pollfds));
 	/*usb*/