blob: bb847c1a0c825da5d45f8bdf55bfc07d1c3f77df [file] [log] [blame]
b.liud440f9f2025-04-18 10:44:31 +08001#include <stdlib.h>
2#include <stdio.h>
3#include <string.h>
4#include <errno.h>
5#include <lynq/lynq-gpio.h>
6
7static void printUsage(void)
8{
9 printf("-ds [direction] --lynq_gpio_direction_set\n");
10 printf("-vs [value] --lynq_gpio_value_set\n");
11 printf("-ps [pullsel] --lynq_gpio_pullsel_set\n");
12 printf("-vg --lynq_gpio_value_get\n");
13 printf("-pg --lynq_gpio_pullsel_get\n");
14 printf("-quit\n");
15 printf("Please input an cmd:");
16}
17
18
19
20
21int main(int argc,char** argv)
22{
23 int ret;
24 int gpio;
25 int direction;
26 int value;
27 int pullsel;
28 char cmd[16];
29 char *cmd2;
30 char *cmd1;
31
32 if(argc != 2)
33 {
34 printf("wrong input format, please inout lynq-irq-demo <gpio>\n");
35 return -1;
36 }
37 gpio = atoi(argv[1]);
38 printf("gpio is %d\n", gpio);
39 ret = lynq_gpio_init(gpio, 0, 0, 0);
40 if(ret != 0)
41 {
42 printf("lynq_gpio_init fail\n");
43 return -1;
44 }
45 else
46 {
47 printf("lynq_gpio_init success\n");
48 }
49
50 while(1)
51 {
52 printUsage();
53 memset(cmd,0,sizeof(cmd));
54 if(NULL == fgets(cmd, sizeof(cmd), stdin))
55 break;
56 printf("cmd:%s\n",cmd);
57 cmd1 = strtok(cmd, " ");
58 cmd2 = strtok(NULL, " ");
59 if(strcmp(cmd1,"-ds") == 0)
60 {
61 if(cmd2 == NULL)
62 {
63 printf("direction is NULL\n");
64 continue;
65 }
66 direction = atoi(cmd2);
67 ret = lynq_gpio_direction_set(gpio, direction);
68 if(ret != 0)
69 {
70 printf("lynq_gpio_direction_set fail\n");
71 }
72 else
73 {
74 printf("lynq_gpio_direction_set success\n");
75 }
76 }
77
78 else if(strcmp(cmd1,"-vs") == 0)
79 {
80 if(cmd2 == NULL)
81 {
82 printf("wake_state is NULL\n");
83 continue;
84 }
85 value = atoi(cmd2);
86 ret = lynq_gpio_value_set(gpio, value);
87 if(ret < 0)
88 {
89 printf("lynq_gpio_value_set fail\n");
90 }
91 else
92 {
93 printf("lynq_gpio_value_set success\n");
94 }
95 }
96
97 else if (strcmp(cmd1,"-ps") == 0)
98 {
99 if(cmd2 == NULL)
100 {
101 printf("pullsel is NULL\n");
102 continue;
103 }
104 pullsel = atoi(cmd2);
105 ret = lynq_gpio_pullsel_set(gpio, pullsel);
106 if(ret != 0)
107 {
108 printf("lynq_gpio_pullsel_set fail\n");
109 printf("ret=%d\n", ret);
110 }
111 else
112 {
113 printf("lynq_gpio_pullsel_set success\n");
114 }
115 }
116 else if (strcmp(cmd1,"-vg\n") == 0)
117 {
118 ret = lynq_gpio_value_get(gpio);
119 if(ret < 0)
120 {
121 printf("lynq_gpio_value_get fail\n");
122 printf("ret=%d\n", ret);
123 }
124 else
125 {
126 printf("lynq_gpio_value_get success\n");
127 printf("ret=%d\n", ret);
128 }
129 }
130 else if(strcmp(cmd1,"-pg\n") == 0)
131 {
132 ret = lynq_gpio_pullsel_get(gpio);
133 if(ret < 0)
134 {
135 printf("lynq_gpio_pullsel_get fail\n");
136 printf("ret=%d\n", ret);
137 }
138 else
139 {
140 printf("lynq_gpio_pullsel_get success\n");
141 printf("ret=%d\n", ret);
142 }
143 }
144 else if(strcmp(cmd1,"-quit\n") == 0)
145 {
146 break;
147 }
148 else
149 {
150 printf("wrong input format\n");
151 }
152
153
154 }
155
156
157 ret = lynq_gpio_deinit(gpio);
158 if(ret != 0)
159 {
160 printf("lynq_gpio_deinit fail\n");
161 printf("ret=%d\n", ret);
162 }
163 else
164 {
165 printf("lynq_gpio_deinit success\n");
166 }
167
168 return 0;
169
170}