hc
2023-02-13 e440ec23c5a540cdd3f7464e8779219be6fd3d95
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
// Copyright (c) 2019 Fuzhou Rockchip Electronics Co., Ltd
 
#define LOG_TAG "NPU_POWER"
#include <npu_powerctrl.h>
#include <iostream>
#include <unistd.h>
 
static void usage(void)
{
   printf("Usage:npu_powerctrl [-s] [-r] [-o] [-i] [-d]\n");
   printf("-s    npu enter sleep\n");
   printf("-r    wakup npu\n");
   printf("-o    power up or reset npu\n");
   printf("-i    gpio init\n");
   printf("-d    power down\n");
}
 
int main(int argc, char* argv[])
{
   int ch, ret = -1;
 
   while ((ch = getopt(argc, argv, "s::r::o::i::d::")) != -1) {
       switch (ch) {
           case 's':
               ret = npu_suspend();
               printf("suspend %d\n", ret);
               break;
           case 'r':
               ret = npu_resume();
               printf("resume %d\n", ret);
               break;
           case 'o':
               ret = 0;
               npu_reset();
               printf("powerup\n");
               break;
           case 'i':
               npu_power_gpio_init();
               ret = 0;
               printf("gpio init\n");
               break;
           case 'd':
               npu_poweroff();
               ret = 0;
               printf("powerdown\n");
               break;
           default:
               usage();
               break;
       }
       return ret;
   }
   usage();
 
   return ret;
}