static void omap_pwm_led_power_on(struct omap_pwm_led *led) { if (led->powered) return; led->powered = 1; /* Select clock */ omap_dm_timer_enable(led->intensity_timer); omap_dm_timer_set_source(led->intensity_timer, OMAP_TIMER_SRC_32_KHZ); /* Turn voltage on */ if (led->pdata->set_power != NULL) led->pdata->set_power(led->pdata, 1); /* Enable PWM timers */ if (led->blink_timer != NULL) { omap_dm_timer_enable(led->blink_timer); omap_dm_timer_set_source(led->blink_timer, OMAP_TIMER_SRC_32_KHZ); omap_pwm_led_set_blink(led); } omap_dm_timer_write_counter(led->intensity_timer, 0xffffffff); omap_dm_timer_set_load(led->intensity_timer, 1, 0xffffff00); }
static void omap_pwm_led_power_on(struct omap_pwm_led *led) { pr_debug("%s%s: \n", PASS1,__func__); printk("!!!!!!!!!!%s the brightness is %d \n",__func__, led->brightness); if (led->powered){ printk("!!!!!!!!!!LED powered, returning \n"); return; } led->powered = 1; /* Select clock */ omap_dm_timer_enable(led->intensity_timer); omap_dm_timer_set_source(led->intensity_timer, OMAP_TIMER_SRC_SYS_CLK); omap_dm_timer_set_prescaler(led->intensity_timer, 0); /* Turn voltage on */ if (led->pdata->set_power != NULL) { printk("!!!!!!!!!!Turn voltage on \n"); led->pdata->set_power(led->pdata, 1); } /* Enable PWM timers */ if (led->blink_timer != NULL) { printk("!!!!!!!!!!Enable PWM timers \n"); omap_dm_timer_enable(led->blink_timer); omap_dm_timer_set_source(led->blink_timer, OMAP_TIMER_SRC_32_KHZ); omap_pwm_led_set_blink(led); } omap_dm_timer_set_load(led->intensity_timer, 1, 0xffffff00); }
static void omap_pwm_led_power_on(struct omap_pwm_led *led) { if (led->powered) return; led->powered = 1; pr_debug("%s: brightness: %i\n", __func__, led->brightness); /* Select clock */ omap_dm_timer_set_source(led->intensity_timer, OMAP_TIMER_SRC_SYS_CLK); /* Turn voltage on */ if (led->pdata->set_power != NULL) led->pdata->set_power(led->pdata, 1); /* explicitly enable the timer, saves some SAR later */ omap_dm_timer_enable(led->intensity_timer); /* Enable PWM timers */ if (led->blink_timer != NULL) { omap_dm_timer_set_source(led->blink_timer, OMAP_TIMER_SRC_32_KHZ); omap_pwm_led_set_blink(led); } }
static ssize_t omap_pwm_led_off_period_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t size) { pr_debug("%s%s: \n", PASS1,__func__); struct led_classdev *led_cdev = dev_get_drvdata(dev); struct omap_pwm_led *led = cdev_to_omap_pwm_led(led_cdev); int ret = -EINVAL; unsigned long val; char *after; size_t count; val = simple_strtoul(buf, &after, 10); count = after - buf; if (*after && isspace(*after)) count++; if (count == size) { led->off_period = val; omap_pwm_led_set_blink(led); ret = count; } return ret; }
static ssize_t omap_pwm_led_off_period_store(struct class_device *cdev, const char *buf, size_t size) { struct led_classdev *led_cdev = class_get_devdata(cdev); struct omap_pwm_led *led = cdev_to_omap_pwm_led(led_cdev); int ret = -EINVAL; unsigned long val; char *after; size_t count; val = simple_strtoul(buf, &after, 10); count = after - buf; if (*after && isspace(*after)) count++; if (count == size) { led->off_period = val; omap_pwm_led_set_blink(led); ret = count; } return ret; }