
This series converts the exynos LCD driver to work with driver model. Only the eDP display is converted - the MIPI display is left mostly alone as I do not have a device to test with.
The conversion involves some refactoring to simplify the code, reduce the amount of global/static data and allow boards to be built without LCD support.
The series is tested with snow, spring, pit and pi. It disables LCD on other exynos boards so that they will still build with these changes. Further work will be needed (by someone with a board) to convert the others. I am not sure when this series can be applied.
The series also brings in device tree features from Linux v4.4. It would be useful to do a full sync with the kernel on these files, but this is really a job for the Samsung maintainer :-)
The series is available at u-boot-dm/rkg-working.
Changes in v2: - Rebase to master - Rebase to master
Simon Glass (25): exynos: video: Move driver files into their own directory exynos: video: Drop dead code exynos: video: Remove use of vidinfo_t typedef exynos: video: Drop the static lcd_base_addr variable exynos: video: Drop static variables in exynos_fimd.c exynos: video: Drop static variables in exynos_fb.c exynos: video: Drop static variables in exynos_dp_lowlevel.c exynos: video: Move dsim_config_dt into a function exynos: video: Move struct exynos_platform_mipi_dsim into vidinfo exynos: video: Move mipi_lcd_device_dt into a function exynos: video: Combine LCD driver into one file exynos: pwm: Add a driver for the exynos5 PWM video: Add an enum for active low/high exynos: dts: Add pwm device tree node exynos: Allow tizen to be built without an LCD exynos: Allow CONFIG_MISC_COMMON to be build without an LCD exynos: Disable LCD display for boards we can't convert dts: Add clock and regulator binding files for max77802 exynos: Allow PWM0 pinmux to be set up exynos: Simplify calling of exynos_dp_phy_ctrl() exynos: dts: Add display-related device tree fragments exynos: video: Rename edp_device_info to exynos_dp_priv exynos: video: Rename variables for driver model exynos: video: Convert several boards to driver model for video exynos: video: Drop old unused code
arch/arm/cpu/armv7/s5p-common/timer.c | 3 + arch/arm/dts/exynos5.dtsi | 3 +- arch/arm/dts/exynos5250-snow.dts | 44 ++ arch/arm/dts/exynos5250-spring.dts | 53 ++ arch/arm/dts/exynos5250.dtsi | 7 + arch/arm/dts/exynos5420-peach-pit.dts | 55 ++ arch/arm/dts/exynos54xx.dtsi | 11 +- arch/arm/dts/exynos5800-peach-pi.dts | 40 ++ arch/arm/mach-exynos/include/mach/cpu.h | 2 - arch/arm/mach-exynos/include/mach/dp_info.h | 5 +- arch/arm/mach-exynos/include/mach/mipi_dsim.h | 10 +- arch/arm/mach-exynos/include/mach/power.h | 2 +- arch/arm/mach-exynos/pinmux.c | 6 + arch/arm/mach-exynos/power.c | 2 +- board/samsung/common/board.c | 15 - board/samsung/common/exynos5-dt.c | 158 ----- board/samsung/common/misc.c | 10 + board/samsung/trats/trats.c | 2 + board/samsung/universal_c210/universal.c | 2 + configs/peach-pi_defconfig | 4 + configs/peach-pit_defconfig | 4 + configs/snow_defconfig | 4 + configs/spring_defconfig | 4 + drivers/pwm/Kconfig | 9 + drivers/pwm/Makefile | 1 + drivers/pwm/exynos_pwm.c | 120 ++++ drivers/video/Makefile | 6 +- drivers/video/exynos/Makefile | 12 + drivers/video/{ => exynos}/exynos_dp.c | 599 ++++++++++------- drivers/video/{ => exynos}/exynos_dp_lowlevel.c | 268 ++++---- drivers/video/exynos/exynos_dp_lowlevel.h | 89 +++ drivers/video/exynos/exynos_fb.c | 720 +++++++++++++++++++++ drivers/video/{ => exynos}/exynos_mipi_dsi.c | 71 +- .../video/{ => exynos}/exynos_mipi_dsi_common.c | 6 +- .../video/{ => exynos}/exynos_mipi_dsi_common.h | 0 .../video/{ => exynos}/exynos_mipi_dsi_lowlevel.c | 0 .../video/{ => exynos}/exynos_mipi_dsi_lowlevel.h | 0 drivers/video/{ => exynos}/exynos_pwm_bl.c | 0 drivers/video/exynos_dp_lowlevel.h | 68 -- drivers/video/exynos_fb.c | 330 ---------- drivers/video/exynos_fb.h | 41 -- drivers/video/exynos_fimd.c | 409 ------------ drivers/video/s6e8ax0.c | 4 +- drivers/video/simple_panel.c | 2 + include/configs/exynos5-common.h | 1 - include/configs/exynos5-dt-common.h | 5 +- include/configs/s5pc210_universal.h | 3 - include/configs/smdk5250.h | 3 + include/configs/smdk5420.h | 4 + include/configs/trats.h | 4 - include/configs/trats2.h | 4 - include/dt-bindings/clock/maxim,max77802.h | 22 + include/dt-bindings/regulator/maxim,max77802.h | 18 + include/exynos_lcd.h | 4 +- include/libtizen.h | 2 + include/video.h | 5 + lib/tizen/tizen.c | 2 + 57 files changed, 1804 insertions(+), 1474 deletions(-) create mode 100644 drivers/pwm/exynos_pwm.c create mode 100644 drivers/video/exynos/Makefile rename drivers/video/{ => exynos}/exynos_dp.c (50%) rename drivers/video/{ => exynos}/exynos_dp_lowlevel.c (77%) create mode 100644 drivers/video/exynos/exynos_dp_lowlevel.h create mode 100644 drivers/video/exynos/exynos_fb.c rename drivers/video/{ => exynos}/exynos_mipi_dsi.c (80%) rename drivers/video/{ => exynos}/exynos_mipi_dsi_common.c (99%) rename drivers/video/{ => exynos}/exynos_mipi_dsi_common.h (100%) rename drivers/video/{ => exynos}/exynos_mipi_dsi_lowlevel.c (100%) rename drivers/video/{ => exynos}/exynos_mipi_dsi_lowlevel.h (100%) rename drivers/video/{ => exynos}/exynos_pwm_bl.c (100%) delete mode 100644 drivers/video/exynos_dp_lowlevel.h delete mode 100644 drivers/video/exynos_fb.c delete mode 100644 drivers/video/exynos_fb.h delete mode 100644 drivers/video/exynos_fimd.c create mode 100644 include/dt-bindings/clock/maxim,max77802.h create mode 100644 include/dt-bindings/regulator/maxim,max77802.h