" -P val     enable or disable (val=1|0) the system clock PPS\n"
                " -s         set the ptp clock time from the system time\n"
                " -S         set the system time from the ptp clock time\n"
-               " -t val     shift the ptp clock time by 'val' seconds\n",
+               " -t val     shift the ptp clock time by 'val' seconds\n"
+               " -T val     set the ptp clock time to 'val' seconds\n",
                progname);
 }
 
        int perout = -1;
        int pin_index = -1, pin_func;
        int pps = -1;
+       int seconds = 0;
        int settime = 0;
 
        int64_t t1, t2, tp;
 
        progname = strrchr(argv[0], '/');
        progname = progname ? 1+progname : argv[0];
-       while (EOF != (c = getopt(argc, argv, "a:A:cd:e:f:ghi:k:lL:p:P:sSt:v"))) {
+       while (EOF != (c = getopt(argc, argv, "a:A:cd:e:f:ghi:k:lL:p:P:sSt:T:v"))) {
                switch (c) {
                case 'a':
                        oneshot = atoi(optarg);
                case 't':
                        adjtime = atoi(optarg);
                        break;
+               case 'T':
+                       settime = 3;
+                       seconds = atoi(optarg);
+                       break;
                case 'h':
                        usage(progname);
                        return 0;
                }
        }
 
+       if (settime == 3) {
+               ts.tv_sec = seconds;
+               ts.tv_nsec = 0;
+               if (clock_settime(clkid, &ts)) {
+                       perror("clock_settime");
+               } else {
+                       puts("set time okay");
+               }
+       }
+
        if (extts) {
                memset(&extts_request, 0, sizeof(extts_request));
                extts_request.index = index;