+
+int
+PWM::get_period()
+{
+ FILE *period_f;
+ char bu[64];
+ char output[16];
+ sprintf(bu, "/sys/class/pwm/pwmchip%d/pwm%d/period", chipid, pin);
+
+ if((period_f = fopen(bu, "rb")) == NULL) {
+ fprintf(stderr, "Failed to open period for reading!\n");
+ return 0;
+ } else {
+ fgets(output, 16, period_f);
+ fclose(period_f);
+ return atoi(output);
+ }
+}
+
+int
+PWM::get_duty()
+{
+ if(duty_fp == NULL) {
+ setup_duty_fp();
+ }
+ char output[16];
+ fseek(duty_fp, SEEK_SET, 0);
+ fgets(output, 16, duty_fp);
+ fseek(duty_fp, SEEK_SET, 0);
+ return atoi(output);
+}