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