diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2019-05-14 13:45:03 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2019-05-14 13:45:03 -0400 |
| commit | e0654264c4806dc436b291294a0fbf9be7571ab6 (patch) | |
| tree | 62988a8b9bed18fb5c60335f3c7cc8be2560f055 /drivers | |
| parent | ebcf5bb28241fe3ddc9e786e3816848a10f688b8 (diff) | |
| parent | 8fbce8efe15cd2ca7a4947bc814f890dbe4e43d7 (diff) | |
Merge tag 'backlight-next-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight
Pull backlight updates from Lee Jones:
"Fix-ups:
- Remove unused BACKLIGHT_LCD_SUPPORT symbol
- Remove unused BACKLIGHT_CLASS_DEVICE dependencies
- Add DT support to lm3630a_bl
Bug Fixes:
- Fix error path issues in lm3630a_bl"
* tag 'backlight-next-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight:
backlight: lm3630a: Add firmware node support
dt-bindings: backlight: Add lm3630a bindings
backlight: lm3630a: Return 0 on success in update_status functions
video: lcd: Remove useless BACKLIGHT_CLASS_DEVICE dependencies
video: backlight: Remove useless BACKLIGHT_LCD_SUPPORT kernel symbol
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/gpu/drm/Kconfig | 2 | ||||
| -rw-r--r-- | drivers/gpu/drm/bridge/Kconfig | 1 | ||||
| -rw-r--r-- | drivers/gpu/drm/fsl-dcu/Kconfig | 1 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/Kconfig | 1 | ||||
| -rw-r--r-- | drivers/gpu/drm/nouveau/Kconfig | 2 | ||||
| -rw-r--r-- | drivers/gpu/drm/shmobile/Kconfig | 1 | ||||
| -rw-r--r-- | drivers/gpu/drm/tilcdc/Kconfig | 1 | ||||
| -rw-r--r-- | drivers/staging/olpc_dcon/Kconfig | 1 | ||||
| -rw-r--r-- | drivers/usb/misc/Kconfig | 1 | ||||
| -rw-r--r-- | drivers/video/backlight/Kconfig | 35 | ||||
| -rw-r--r-- | drivers/video/backlight/lm3630a_bl.c | 153 | ||||
| -rw-r--r-- | drivers/video/fbdev/Kconfig | 5 |
12 files changed, 160 insertions, 44 deletions
diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig index 2267e84d5cb4..e360a4a131e1 100644 --- a/drivers/gpu/drm/Kconfig +++ b/drivers/gpu/drm/Kconfig | |||
| @@ -200,7 +200,6 @@ config DRM_RADEON | |||
| 200 | select POWER_SUPPLY | 200 | select POWER_SUPPLY |
| 201 | select HWMON | 201 | select HWMON |
| 202 | select BACKLIGHT_CLASS_DEVICE | 202 | select BACKLIGHT_CLASS_DEVICE |
| 203 | select BACKLIGHT_LCD_SUPPORT | ||
| 204 | select INTERVAL_TREE | 203 | select INTERVAL_TREE |
| 205 | help | 204 | help |
| 206 | Choose this option if you have an ATI Radeon graphics card. There | 205 | Choose this option if you have an ATI Radeon graphics card. There |
| @@ -221,7 +220,6 @@ config DRM_AMDGPU | |||
| 221 | select POWER_SUPPLY | 220 | select POWER_SUPPLY |
| 222 | select HWMON | 221 | select HWMON |
| 223 | select BACKLIGHT_CLASS_DEVICE | 222 | select BACKLIGHT_CLASS_DEVICE |
| 224 | select BACKLIGHT_LCD_SUPPORT | ||
| 225 | select INTERVAL_TREE | 223 | select INTERVAL_TREE |
| 226 | select CHASH | 224 | select CHASH |
| 227 | help | 225 | help |
diff --git a/drivers/gpu/drm/bridge/Kconfig b/drivers/gpu/drm/bridge/Kconfig index 8840f396a7b6..3dff9997f5e3 100644 --- a/drivers/gpu/drm/bridge/Kconfig +++ b/drivers/gpu/drm/bridge/Kconfig | |||
| @@ -76,7 +76,6 @@ config DRM_PARADE_PS8622 | |||
| 76 | depends on OF | 76 | depends on OF |
| 77 | select DRM_PANEL | 77 | select DRM_PANEL |
| 78 | select DRM_KMS_HELPER | 78 | select DRM_KMS_HELPER |
| 79 | select BACKLIGHT_LCD_SUPPORT | ||
| 80 | select BACKLIGHT_CLASS_DEVICE | 79 | select BACKLIGHT_CLASS_DEVICE |
| 81 | ---help--- | 80 | ---help--- |
| 82 | Parade eDP-LVDS bridge chip driver. | 81 | Parade eDP-LVDS bridge chip driver. |
diff --git a/drivers/gpu/drm/fsl-dcu/Kconfig b/drivers/gpu/drm/fsl-dcu/Kconfig index 14a72c4c496d..dc825883400d 100644 --- a/drivers/gpu/drm/fsl-dcu/Kconfig +++ b/drivers/gpu/drm/fsl-dcu/Kconfig | |||
| @@ -2,7 +2,6 @@ config DRM_FSL_DCU | |||
| 2 | tristate "DRM Support for Freescale DCU" | 2 | tristate "DRM Support for Freescale DCU" |
| 3 | depends on DRM && OF && ARM && COMMON_CLK | 3 | depends on DRM && OF && ARM && COMMON_CLK |
| 4 | select BACKLIGHT_CLASS_DEVICE | 4 | select BACKLIGHT_CLASS_DEVICE |
| 5 | select BACKLIGHT_LCD_SUPPORT | ||
| 6 | select DRM_KMS_HELPER | 5 | select DRM_KMS_HELPER |
| 7 | select DRM_KMS_CMA_HELPER | 6 | select DRM_KMS_CMA_HELPER |
| 8 | select DRM_PANEL | 7 | select DRM_PANEL |
diff --git a/drivers/gpu/drm/i915/Kconfig b/drivers/gpu/drm/i915/Kconfig index 148be8e1a090..3d5f1cb6a76c 100644 --- a/drivers/gpu/drm/i915/Kconfig +++ b/drivers/gpu/drm/i915/Kconfig | |||
| @@ -15,7 +15,6 @@ config DRM_I915 | |||
| 15 | select IRQ_WORK | 15 | select IRQ_WORK |
| 16 | # i915 depends on ACPI_VIDEO when ACPI is enabled | 16 | # i915 depends on ACPI_VIDEO when ACPI is enabled |
| 17 | # but for select to work, need to select ACPI_VIDEO's dependencies, ick | 17 | # but for select to work, need to select ACPI_VIDEO's dependencies, ick |
| 18 | select BACKLIGHT_LCD_SUPPORT if ACPI | ||
| 19 | select BACKLIGHT_CLASS_DEVICE if ACPI | 18 | select BACKLIGHT_CLASS_DEVICE if ACPI |
| 20 | select INPUT if ACPI | 19 | select INPUT if ACPI |
| 21 | select ACPI_VIDEO if ACPI | 20 | select ACPI_VIDEO if ACPI |
diff --git a/drivers/gpu/drm/nouveau/Kconfig b/drivers/gpu/drm/nouveau/Kconfig index 553c7da5e8e0..1f1395148ff0 100644 --- a/drivers/gpu/drm/nouveau/Kconfig +++ b/drivers/gpu/drm/nouveau/Kconfig | |||
| @@ -5,14 +5,12 @@ config DRM_NOUVEAU | |||
| 5 | select DRM_KMS_HELPER | 5 | select DRM_KMS_HELPER |
| 6 | select DRM_TTM | 6 | select DRM_TTM |
| 7 | select BACKLIGHT_CLASS_DEVICE if DRM_NOUVEAU_BACKLIGHT | 7 | select BACKLIGHT_CLASS_DEVICE if DRM_NOUVEAU_BACKLIGHT |
| 8 | select BACKLIGHT_LCD_SUPPORT if DRM_NOUVEAU_BACKLIGHT | ||
| 9 | select ACPI_VIDEO if ACPI && X86 && BACKLIGHT_CLASS_DEVICE && INPUT | 8 | select ACPI_VIDEO if ACPI && X86 && BACKLIGHT_CLASS_DEVICE && INPUT |
| 10 | select X86_PLATFORM_DEVICES if ACPI && X86 | 9 | select X86_PLATFORM_DEVICES if ACPI && X86 |
| 11 | select ACPI_WMI if ACPI && X86 | 10 | select ACPI_WMI if ACPI && X86 |
| 12 | select MXM_WMI if ACPI && X86 | 11 | select MXM_WMI if ACPI && X86 |
| 13 | select POWER_SUPPLY | 12 | select POWER_SUPPLY |
| 14 | # Similar to i915, we need to select ACPI_VIDEO and it's dependencies | 13 | # Similar to i915, we need to select ACPI_VIDEO and it's dependencies |
| 15 | select BACKLIGHT_LCD_SUPPORT if ACPI && X86 | ||
| 16 | select BACKLIGHT_CLASS_DEVICE if ACPI && X86 | 14 | select BACKLIGHT_CLASS_DEVICE if ACPI && X86 |
| 17 | select INPUT if ACPI && X86 | 15 | select INPUT if ACPI && X86 |
| 18 | select THERMAL if ACPI && X86 | 16 | select THERMAL if ACPI && X86 |
diff --git a/drivers/gpu/drm/shmobile/Kconfig b/drivers/gpu/drm/shmobile/Kconfig index 61bbe8e8bcc5..e2a6c82c8252 100644 --- a/drivers/gpu/drm/shmobile/Kconfig +++ b/drivers/gpu/drm/shmobile/Kconfig | |||
| @@ -4,7 +4,6 @@ config DRM_SHMOBILE | |||
| 4 | depends on DRM && ARM | 4 | depends on DRM && ARM |
| 5 | depends on ARCH_SHMOBILE || COMPILE_TEST | 5 | depends on ARCH_SHMOBILE || COMPILE_TEST |
| 6 | select BACKLIGHT_CLASS_DEVICE | 6 | select BACKLIGHT_CLASS_DEVICE |
| 7 | select BACKLIGHT_LCD_SUPPORT | ||
| 8 | select DRM_KMS_HELPER | 7 | select DRM_KMS_HELPER |
| 9 | select DRM_KMS_CMA_HELPER | 8 | select DRM_KMS_CMA_HELPER |
| 10 | select DRM_GEM_CMA_HELPER | 9 | select DRM_GEM_CMA_HELPER |
diff --git a/drivers/gpu/drm/tilcdc/Kconfig b/drivers/gpu/drm/tilcdc/Kconfig index 52598049c096..cb7df2086aee 100644 --- a/drivers/gpu/drm/tilcdc/Kconfig +++ b/drivers/gpu/drm/tilcdc/Kconfig | |||
| @@ -8,7 +8,6 @@ config DRM_TILCDC | |||
| 8 | select DRM_PANEL_BRIDGE | 8 | select DRM_PANEL_BRIDGE |
| 9 | select VIDEOMODE_HELPERS | 9 | select VIDEOMODE_HELPERS |
| 10 | select BACKLIGHT_CLASS_DEVICE | 10 | select BACKLIGHT_CLASS_DEVICE |
| 11 | select BACKLIGHT_LCD_SUPPORT | ||
| 12 | help | 11 | help |
| 13 | Choose this option if you have an TI SoC with LCDC display | 12 | Choose this option if you have an TI SoC with LCDC display |
| 14 | controller, for example AM33xx in beagle-bone, DA8xx, or | 13 | controller, for example AM33xx in beagle-bone, DA8xx, or |
diff --git a/drivers/staging/olpc_dcon/Kconfig b/drivers/staging/olpc_dcon/Kconfig index 255e266c40e1..f5c716bb3413 100644 --- a/drivers/staging/olpc_dcon/Kconfig +++ b/drivers/staging/olpc_dcon/Kconfig | |||
| @@ -3,7 +3,6 @@ config FB_OLPC_DCON | |||
| 3 | tristate "One Laptop Per Child Display CONtroller support" | 3 | tristate "One Laptop Per Child Display CONtroller support" |
| 4 | depends on OLPC && FB | 4 | depends on OLPC && FB |
| 5 | depends on I2C | 5 | depends on I2C |
| 6 | depends on BACKLIGHT_LCD_SUPPORT | ||
| 7 | depends on (GPIO_CS5535 || GPIO_CS5535=n) | 6 | depends on (GPIO_CS5535 || GPIO_CS5535=n) |
| 8 | select BACKLIGHT_CLASS_DEVICE | 7 | select BACKLIGHT_CLASS_DEVICE |
| 9 | help | 8 | help |
diff --git a/drivers/usb/misc/Kconfig b/drivers/usb/misc/Kconfig index be04c117fe80..c97f270338bf 100644 --- a/drivers/usb/misc/Kconfig +++ b/drivers/usb/misc/Kconfig | |||
| @@ -142,7 +142,6 @@ config USB_FTDI_ELAN | |||
| 142 | 142 | ||
| 143 | config USB_APPLEDISPLAY | 143 | config USB_APPLEDISPLAY |
| 144 | tristate "Apple Cinema Display support" | 144 | tristate "Apple Cinema Display support" |
| 145 | select BACKLIGHT_LCD_SUPPORT | ||
| 146 | select BACKLIGHT_CLASS_DEVICE | 145 | select BACKLIGHT_CLASS_DEVICE |
| 147 | help | 146 | help |
| 148 | Say Y here if you want to control the backlight of Apple Cinema | 147 | Say Y here if you want to control the backlight of Apple Cinema |
diff --git a/drivers/video/backlight/Kconfig b/drivers/video/backlight/Kconfig index 71ee978c848f..3ed1d9084f94 100644 --- a/drivers/video/backlight/Kconfig +++ b/drivers/video/backlight/Kconfig | |||
| @@ -2,13 +2,7 @@ | |||
| 2 | # Backlight & LCD drivers configuration | 2 | # Backlight & LCD drivers configuration |
| 3 | # | 3 | # |
| 4 | 4 | ||
| 5 | menuconfig BACKLIGHT_LCD_SUPPORT | 5 | menu "Backlight & LCD device support" |
| 6 | bool "Backlight & LCD device support" | ||
| 7 | help | ||
| 8 | Enable this to be able to choose the drivers for controlling the | ||
| 9 | backlight and the LCD panel on some platforms, for example on PDAs. | ||
| 10 | |||
| 11 | if BACKLIGHT_LCD_SUPPORT | ||
| 12 | 6 | ||
| 13 | # | 7 | # |
| 14 | # LCD | 8 | # LCD |
| @@ -199,7 +193,6 @@ config BACKLIGHT_IPAQ_MICRO | |||
| 199 | 193 | ||
| 200 | config BACKLIGHT_LM3533 | 194 | config BACKLIGHT_LM3533 |
| 201 | tristate "Backlight Driver for LM3533" | 195 | tristate "Backlight Driver for LM3533" |
| 202 | depends on BACKLIGHT_CLASS_DEVICE | ||
| 203 | depends on MFD_LM3533 | 196 | depends on MFD_LM3533 |
| 204 | help | 197 | help |
| 205 | Say Y to enable the backlight driver for National Semiconductor / TI | 198 | Say Y to enable the backlight driver for National Semiconductor / TI |
| @@ -323,7 +316,7 @@ config BACKLIGHT_ADP5520 | |||
| 323 | 316 | ||
| 324 | config BACKLIGHT_ADP8860 | 317 | config BACKLIGHT_ADP8860 |
| 325 | tristate "Backlight Driver for ADP8860/ADP8861/ADP8863 using WLED" | 318 | tristate "Backlight Driver for ADP8860/ADP8861/ADP8863 using WLED" |
| 326 | depends on BACKLIGHT_CLASS_DEVICE && I2C | 319 | depends on I2C |
| 327 | select NEW_LEDS | 320 | select NEW_LEDS |
| 328 | select LEDS_CLASS | 321 | select LEDS_CLASS |
| 329 | help | 322 | help |
| @@ -335,7 +328,7 @@ config BACKLIGHT_ADP8860 | |||
| 335 | 328 | ||
| 336 | config BACKLIGHT_ADP8870 | 329 | config BACKLIGHT_ADP8870 |
| 337 | tristate "Backlight Driver for ADP8870 using WLED" | 330 | tristate "Backlight Driver for ADP8870 using WLED" |
| 338 | depends on BACKLIGHT_CLASS_DEVICE && I2C | 331 | depends on I2C |
| 339 | select NEW_LEDS | 332 | select NEW_LEDS |
| 340 | select LEDS_CLASS | 333 | select LEDS_CLASS |
| 341 | help | 334 | help |
| @@ -353,28 +346,28 @@ config BACKLIGHT_88PM860X | |||
| 353 | 346 | ||
| 354 | config BACKLIGHT_PCF50633 | 347 | config BACKLIGHT_PCF50633 |
| 355 | tristate "Backlight driver for NXP PCF50633 MFD" | 348 | tristate "Backlight driver for NXP PCF50633 MFD" |
| 356 | depends on BACKLIGHT_CLASS_DEVICE && MFD_PCF50633 | 349 | depends on MFD_PCF50633 |
| 357 | help | 350 | help |
| 358 | If you have a backlight driven by a NXP PCF50633 MFD, say Y here to | 351 | If you have a backlight driven by a NXP PCF50633 MFD, say Y here to |
| 359 | enable its driver. | 352 | enable its driver. |
| 360 | 353 | ||
| 361 | config BACKLIGHT_AAT2870 | 354 | config BACKLIGHT_AAT2870 |
| 362 | tristate "AnalogicTech AAT2870 Backlight" | 355 | tristate "AnalogicTech AAT2870 Backlight" |
| 363 | depends on BACKLIGHT_CLASS_DEVICE && MFD_AAT2870_CORE | 356 | depends on MFD_AAT2870_CORE |
| 364 | help | 357 | help |
| 365 | If you have a AnalogicTech AAT2870 say Y to enable the | 358 | If you have a AnalogicTech AAT2870 say Y to enable the |
| 366 | backlight driver. | 359 | backlight driver. |
| 367 | 360 | ||
| 368 | config BACKLIGHT_LM3630A | 361 | config BACKLIGHT_LM3630A |
| 369 | tristate "Backlight Driver for LM3630A" | 362 | tristate "Backlight Driver for LM3630A" |
| 370 | depends on BACKLIGHT_CLASS_DEVICE && I2C && PWM | 363 | depends on I2C && PWM |
| 371 | select REGMAP_I2C | 364 | select REGMAP_I2C |
| 372 | help | 365 | help |
| 373 | This supports TI LM3630A Backlight Driver | 366 | This supports TI LM3630A Backlight Driver |
| 374 | 367 | ||
| 375 | config BACKLIGHT_LM3639 | 368 | config BACKLIGHT_LM3639 |
| 376 | tristate "Backlight Driver for LM3639" | 369 | tristate "Backlight Driver for LM3639" |
| 377 | depends on BACKLIGHT_CLASS_DEVICE && I2C | 370 | depends on I2C |
| 378 | select REGMAP_I2C | 371 | select REGMAP_I2C |
| 379 | select NEW_LEDS | 372 | select NEW_LEDS |
| 380 | select LEDS_CLASS | 373 | select LEDS_CLASS |
| @@ -383,20 +376,20 @@ config BACKLIGHT_LM3639 | |||
| 383 | 376 | ||
| 384 | config BACKLIGHT_LP855X | 377 | config BACKLIGHT_LP855X |
| 385 | tristate "Backlight driver for TI LP855X" | 378 | tristate "Backlight driver for TI LP855X" |
| 386 | depends on BACKLIGHT_CLASS_DEVICE && I2C && PWM | 379 | depends on I2C && PWM |
| 387 | help | 380 | help |
| 388 | This supports TI LP8550, LP8551, LP8552, LP8553, LP8555, LP8556 and | 381 | This supports TI LP8550, LP8551, LP8552, LP8553, LP8555, LP8556 and |
| 389 | LP8557 backlight driver. | 382 | LP8557 backlight driver. |
| 390 | 383 | ||
| 391 | config BACKLIGHT_LP8788 | 384 | config BACKLIGHT_LP8788 |
| 392 | tristate "Backlight driver for TI LP8788 MFD" | 385 | tristate "Backlight driver for TI LP8788 MFD" |
| 393 | depends on BACKLIGHT_CLASS_DEVICE && MFD_LP8788 && PWM | 386 | depends on MFD_LP8788 && PWM |
| 394 | help | 387 | help |
| 395 | This supports TI LP8788 backlight driver. | 388 | This supports TI LP8788 backlight driver. |
| 396 | 389 | ||
| 397 | config BACKLIGHT_OT200 | 390 | config BACKLIGHT_OT200 |
| 398 | tristate "Backlight driver for ot200 visualisation device" | 391 | tristate "Backlight driver for ot200 visualisation device" |
| 399 | depends on BACKLIGHT_CLASS_DEVICE && CS5535_MFGPT && GPIO_CS5535 | 392 | depends on CS5535_MFGPT && GPIO_CS5535 |
| 400 | help | 393 | help |
| 401 | To compile this driver as a module, choose M here: the module will be | 394 | To compile this driver as a module, choose M here: the module will be |
| 402 | called ot200_bl. | 395 | called ot200_bl. |
| @@ -410,7 +403,7 @@ config BACKLIGHT_PANDORA | |||
| 410 | 403 | ||
| 411 | config BACKLIGHT_SKY81452 | 404 | config BACKLIGHT_SKY81452 |
| 412 | tristate "Backlight driver for SKY81452" | 405 | tristate "Backlight driver for SKY81452" |
| 413 | depends on BACKLIGHT_CLASS_DEVICE && MFD_SKY81452 | 406 | depends on MFD_SKY81452 |
| 414 | help | 407 | help |
| 415 | If you have a Skyworks SKY81452, say Y to enable the | 408 | If you have a Skyworks SKY81452, say Y to enable the |
| 416 | backlight driver. | 409 | backlight driver. |
| @@ -420,14 +413,14 @@ config BACKLIGHT_SKY81452 | |||
| 420 | 413 | ||
| 421 | config BACKLIGHT_TPS65217 | 414 | config BACKLIGHT_TPS65217 |
| 422 | tristate "TPS65217 Backlight" | 415 | tristate "TPS65217 Backlight" |
| 423 | depends on BACKLIGHT_CLASS_DEVICE && MFD_TPS65217 | 416 | depends on MFD_TPS65217 |
| 424 | help | 417 | help |
| 425 | If you have a Texas Instruments TPS65217 say Y to enable the | 418 | If you have a Texas Instruments TPS65217 say Y to enable the |
| 426 | backlight driver. | 419 | backlight driver. |
| 427 | 420 | ||
| 428 | config BACKLIGHT_AS3711 | 421 | config BACKLIGHT_AS3711 |
| 429 | tristate "AS3711 Backlight" | 422 | tristate "AS3711 Backlight" |
| 430 | depends on BACKLIGHT_CLASS_DEVICE && MFD_AS3711 | 423 | depends on MFD_AS3711 |
| 431 | help | 424 | help |
| 432 | If you have an Austrian Microsystems AS3711 say Y to enable the | 425 | If you have an Austrian Microsystems AS3711 say Y to enable the |
| 433 | backlight driver. | 426 | backlight driver. |
| @@ -466,4 +459,4 @@ config BACKLIGHT_RAVE_SP | |||
| 466 | 459 | ||
| 467 | endif # BACKLIGHT_CLASS_DEVICE | 460 | endif # BACKLIGHT_CLASS_DEVICE |
| 468 | 461 | ||
| 469 | endif # BACKLIGHT_LCD_SUPPORT | 462 | endmenu |
diff --git a/drivers/video/backlight/lm3630a_bl.c b/drivers/video/backlight/lm3630a_bl.c index 2030a6b77a09..75d996490cf0 100644 --- a/drivers/video/backlight/lm3630a_bl.c +++ b/drivers/video/backlight/lm3630a_bl.c | |||
| @@ -35,6 +35,14 @@ | |||
| 35 | #define REG_MAX 0x50 | 35 | #define REG_MAX 0x50 |
| 36 | 36 | ||
| 37 | #define INT_DEBOUNCE_MSEC 10 | 37 | #define INT_DEBOUNCE_MSEC 10 |
| 38 | |||
| 39 | #define LM3630A_BANK_0 0 | ||
| 40 | #define LM3630A_BANK_1 1 | ||
| 41 | |||
| 42 | #define LM3630A_NUM_SINKS 2 | ||
| 43 | #define LM3630A_SINK_0 0 | ||
| 44 | #define LM3630A_SINK_1 1 | ||
| 45 | |||
| 38 | struct lm3630a_chip { | 46 | struct lm3630a_chip { |
| 39 | struct device *dev; | 47 | struct device *dev; |
| 40 | struct delayed_work work; | 48 | struct delayed_work work; |
| @@ -201,7 +209,7 @@ static int lm3630a_bank_a_update_status(struct backlight_device *bl) | |||
| 201 | LM3630A_LEDA_ENABLE, LM3630A_LEDA_ENABLE); | 209 | LM3630A_LEDA_ENABLE, LM3630A_LEDA_ENABLE); |
| 202 | if (ret < 0) | 210 | if (ret < 0) |
| 203 | goto out_i2c_err; | 211 | goto out_i2c_err; |
| 204 | return bl->props.brightness; | 212 | return 0; |
| 205 | 213 | ||
| 206 | out_i2c_err: | 214 | out_i2c_err: |
| 207 | dev_err(pchip->dev, "i2c failed to access\n"); | 215 | dev_err(pchip->dev, "i2c failed to access\n"); |
| @@ -278,7 +286,7 @@ static int lm3630a_bank_b_update_status(struct backlight_device *bl) | |||
| 278 | LM3630A_LEDB_ENABLE, LM3630A_LEDB_ENABLE); | 286 | LM3630A_LEDB_ENABLE, LM3630A_LEDB_ENABLE); |
| 279 | if (ret < 0) | 287 | if (ret < 0) |
| 280 | goto out_i2c_err; | 288 | goto out_i2c_err; |
| 281 | return bl->props.brightness; | 289 | return 0; |
| 282 | 290 | ||
| 283 | out_i2c_err: | 291 | out_i2c_err: |
| 284 | dev_err(pchip->dev, "i2c failed to access REG_CTRL\n"); | 292 | dev_err(pchip->dev, "i2c failed to access REG_CTRL\n"); |
| @@ -329,15 +337,17 @@ static const struct backlight_ops lm3630a_bank_b_ops = { | |||
| 329 | 337 | ||
| 330 | static int lm3630a_backlight_register(struct lm3630a_chip *pchip) | 338 | static int lm3630a_backlight_register(struct lm3630a_chip *pchip) |
| 331 | { | 339 | { |
| 332 | struct backlight_properties props; | ||
| 333 | struct lm3630a_platform_data *pdata = pchip->pdata; | 340 | struct lm3630a_platform_data *pdata = pchip->pdata; |
| 341 | struct backlight_properties props; | ||
| 342 | const char *label; | ||
| 334 | 343 | ||
| 335 | props.type = BACKLIGHT_RAW; | 344 | props.type = BACKLIGHT_RAW; |
| 336 | if (pdata->leda_ctrl != LM3630A_LEDA_DISABLE) { | 345 | if (pdata->leda_ctrl != LM3630A_LEDA_DISABLE) { |
| 337 | props.brightness = pdata->leda_init_brt; | 346 | props.brightness = pdata->leda_init_brt; |
| 338 | props.max_brightness = pdata->leda_max_brt; | 347 | props.max_brightness = pdata->leda_max_brt; |
| 348 | label = pdata->leda_label ? pdata->leda_label : "lm3630a_leda"; | ||
| 339 | pchip->bleda = | 349 | pchip->bleda = |
| 340 | devm_backlight_device_register(pchip->dev, "lm3630a_leda", | 350 | devm_backlight_device_register(pchip->dev, label, |
| 341 | pchip->dev, pchip, | 351 | pchip->dev, pchip, |
| 342 | &lm3630a_bank_a_ops, &props); | 352 | &lm3630a_bank_a_ops, &props); |
| 343 | if (IS_ERR(pchip->bleda)) | 353 | if (IS_ERR(pchip->bleda)) |
| @@ -348,8 +358,9 @@ static int lm3630a_backlight_register(struct lm3630a_chip *pchip) | |||
| 348 | (pdata->ledb_ctrl != LM3630A_LEDB_ON_A)) { | 358 | (pdata->ledb_ctrl != LM3630A_LEDB_ON_A)) { |
| 349 | props.brightness = pdata->ledb_init_brt; | 359 | props.brightness = pdata->ledb_init_brt; |
| 350 | props.max_brightness = pdata->ledb_max_brt; | 360 | props.max_brightness = pdata->ledb_max_brt; |
| 361 | label = pdata->ledb_label ? pdata->ledb_label : "lm3630a_ledb"; | ||
| 351 | pchip->bledb = | 362 | pchip->bledb = |
| 352 | devm_backlight_device_register(pchip->dev, "lm3630a_ledb", | 363 | devm_backlight_device_register(pchip->dev, label, |
| 353 | pchip->dev, pchip, | 364 | pchip->dev, pchip, |
| 354 | &lm3630a_bank_b_ops, &props); | 365 | &lm3630a_bank_b_ops, &props); |
| 355 | if (IS_ERR(pchip->bledb)) | 366 | if (IS_ERR(pchip->bledb)) |
| @@ -364,6 +375,123 @@ static const struct regmap_config lm3630a_regmap = { | |||
| 364 | .max_register = REG_MAX, | 375 | .max_register = REG_MAX, |
| 365 | }; | 376 | }; |
| 366 | 377 | ||
| 378 | static int lm3630a_parse_led_sources(struct fwnode_handle *node, | ||
| 379 | int default_led_sources) | ||
| 380 | { | ||
| 381 | u32 sources[LM3630A_NUM_SINKS]; | ||
| 382 | int ret, num_sources, i; | ||
| 383 | |||
| 384 | num_sources = fwnode_property_read_u32_array(node, "led-sources", NULL, | ||
| 385 | 0); | ||
| 386 | if (num_sources < 0) | ||
| 387 | return default_led_sources; | ||
| 388 | else if (num_sources > ARRAY_SIZE(sources)) | ||
| 389 | return -EINVAL; | ||
| 390 | |||
| 391 | ret = fwnode_property_read_u32_array(node, "led-sources", sources, | ||
| 392 | num_sources); | ||
| 393 | if (ret) | ||
| 394 | return ret; | ||
| 395 | |||
| 396 | for (i = 0; i < num_sources; i++) { | ||
| 397 | if (sources[i] < LM3630A_SINK_0 || sources[i] > LM3630A_SINK_1) | ||
| 398 | return -EINVAL; | ||
| 399 | |||
| 400 | ret |= BIT(sources[i]); | ||
| 401 | } | ||
| 402 | |||
| 403 | return ret; | ||
| 404 | } | ||
| 405 | |||
| 406 | static int lm3630a_parse_bank(struct lm3630a_platform_data *pdata, | ||
| 407 | struct fwnode_handle *node, int *seen_led_sources) | ||
| 408 | { | ||
| 409 | int led_sources, ret; | ||
| 410 | const char *label; | ||
| 411 | u32 bank, val; | ||
| 412 | bool linear; | ||
| 413 | |||
| 414 | ret = fwnode_property_read_u32(node, "reg", &bank); | ||
| 415 | if (ret) | ||
| 416 | return ret; | ||
| 417 | |||
| 418 | if (bank < LM3630A_BANK_0 || bank > LM3630A_BANK_1) | ||
| 419 | return -EINVAL; | ||
| 420 | |||
| 421 | led_sources = lm3630a_parse_led_sources(node, BIT(bank)); | ||
| 422 | if (led_sources < 0) | ||
| 423 | return led_sources; | ||
| 424 | |||
| 425 | if (*seen_led_sources & led_sources) | ||
| 426 | return -EINVAL; | ||
| 427 | |||
| 428 | *seen_led_sources |= led_sources; | ||
| 429 | |||
| 430 | linear = fwnode_property_read_bool(node, | ||
| 431 | "ti,linear-mapping-mode"); | ||
| 432 | if (bank) { | ||
| 433 | if (led_sources & BIT(LM3630A_SINK_0) || | ||
| 434 | !(led_sources & BIT(LM3630A_SINK_1))) | ||
| 435 | return -EINVAL; | ||
| 436 | |||
| 437 | pdata->ledb_ctrl = linear ? | ||
| 438 | LM3630A_LEDB_ENABLE_LINEAR : | ||
| 439 | LM3630A_LEDB_ENABLE; | ||
| 440 | } else { | ||
| 441 | if (!(led_sources & BIT(LM3630A_SINK_0))) | ||
| 442 | return -EINVAL; | ||
| 443 | |||
| 444 | pdata->leda_ctrl = linear ? | ||
| 445 | LM3630A_LEDA_ENABLE_LINEAR : | ||
| 446 | LM3630A_LEDA_ENABLE; | ||
| 447 | |||
| 448 | if (led_sources & BIT(LM3630A_SINK_1)) | ||
| 449 | pdata->ledb_ctrl = LM3630A_LEDB_ON_A; | ||
| 450 | } | ||
| 451 | |||
| 452 | ret = fwnode_property_read_string(node, "label", &label); | ||
| 453 | if (!ret) { | ||
| 454 | if (bank) | ||
| 455 | pdata->ledb_label = label; | ||
| 456 | else | ||
| 457 | pdata->leda_label = label; | ||
| 458 | } | ||
| 459 | |||
| 460 | ret = fwnode_property_read_u32(node, "default-brightness", | ||
| 461 | &val); | ||
| 462 | if (!ret) { | ||
| 463 | if (bank) | ||
| 464 | pdata->ledb_init_brt = val; | ||
| 465 | else | ||
| 466 | pdata->leda_init_brt = val; | ||
| 467 | } | ||
| 468 | |||
| 469 | ret = fwnode_property_read_u32(node, "max-brightness", &val); | ||
| 470 | if (!ret) { | ||
| 471 | if (bank) | ||
| 472 | pdata->ledb_max_brt = val; | ||
| 473 | else | ||
| 474 | pdata->leda_max_brt = val; | ||
| 475 | } | ||
| 476 | |||
| 477 | return 0; | ||
| 478 | } | ||
| 479 | |||
| 480 | static int lm3630a_parse_node(struct lm3630a_chip *pchip, | ||
| 481 | struct lm3630a_platform_data *pdata) | ||
| 482 | { | ||
| 483 | int ret = -ENODEV, seen_led_sources = 0; | ||
| 484 | struct fwnode_handle *node; | ||
| 485 | |||
| 486 | device_for_each_child_node(pchip->dev, node) { | ||
| 487 | ret = lm3630a_parse_bank(pdata, node, &seen_led_sources); | ||
| 488 | if (ret) | ||
| 489 | return ret; | ||
| 490 | } | ||
| 491 | |||
| 492 | return ret; | ||
| 493 | } | ||
| 494 | |||
| 367 | static int lm3630a_probe(struct i2c_client *client, | 495 | static int lm3630a_probe(struct i2c_client *client, |
| 368 | const struct i2c_device_id *id) | 496 | const struct i2c_device_id *id) |
| 369 | { | 497 | { |
| @@ -396,13 +524,18 @@ static int lm3630a_probe(struct i2c_client *client, | |||
| 396 | GFP_KERNEL); | 524 | GFP_KERNEL); |
| 397 | if (pdata == NULL) | 525 | if (pdata == NULL) |
| 398 | return -ENOMEM; | 526 | return -ENOMEM; |
| 527 | |||
| 399 | /* default values */ | 528 | /* default values */ |
| 400 | pdata->leda_ctrl = LM3630A_LEDA_ENABLE; | ||
| 401 | pdata->ledb_ctrl = LM3630A_LEDB_ENABLE; | ||
| 402 | pdata->leda_max_brt = LM3630A_MAX_BRIGHTNESS; | 529 | pdata->leda_max_brt = LM3630A_MAX_BRIGHTNESS; |
| 403 | pdata->ledb_max_brt = LM3630A_MAX_BRIGHTNESS; | 530 | pdata->ledb_max_brt = LM3630A_MAX_BRIGHTNESS; |
| 404 | pdata->leda_init_brt = LM3630A_MAX_BRIGHTNESS; | 531 | pdata->leda_init_brt = LM3630A_MAX_BRIGHTNESS; |
| 405 | pdata->ledb_init_brt = LM3630A_MAX_BRIGHTNESS; | 532 | pdata->ledb_init_brt = LM3630A_MAX_BRIGHTNESS; |
| 533 | |||
| 534 | rval = lm3630a_parse_node(pchip, pdata); | ||
| 535 | if (rval) { | ||
| 536 | dev_err(&client->dev, "fail : parse node\n"); | ||
| 537 | return rval; | ||
| 538 | } | ||
| 406 | } | 539 | } |
| 407 | pchip->pdata = pdata; | 540 | pchip->pdata = pdata; |
| 408 | 541 | ||
| @@ -470,11 +603,17 @@ static const struct i2c_device_id lm3630a_id[] = { | |||
| 470 | {} | 603 | {} |
| 471 | }; | 604 | }; |
| 472 | 605 | ||
| 606 | static const struct of_device_id lm3630a_match_table[] = { | ||
| 607 | { .compatible = "ti,lm3630a", }, | ||
| 608 | { }, | ||
| 609 | }; | ||
| 610 | |||
| 473 | MODULE_DEVICE_TABLE(i2c, lm3630a_id); | 611 | MODULE_DEVICE_TABLE(i2c, lm3630a_id); |
| 474 | 612 | ||
| 475 | static struct i2c_driver lm3630a_i2c_driver = { | 613 | static struct i2c_driver lm3630a_i2c_driver = { |
| 476 | .driver = { | 614 | .driver = { |
| 477 | .name = LM3630A_NAME, | 615 | .name = LM3630A_NAME, |
| 616 | .of_match_table = lm3630a_match_table, | ||
| 478 | }, | 617 | }, |
| 479 | .probe = lm3630a_probe, | 618 | .probe = lm3630a_probe, |
| 480 | .remove = lm3630a_remove, | 619 | .remove = lm3630a_remove, |
diff --git a/drivers/video/fbdev/Kconfig b/drivers/video/fbdev/Kconfig index 47ecf9ad4d51..bf6b77b964f1 100644 --- a/drivers/video/fbdev/Kconfig +++ b/drivers/video/fbdev/Kconfig | |||
| @@ -186,7 +186,6 @@ config FB_MACMODES | |||
| 186 | config FB_BACKLIGHT | 186 | config FB_BACKLIGHT |
| 187 | tristate | 187 | tristate |
| 188 | depends on FB | 188 | depends on FB |
| 189 | select BACKLIGHT_LCD_SUPPORT | ||
| 190 | select BACKLIGHT_CLASS_DEVICE | 189 | select BACKLIGHT_CLASS_DEVICE |
| 191 | 190 | ||
| 192 | config FB_MODE_HELPERS | 191 | config FB_MODE_HELPERS |
| @@ -281,7 +280,6 @@ config FB_ARMCLCD | |||
| 281 | select FB_CFB_IMAGEBLIT | 280 | select FB_CFB_IMAGEBLIT |
| 282 | select FB_MODE_HELPERS if OF | 281 | select FB_MODE_HELPERS if OF |
| 283 | select VIDEOMODE_HELPERS if OF | 282 | select VIDEOMODE_HELPERS if OF |
| 284 | select BACKLIGHT_LCD_SUPPORT if OF | ||
| 285 | select BACKLIGHT_CLASS_DEVICE if OF | 283 | select BACKLIGHT_CLASS_DEVICE if OF |
| 286 | help | 284 | help |
| 287 | This framebuffer device driver is for the ARM PrimeCell PL110 | 285 | This framebuffer device driver is for the ARM PrimeCell PL110 |
| @@ -307,7 +305,6 @@ config FB_ACORN | |||
| 307 | config FB_CLPS711X | 305 | config FB_CLPS711X |
| 308 | tristate "CLPS711X LCD support" | 306 | tristate "CLPS711X LCD support" |
| 309 | depends on FB && (ARCH_CLPS711X || COMPILE_TEST) | 307 | depends on FB && (ARCH_CLPS711X || COMPILE_TEST) |
| 310 | select BACKLIGHT_LCD_SUPPORT | ||
| 311 | select FB_MODE_HELPERS | 308 | select FB_MODE_HELPERS |
| 312 | select FB_SYS_FILLRECT | 309 | select FB_SYS_FILLRECT |
| 313 | select FB_SYS_COPYAREA | 310 | select FB_SYS_COPYAREA |
| @@ -335,7 +332,6 @@ config FB_SA1100 | |||
| 335 | config FB_IMX | 332 | config FB_IMX |
| 336 | tristate "Freescale i.MX1/21/25/27 LCD support" | 333 | tristate "Freescale i.MX1/21/25/27 LCD support" |
| 337 | depends on FB && ARCH_MXC | 334 | depends on FB && ARCH_MXC |
| 338 | select BACKLIGHT_LCD_SUPPORT | ||
| 339 | select LCD_CLASS_DEVICE | 335 | select LCD_CLASS_DEVICE |
| 340 | select FB_CFB_FILLRECT | 336 | select FB_CFB_FILLRECT |
| 341 | select FB_CFB_COPYAREA | 337 | select FB_CFB_COPYAREA |
| @@ -2184,7 +2180,6 @@ config FB_MX3 | |||
| 2184 | tristate "MX3 Framebuffer support" | 2180 | tristate "MX3 Framebuffer support" |
| 2185 | depends on FB && MX3_IPU | 2181 | depends on FB && MX3_IPU |
| 2186 | select BACKLIGHT_CLASS_DEVICE | 2182 | select BACKLIGHT_CLASS_DEVICE |
| 2187 | select BACKLIGHT_LCD_SUPPORT | ||
| 2188 | select FB_CFB_FILLRECT | 2183 | select FB_CFB_FILLRECT |
| 2189 | select FB_CFB_COPYAREA | 2184 | select FB_CFB_COPYAREA |
| 2190 | select FB_CFB_IMAGEBLIT | 2185 | select FB_CFB_IMAGEBLIT |
