aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/omap/patches-3.18
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/omap/patches-3.18')
-rw-r--r--target/linux/omap/patches-3.18/0334-video-da8xx-fb-adding-dt-support.patch202
-rw-r--r--target/linux/omap/patches-3.18/0343-video-da8xx-fb-Add-API-to-register-wait-for-vsync-ca.patch91
-rw-r--r--target/linux/omap/patches-3.18/0752-video-da8xx-fb-fix-defect-with-vsync-callback-invoca.patch38
-rw-r--r--target/linux/omap/patches-3.18/920-arm-dts-am335x-evmsk-add-support-for-lcd-panel.patch70
-rw-r--r--target/linux/omap/patches-3.18/950-am335x-evmsk-wilink-dts.patch79
5 files changed, 0 insertions, 480 deletions
diff --git a/target/linux/omap/patches-3.18/0334-video-da8xx-fb-adding-dt-support.patch b/target/linux/omap/patches-3.18/0334-video-da8xx-fb-adding-dt-support.patch
deleted file mode 100644
index 265602cdca..0000000000
--- a/target/linux/omap/patches-3.18/0334-video-da8xx-fb-adding-dt-support.patch
+++ /dev/null
@@ -1,202 +0,0 @@
-From 884d3962ef4787c8cf0b8a7a673531c623d1dff8 Mon Sep 17 00:00:00 2001
-From: Darren Etheridge <detheridge@ti.com>
-Date: Fri, 2 Aug 2013 15:35:36 -0500
-Subject: [PATCH 334/752] video: da8xx-fb: adding dt support
-
-Enhancing driver to enable probe triggered by a corresponding dt entry.
-
-Add da8xx-fb.txt documentation to devicetree section.
-
-Obtain fb_videomode details for the connected lcd panel using the
-display timing details present in DT.
-
-Ensure that platform data is present before checking whether platform
-callback is present (the one used to control backlight). So far this
-was not an issue as driver was purely non-DT triggered, but now DT
-support has been added this check must be performed.
-
-v2: squashing multiple commits from Afzal Mohammed (afzal@ti.com)
-v3: remove superfluous cast
-v4: expose both ti,am3352-lcdc and ti,da830-lcdc for .compatible
- as driver can use enhanced features of all version of the
- silicon block.
-v5: addressed review comments from Prabhakar Lad
-v6: Changed the .compatible naming to match the existing drm bindings
- for am33xx devices
-v7: clarify which compatible to use in the documentation for DA850
-
-Acked-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
-Signed-off-by: Darren Etheridge <detheridge@ti.com>
----
- .../devicetree/bindings/video/da8xx-fb.txt | 42 +++++++++++++
- drivers/video/fbdev/da8xx-fb.c | 66 +++++++++++++++++++-
- 2 files changed, 105 insertions(+), 3 deletions(-)
- create mode 100644 Documentation/devicetree/bindings/video/da8xx-fb.txt
-
---- /dev/null
-+++ b/Documentation/devicetree/bindings/video/da8xx-fb.txt
-@@ -0,0 +1,42 @@
-+TI LCD Controller on DA830/DA850/AM335x SoC's
-+
-+Required properties:
-+- compatible:
-+ DA830, DA850 - "ti,da8xx-tilcdc"
-+ AM335x SoC's - "ti,am33xx-tilcdc"
-+- reg: Address range of lcdc register set
-+- interrupts: lcdc interrupt
-+- display-timings: typical videomode of lcd panel, represented as child.
-+ Refer Documentation/devicetree/bindings/video/display-timing.txt for
-+ display timing binding details. If multiple videomodes are mentioned
-+ in display timings node, typical videomode has to be mentioned as the
-+ native mode or it has to be first child (driver cares only for native
-+ videomode).
-+
-+Recommended properties:
-+- ti,hwmods: Name of the hwmod associated to the LCDC
-+
-+Example for am335x SoC's:
-+
-+lcdc@4830e000 {
-+ compatible = "ti,am33xx-tilcdc";
-+ reg = <0x4830e000 0x1000>;
-+ interrupts = <36>;
-+ ti,hwmods = "lcdc";
-+ status = "okay";
-+ display-timings {
-+ 800x480p62 {
-+ clock-frequency = <30000000>;
-+ hactive = <800>;
-+ vactive = <480>;
-+ hfront-porch = <39>;
-+ hback-porch = <39>;
-+ hsync-len = <47>;
-+ vback-porch = <29>;
-+ vfront-porch = <13>;
-+ vsync-len = <2>;
-+ hsync-active = <1>;
-+ vsync-active = <1>;
-+ };
-+ };
-+};
---- a/drivers/video/fbdev/da8xx-fb.c
-+++ b/drivers/video/fbdev/da8xx-fb.c
-@@ -36,6 +36,7 @@
- #include <linux/slab.h>
- #include <linux/delay.h>
- #include <linux/lcm.h>
-+#include <video/of_display_timing.h>
- #include <video/da8xx-fb.h>
- #include <asm/div64.h>
-
-@@ -1317,12 +1318,54 @@ static struct fb_ops da8xx_fb_ops = {
- .fb_blank = cfb_blank,
- };
-
-+static struct lcd_ctrl_config *da8xx_fb_create_cfg(struct platform_device *dev)
-+{
-+ struct lcd_ctrl_config *cfg;
-+
-+ cfg = devm_kzalloc(&dev->dev, sizeof(struct fb_videomode), GFP_KERNEL);
-+ if (!cfg)
-+ return NULL;
-+
-+ /* default values */
-+
-+ if (lcd_revision == LCD_VERSION_1)
-+ cfg->bpp = 16;
-+ else
-+ cfg->bpp = 32;
-+
-+ /*
-+ * For panels so far used with this LCDC, below statement is sufficient.
-+ * For new panels, if required, struct lcd_ctrl_cfg fields to be updated
-+ * with additional/modified values. Those values would have to be then
-+ * obtained from dt(requiring new dt bindings).
-+ */
-+
-+ cfg->panel_shade = COLOR_ACTIVE;
-+
-+ return cfg;
-+}
-+
- static struct fb_videomode *da8xx_fb_get_videomode(struct platform_device *dev)
- {
- struct da8xx_lcdc_platform_data *fb_pdata = dev_get_platdata(&dev->dev);
- struct fb_videomode *lcdc_info;
-+ struct device_node *np = dev->dev.of_node;
- int i;
-
-+ if (np) {
-+ lcdc_info = devm_kzalloc(&dev->dev,
-+ sizeof(struct fb_videomode),
-+ GFP_KERNEL);
-+ if (!lcdc_info)
-+ return NULL;
-+
-+ if (of_get_fb_videomode(np, lcdc_info, OF_USE_NATIVE_MODE)) {
-+ dev_err(&dev->dev, "timings not available in DT\n");
-+ return NULL;
-+ }
-+ return lcdc_info;
-+ }
-+
- for (i = 0, lcdc_info = known_lcd_panels;
- i < ARRAY_SIZE(known_lcd_panels); i++, lcdc_info++) {
- if (strcmp(fb_pdata->type, lcdc_info->name) == 0)
-@@ -1351,7 +1394,7 @@ static int fb_probe(struct platform_devi
- int ret;
- unsigned long ulcm;
-
-- if (fb_pdata == NULL) {
-+ if (fb_pdata == NULL && !device->dev.of_node) {
- dev_err(&device->dev, "Can not get platform data\n");
- return -ENOENT;
- }
-@@ -1391,7 +1434,10 @@ static int fb_probe(struct platform_devi
- break;
- }
-
-- lcd_cfg = (struct lcd_ctrl_config *)fb_pdata->controller_data;
-+ if (device->dev.of_node)
-+ lcd_cfg = da8xx_fb_create_cfg(device);
-+ else
-+ lcd_cfg = fb_pdata->controller_data;
-
- if (!lcd_cfg) {
- ret = -EINVAL;
-@@ -1410,7 +1456,7 @@ static int fb_probe(struct platform_devi
- par->dev = &device->dev;
- par->lcdc_clk = tmp_lcdc_clk;
- par->lcdc_clk_rate = clk_get_rate(par->lcdc_clk);
-- if (fb_pdata->panel_power_ctrl) {
-+ if (fb_pdata && fb_pdata->panel_power_ctrl) {
- par->panel_power_ctrl = fb_pdata->panel_power_ctrl;
- par->panel_power_ctrl(1);
- }
-@@ -1654,12 +1700,26 @@ static int fb_resume(struct device *dev)
-
- static SIMPLE_DEV_PM_OPS(fb_pm_ops, fb_suspend, fb_resume);
-
-+#if IS_ENABLED(CONFIG_OF)
-+static const struct of_device_id da8xx_fb_of_match[] = {
-+ /*
-+ * this driver supports version 1 and version 2 of the
-+ * Texas Instruments lcd controller (lcdc) hardware block
-+ */
-+ {.compatible = "ti,da8xx-tilcdc", },
-+ {.compatible = "ti,am33xx-tilcdc", },
-+ {},
-+};
-+MODULE_DEVICE_TABLE(of, da8xx_fb_of_match);
-+#endif
-+
- static struct platform_driver da8xx_fb_driver = {
- .probe = fb_probe,
- .remove = fb_remove,
- .driver = {
- .name = DRIVER_NAME,
- .owner = THIS_MODULE,
-+ .of_match_table = of_match_ptr(da8xx_fb_of_match),
- .pm = &fb_pm_ops,
- },
- };
diff --git a/target/linux/omap/patches-3.18/0343-video-da8xx-fb-Add-API-to-register-wait-for-vsync-ca.patch b/target/linux/omap/patches-3.18/0343-video-da8xx-fb-Add-API-to-register-wait-for-vsync-ca.patch
deleted file mode 100644
index 8c0898a9d6..0000000000
--- a/target/linux/omap/patches-3.18/0343-video-da8xx-fb-Add-API-to-register-wait-for-vsync-ca.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-From 9a1a810516ae9cb3259b898b6879901c5b44fa90 Mon Sep 17 00:00:00 2001
-From: Prathap M S <msprathap@ti.com>
-Date: Mon, 2 Sep 2013 12:05:23 +0530
-Subject: [PATCH 343/752] video: da8xx-fb: Add API to register wait for vsync
- callback
-
-This patch adds APIs to register and unregister wait for vsync callback.
-This is derived from commit id 2d44302545da24fd22912d964102bc31a7489e97
-This commit id was part of 3.2 kernel sources.
-
-Signed-off-by: Prathap M S <msprathap@ti.com>
----
- drivers/video/fbdev/da8xx-fb.c | 33 +++++++++++++++++++++++++++++++++
- include/video/da8xx-fb.h | 4 ++++
- 2 files changed, 37 insertions(+)
-
---- a/drivers/video/fbdev/da8xx-fb.c
-+++ b/drivers/video/fbdev/da8xx-fb.c
-@@ -197,6 +197,9 @@ static struct fb_fix_screeninfo da8xx_fb
- .accel = FB_ACCEL_NONE
- };
-
-+static vsync_callback_t vsync_cb_handler;
-+static void *vsync_cb_arg;
-+
- static struct fb_videomode known_lcd_panels[] = {
- /* Sharp LCD035Q3DG01 */
- [0] = {
-@@ -831,6 +834,32 @@ static int lcd_init(struct da8xx_fb_par
- return 0;
- }
-
-+int register_vsync_cb(vsync_callback_t handler, void *arg, int idx)
-+{
-+ if ((vsync_cb_handler == NULL) && (vsync_cb_arg == NULL)) {
-+ vsync_cb_arg = arg;
-+ vsync_cb_handler = handler;
-+ } else {
-+ return -EEXIST;
-+ }
-+
-+ return 0;
-+}
-+EXPORT_SYMBOL(register_vsync_cb);
-+
-+int unregister_vsync_cb(vsync_callback_t handler, void *arg, int idx)
-+{
-+ if ((vsync_cb_handler == handler) && (vsync_cb_arg == arg)) {
-+ vsync_cb_handler = NULL;
-+ vsync_cb_arg = NULL;
-+ } else {
-+ return -ENXIO;
-+ }
-+
-+ return 0;
-+}
-+EXPORT_SYMBOL(unregister_vsync_cb);
-+
- /* IRQ handler for version 2 of LCDC */
- static irqreturn_t lcdc_irq_handler_rev02(int irq, void *arg)
- {
-@@ -868,6 +897,8 @@ static irqreturn_t lcdc_irq_handler_rev0
- LCD_DMA_FRM_BUF_CEILING_ADDR_0_REG);
- par->vsync_flag = 1;
- wake_up_interruptible(&par->vsync_wait);
-+ if (vsync_cb_handler)
-+ vsync_cb_handler(vsync_cb_arg);
- }
-
- if (stat & LCD_END_OF_FRAME1) {
-@@ -943,6 +974,8 @@ static irqreturn_t lcdc_irq_handler_rev0
- LCD_DMA_FRM_BUF_CEILING_ADDR_1_REG);
- par->vsync_flag = 1;
- wake_up_interruptible(&par->vsync_wait);
-+ if (vsync_cb_handler)
-+ vsync_cb_handler(vsync_cb_arg);
- }
- }
-
---- a/include/video/da8xx-fb.h
-+++ b/include/video/da8xx-fb.h
-@@ -91,5 +91,9 @@ struct lcd_sync_arg {
- /* Proprietary FB_SYNC_ flags */
- #define FB_SYNC_CLK_INVERT 0x40000000
-
-+typedef void (*vsync_callback_t)(void *arg);
-+int register_vsync_cb(vsync_callback_t handler, void *arg, int idx);
-+int unregister_vsync_cb(vsync_callback_t handler, void *arg, int idx);
-+
- #endif /* ifndef DA8XX_FB_H */
-
diff --git a/target/linux/omap/patches-3.18/0752-video-da8xx-fb-fix-defect-with-vsync-callback-invoca.patch b/target/linux/omap/patches-3.18/0752-video-da8xx-fb-fix-defect-with-vsync-callback-invoca.patch
deleted file mode 100644
index 6000ef1365..0000000000
--- a/target/linux/omap/patches-3.18/0752-video-da8xx-fb-fix-defect-with-vsync-callback-invoca.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From c99bd415829ef29adf71bb1e1b577650f10e93f5 Mon Sep 17 00:00:00 2001
-From: Darren Etheridge <detheridge@ti.com>
-Date: Mon, 4 Nov 2013 12:27:40 -0600
-Subject: [PATCH 752/752] video/da8xx-fb fix defect with vsync callback
- invocation
-
-Fix defect where SGX is running at half of the expected framerate.
-The original patch (@ commit ID 9a1a810516ae9cb3259b898b6879901c5b44fa90)
-seems to have a mistake where it only calls the callback
-for the even or the odd frames depending on the revision of the LCD controller
-This patch corrects this and invokes the callback for both odd and even frame
-for just the Rev02 version of the LCDC (won't find an SGX GPU on a Rev01).
-
-Signed-off-by: Darren Etheridge <detheridge@ti.com>
----
- drivers/video/fbdev/da8xx-fb.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
---- a/drivers/video/fbdev/da8xx-fb.c
-+++ b/drivers/video/fbdev/da8xx-fb.c
-@@ -909,6 +909,8 @@ static irqreturn_t lcdc_irq_handler_rev0
- LCD_DMA_FRM_BUF_CEILING_ADDR_1_REG);
- par->vsync_flag = 1;
- wake_up_interruptible(&par->vsync_wait);
-+ if (vsync_cb_handler)
-+ vsync_cb_handler(vsync_cb_arg);
- }
-
- /* Set only when controller is disabled and at the end of
-@@ -974,8 +976,6 @@ static irqreturn_t lcdc_irq_handler_rev0
- LCD_DMA_FRM_BUF_CEILING_ADDR_1_REG);
- par->vsync_flag = 1;
- wake_up_interruptible(&par->vsync_wait);
-- if (vsync_cb_handler)
-- vsync_cb_handler(vsync_cb_arg);
- }
- }
-
diff --git a/target/linux/omap/patches-3.18/920-arm-dts-am335x-evmsk-add-support-for-lcd-panel.patch b/target/linux/omap/patches-3.18/920-arm-dts-am335x-evmsk-add-support-for-lcd-panel.patch
deleted file mode 100644
index 27b0b6df99..0000000000
--- a/target/linux/omap/patches-3.18/920-arm-dts-am335x-evmsk-add-support-for-lcd-panel.patch
+++ /dev/null
@@ -1,70 +0,0 @@
---- a/arch/arm/boot/dts/am335x-evmsk.dts
-+++ b/arch/arm/boot/dts/am335x-evmsk.dts
-@@ -256,6 +256,39 @@
- };
-
-
-+ lcd_pins_s0: lcd_pins_s0 {
-+ pinctrl-single,pins = <
-+ 0x20 0x01 /* gpmc_ad8.lcd_data16, OUTPUT | MODE1 */
-+ 0x24 0x01 /* gpmc_ad9.lcd_data17, OUTPUT | MODE1 */
-+ 0x28 0x01 /* gpmc_ad10.lcd_data18, OUTPUT | MODE1 */
-+ 0x2c 0x01 /* gpmc_ad11.lcd_data19, OUTPUT | MODE1 */
-+ 0x30 0x01 /* gpmc_ad12.lcd_data20, OUTPUT | MODE1 */
-+ 0x34 0x01 /* gpmc_ad13.lcd_data21, OUTPUT | MODE1 */
-+ 0x38 0x01 /* gpmc_ad14.lcd_data22, OUTPUT | MODE1 */
-+ 0x3c 0x01 /* gpmc_ad15.lcd_data23, OUTPUT | MODE1 */
-+ 0xa0 0x00 /* lcd_data0.lcd_data0, OUTPUT | MODE0 */
-+ 0xa4 0x00 /* lcd_data1.lcd_data1, OUTPUT | MODE0 */
-+ 0xa8 0x00 /* lcd_data2.lcd_data2, OUTPUT | MODE0 */
-+ 0xac 0x00 /* lcd_data3.lcd_data3, OUTPUT | MODE0 */
-+ 0xb0 0x00 /* lcd_data4.lcd_data4, OUTPUT | MODE0 */
-+ 0xb4 0x00 /* lcd_data5.lcd_data5, OUTPUT | MODE0 */
-+ 0xb8 0x00 /* lcd_data6.lcd_data6, OUTPUT | MODE0 */
-+ 0xbc 0x00 /* lcd_data7.lcd_data7, OUTPUT | MODE0 */
-+ 0xc0 0x00 /* lcd_data8.lcd_data8, OUTPUT | MODE0 */
-+ 0xc4 0x00 /* lcd_data9.lcd_data9, OUTPUT | MODE0 */
-+ 0xc8 0x00 /* lcd_data10.lcd_data10, OUTPUT | MODE0 */
-+ 0xcc 0x00 /* lcd_data11.lcd_data11, OUTPUT | MODE0 */
-+ 0xd0 0x00 /* lcd_data12.lcd_data12, OUTPUT | MODE0 */
-+ 0xd4 0x00 /* lcd_data13.lcd_data13, OUTPUT | MODE0 */
-+ 0xd8 0x00 /* lcd_data14.lcd_data14, OUTPUT | MODE0 */
-+ 0xdc 0x00 /* lcd_data15.lcd_data15, OUTPUT | MODE0 */
-+ 0xe0 0x00 /* lcd_vsync.lcd_vsync, OUTPUT | MODE0 */
-+ 0xe4 0x00 /* lcd_hsync.lcd_hsync, OUTPUT | MODE0 */
-+ 0xe8 0x00 /* lcd_pclk.lcd_pclk, OUTPUT | MODE0 */
-+ 0xec 0x00 /* lcd_ac_bias_en.lcd_ac_bias_en, OUTPUT | MODE0 */
-+ >;
-+ };
-+
- user_leds_s0: user_leds_s0 {
- pinctrl-single,pins = <
- 0x10 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad4.gpio1_4 */
-@@ -665,6 +698,27 @@
- rx-num-evt = <32>;
- };
-
-+&lcdc {
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&lcd_pins_s0>;
-+ status = "okay";
-+ display-timings {
-+ 480x272 {
-+ hactive = <480>;
-+ vactive = <272>;
-+ hback-porch = <43>;
-+ hfront-porch = <8>;
-+ hsync-len = <4>;
-+ vback-porch = <12>;
-+ vfront-porch = <4>;
-+ vsync-len = <10>;
-+ clock-frequency = <9000000>;
-+ hsync-active = <0>;
-+ vsync-active = <0>;
-+ };
-+ };
-+};
-+
- &tscadc {
- status = "okay";
- tsc {
diff --git a/target/linux/omap/patches-3.18/950-am335x-evmsk-wilink-dts.patch b/target/linux/omap/patches-3.18/950-am335x-evmsk-wilink-dts.patch
deleted file mode 100644
index cf0530e53a..0000000000
--- a/target/linux/omap/patches-3.18/950-am335x-evmsk-wilink-dts.patch
+++ /dev/null
@@ -1,79 +0,0 @@
---- a/arch/arm/boot/dts/am335x-evmsk.dts
-+++ b/arch/arm/boot/dts/am335x-evmsk.dts
-@@ -14,6 +14,7 @@
- /dts-v1/;
-
- #include "am33xx.dtsi"
-+#include <dt-bindings/interrupt-controller/irq.h>
- #include <dt-bindings/pwm/pwm.h>
-
- / {
-@@ -26,6 +27,13 @@
- };
- };
-
-+ wlan {
-+ compatible = "wlcore";
-+
-+ gpio = <31>;
-+ board-ref-clock = <4>;
-+ };
-+
- memory {
- device_type = "memory";
- reg = <0x80000000 0x10000000>; /* 256 MB */
-@@ -68,6 +76,16 @@
- enable-active-high;
- };
-
-+ vmmc_wl: fixedregulator@2 {
-+ compatible = "regulator-fixed";
-+ regulator-name = "vmmc-wl";
-+ regulator-min-microvolt = <1800000>;
-+ regulator-max-microvolt = <1800000>;
-+ gpio = <&gpio1 29 0>;
-+ startup-delay-us = <70000>;
-+ enable-active-high;
-+ };
-+
- leds {
- pinctrl-names = "default";
- pinctrl-0 = <&user_leds_s0>;
-@@ -445,6 +463,20 @@
- 0x7c (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpmc_csn0.gpio1_29 */
- >;
- };
-+
-+ wilink_pins: pinmux_wilink_pins {
-+ pinctrl-single,pins = <
-+ 0x74 (PIN_INPUT_PULLUP | MUX_MODE7) /* gpmc_wpn.gpio0_31 */
-+ 0x7c (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpmc_csn0.gpio1_29 */
-+ 0x80 (PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn1.mmc1_clk */
-+ 0x84 (PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn2.mmc1_cmd */
-+ 0x00 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad0.mmc1_dat0 */
-+ 0x04 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad1.mmc1_dat1 */
-+ 0x08 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad2.mmc1_dat2 */
-+ 0x0c (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad3.mmc1_dat3 */
-+ >;
-+ };
-+
- };
-
- &uart0 {
-@@ -682,6 +714,16 @@
- pinctrl-0 = <&mmc2_pins>;
- };
-
-+&mmc2 {
-+ status = "okay";
-+ vmmc-supply = <&vmmc_wl>;
-+ bus-width = <4>;
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&wilink_pins>;
-+ ti,non-removable;
-+ keep-power-in-suspend;
-+};
-+
- &mcasp1 {
- pinctrl-names = "default";
- pinctrl-0 = <&mcasp1_pins>;