Date: | 2012-03-06 14:06:12 (11 years 6 months ago) |
---|---|
Author: | Paul Cercueil |
Commit: | 38763adfadb6b3e5f68153b97b52a9a660b3f949 |
Message: | MIPS: JZ4740: add the 'rgb' attribute to /sys. The color lookup table of the ili9338 panel can now be changed at runtime. |
Files: |
drivers/video/jz4740_slcd_panels.c (3 diffs) |
Change Details
drivers/video/jz4740_slcd_panels.c | ||
---|---|---|
351 | 351 | module_param_array_named(rgb, default_slcd_rgb, uint, NULL, 0); |
352 | 352 | MODULE_PARM_DESC(rgb, "comma-separated list of three values representing the percentage of red, green and blue"); |
353 | 353 | |
354 | static ssize_t rgb_show(struct device *dev, struct device_attribute *attr, | |
355 | char *buf) | |
356 | { | |
357 | struct jzfb *jzfb = dev_get_drvdata(dev); | |
358 | return sprintf(buf, "%u,%u,%u\n", jzfb->rgb[0], | |
359 | jzfb->rgb[1], jzfb->rgb[2]); | |
360 | } | |
361 | ||
362 | static ssize_t rgb_store(struct device *dev, struct device_attribute *attr, | |
363 | const char *buf, size_t n) | |
364 | { | |
365 | struct jzfb *jzfb = dev_get_drvdata(dev); | |
366 | unsigned int rgb[3]; | |
367 | ||
368 | if (sscanf(buf, "%u,%u,%u", &rgb[0], &rgb[1], &rgb[2]) < 3) | |
369 | return -EINVAL; | |
370 | ||
371 | if (rgb[0] > 100 || rgb[1] > 100 || rgb[2] > 100) | |
372 | return -EINVAL; | |
373 | ||
374 | memcpy(jzfb->rgb, rgb, sizeof(rgb)); | |
375 | ili9338_set_color_table(jzfb); | |
376 | return n; | |
377 | } | |
378 | ||
379 | static DEVICE_ATTR(rgb, 0644, rgb_show, rgb_store); | |
380 | ||
354 | 381 | #define ILI9338_GPIO_CS_N JZ_GPIO_PORTB(17) /* Chip select */ |
355 | 382 | #define ILI9338_GPIO_RESET_N JZ_GPIO_PORTB(18) /* LCD reset */ |
356 | 383 | |
... | ... | |
467 | 494 | |
468 | 495 | memcpy(jzfb->rgb, default_slcd_rgb, sizeof(default_slcd_rgb)); |
469 | 496 | mdelay(100); |
470 | return 0; | |
497 | ||
498 | ret = device_create_file(dev, &dev_attr_rgb); | |
499 | if (!ret) | |
500 | return 0; | |
471 | 501 | |
472 | 502 | err_reset: |
473 | 503 | gpio_free(ILI9338_GPIO_CS_N); |
... | ... | |
478 | 508 | |
479 | 509 | static void ili9338_exit(struct jzfb *jzfb) |
480 | 510 | { |
511 | struct device *dev = &jzfb->pdev->dev; | |
512 | device_remove_file(dev, &dev_attr_rgb); | |
513 | ||
481 | 514 | gpio_free(ILI9338_GPIO_CS_N); |
482 | 515 | gpio_free(ILI9338_GPIO_RESET_N); |
483 | 516 | } |
Branches:
ben-wpan
ben-wpan-stefan
5396a9238205f20f811ea57898980d3ca82df0b6
jz-2.6.34
jz-2.6.34-rc5
jz-2.6.34-rc6
jz-2.6.34-rc7
jz-2.6.35
jz-2.6.36
jz-2.6.37
jz-2.6.38
jz-2.6.39
jz-3.0
jz-3.1
jz-3.11
jz-3.12
jz-3.13
jz-3.15
jz-3.16
jz-3.18-dt
jz-3.2
jz-3.3
jz-3.4
jz-3.5
jz-3.6
jz-3.6-rc2-pwm
jz-3.9
jz-3.9-clk
jz-3.9-rc8
jz47xx
jz47xx-2.6.38
master
Tags:
od-2011-09-04
od-2011-09-18
v2.6.34-rc5
v2.6.34-rc6
v2.6.34-rc7
v3.9