diff options
author | Praneeth Bajjuri <praneeth@ti.com> | 2015-02-03 14:25:00 -0600 |
---|---|---|
committer | Praneeth Bajjuri <praneeth@ti.com> | 2015-02-03 14:25:00 -0600 |
commit | 29430b6296370c2fc8938bcf090d5161f09db8e8 (patch) | |
tree | 3f00e18273a3f76de3a08bc243ccb71da2001b5a | |
parent | e96b6cca684ee9c6005c5632a2825267da92d788 (diff) | |
parent | b2a6a3d144669701732568cde5cce17aa37c1ae1 (diff) |
Merge branch 'p-ti-linux-3.14.y-common' into p-ti-linux-3.14.y-android
* p-ti-linux-3.14.y-common:
usb: dwc3: debugfs: dual role switch through debugfs entries
ARM: DRA7: dts: Add coprocessor nodes for iva
UAPI: Increasing the max FRAME number to 128.
gpio: mcp23s08: Set initial direction and value from DT
firmware: Load VPDMA firmware from kernel
drivers: power: Introduce TI coprocessor driver
Change-Id: I40081e26ca7b53359f832e76371aaea5b5c08878
Signed-off-by: Praneeth Bajjuri <praneeth@ti.com>
-rw-r--r-- | Documentation/devicetree/bindings/power/coproc/ti-coproc.txt | 35 | ||||
-rw-r--r-- | arch/arm/boot/dts/dra72x.dtsi | 28 | ||||
-rw-r--r-- | arch/arm/boot/dts/dra74x.dtsi | 28 | ||||
-rw-r--r-- | drivers/gpio/gpio-mcp23s08.c | 9 | ||||
-rw-r--r-- | drivers/media/platform/Kconfig | 11 | ||||
-rw-r--r-- | drivers/power/Kconfig | 1 | ||||
-rw-r--r-- | drivers/power/Makefile | 1 | ||||
-rw-r--r-- | drivers/power/coproc/Kconfig | 7 | ||||
-rw-r--r-- | drivers/power/coproc/Makefile | 2 | ||||
-rw-r--r-- | drivers/power/coproc/ti-coproc.c | 229 | ||||
-rw-r--r-- | drivers/usb/dwc3/debugfs.c | 11 | ||||
-rw-r--r-- | drivers/usb/dwc3/dwc3-omap.c | 30 | ||||
-rw-r--r-- | firmware/Makefile | 3 | ||||
-rw-r--r-- | firmware/vpdma-1b8.bin.ihex | 252 | ||||
-rw-r--r-- | include/linux/usb/drd.h | 9 | ||||
-rw-r--r-- | include/uapi/linux/videodev2.h | 2 |
16 files changed, 649 insertions, 9 deletions
diff --git a/Documentation/devicetree/bindings/power/coproc/ti-coproc.txt b/Documentation/devicetree/bindings/power/coproc/ti-coproc.txt new file mode 100644 index 00000000000..d60c1f2df57 --- /dev/null +++ b/Documentation/devicetree/bindings/power/coproc/ti-coproc.txt @@ -0,0 +1,35 @@ +Texas Instruments co-processor driver + +A co-processor device is a non-cpu processor found on an SoC. + +This document describes the clock and voltage configuration +used by co-processors/devices typically found on Texas Instrument SoCs. + +Required properties +- compatible: should be + "ti,coproc" +- clocks: <functional clock>, <dpll clock> + dpll clock is optional +- clock-names: "fclk", "dpll" + if you change names here, go chnage the driver too +- clock-target-frequency: Mention your target frequency here +- operating-points: all OPPs applicable for this device/coprocessor +- coproc-voltdm: phandle of the Voltage domain associated with this device/coproc +- voltage-tolerance: Specify a voltage tolerance allowed for this voltage domain +as per datamanual limits + +Example: +iva_coproc { + compatible = "ti,coproc"; + clocks = <&dpll_iva_m2_ck>, <&dpll_iva_ck>; + clock-names = "fclk", "dpll"; + clock-target-frequency = <532000000>; + operating-points = < + 388200 1055000 + 430000 1150000 + 532000 1250000 + >; + coproc-voltdm = <&voltdm_ivahd>; + voltage-tolerance = <1>; +}; + diff --git a/arch/arm/boot/dts/dra72x.dtsi b/arch/arm/boot/dts/dra72x.dtsi index b5eb3266663..3001c518c76 100644 --- a/arch/arm/boot/dts/dra72x.dtsi +++ b/arch/arm/boot/dts/dra72x.dtsi @@ -38,6 +38,34 @@ }; }; + iva_coproc { + compatible = "ti,coproc"; + clocks = <&dpll_iva_m2_ck>, <&dpll_iva_ck>; + clock-names = "fclk", "dpll"; + clock-target-frequency = <532000000>; + operating-points = < + 388200 1055000 + 430000 1150000 + 532000 1250000 + >; + coproc-voltdm = <&voltdm_ivahd>; + voltage-tolerance = <1>; + }; + + dsp_coproc { + compatible = "ti,coproc"; + clocks = <&dpll_dsp_m2_ck>, <&dpll_dsp_ck>; + clock-names = "fclk", "dpll"; + clock-target-frequency = <700000000>; + operating-points = < + 600000 1055000 + 700000 1150000 + 700000 1250000 + >; + coproc-voltdm = <&voltdm_dspeve>; + voltage-tolerance = <1>; + }; + thermal-zones { #include "omap5-cpu-thermal.dtsi" }; diff --git a/arch/arm/boot/dts/dra74x.dtsi b/arch/arm/boot/dts/dra74x.dtsi index 8a36afcd925..e43fc2bd8eb 100644 --- a/arch/arm/boot/dts/dra74x.dtsi +++ b/arch/arm/boot/dts/dra74x.dtsi @@ -43,6 +43,34 @@ }; }; + iva_coproc { + compatible = "ti,coproc"; + clocks = <&dpll_iva_m2_ck>, <&dpll_iva_ck>; + clock-names = "fclk", "dpll"; + clock-target-frequency = <532000000>; + operating-points = < + 388200 1055000 + 430000 1150000 + 532000 1250000 + >; + coproc-voltdm = <&voltdm_ivahd>; + voltage-tolerance = <1>; + }; + + dsp_coproc { + compatible = "ti,coproc"; + clocks = <&dpll_dsp_m2_ck>, <&dpll_dsp_ck>; + clock-names = "fclk", "dpll"; + clock-target-frequency = <700000000>; + operating-points = < + 600000 1055000 + 700000 1150000 + 700000 1250000 + >; + coproc-voltdm = <&voltdm_dspeve>; + voltage-tolerance = <1>; + }; + thermal-zones { #include "omap5-cpu-thermal.dtsi" }; diff --git a/drivers/gpio/gpio-mcp23s08.c b/drivers/gpio/gpio-mcp23s08.c index aa379971d70..e9178de8ec1 100644 --- a/drivers/gpio/gpio-mcp23s08.c +++ b/drivers/gpio/gpio-mcp23s08.c @@ -584,6 +584,7 @@ static int mcp23s08_probe_one(struct mcp23s08 *mcp, struct device *dev, unsigned base, unsigned pullups) { int status; + u32 init_dir = 0, init_val = 0; bool mirror = false; mutex_init(&mcp->lock); @@ -672,6 +673,14 @@ static int mcp23s08_probe_one(struct mcp23s08 *mcp, struct device *dev, if (status < 0) goto fail; + if (of_property_read_u32(mcp->chip.of_node, + "init-dir", &init_dir) == 0) + status = mcp->ops->write(mcp, MCP_IODIR, init_dir); + + if (of_property_read_u32(mcp->chip.of_node, + "init-val", &init_val) == 0) + status = mcp->ops->write(mcp, MCP_OLAT, init_val); + status = mcp->ops->read_regs(mcp, 0, mcp->cache, ARRAY_SIZE(mcp->cache)); if (status < 0) goto fail; diff --git a/drivers/media/platform/Kconfig b/drivers/media/platform/Kconfig index f3e78e1fb4d..aee0f2d4c31 100644 --- a/drivers/media/platform/Kconfig +++ b/drivers/media/platform/Kconfig @@ -255,6 +255,17 @@ config VIDEO_TI_VPDMA_HELPER it provides a mem2mem, mem2device, device2mem DMA specifically for transfering and manipulating video data. +config VIDEO_TI_VPDMA_LOAD_FW + bool "Load VPDMA F/W from Kernel" + depends on VIDEO_TI_VPDMA_HELPER + default n + ---help--- + TI SoC's Video Port Direct Memory Access module + needs a firmware to be loaded. This can be loaded from + user space via udev event or it can be loaded from kernel itself + Say 'y' if you want the Video devices to be initialized early + in the bootup sequence. + menuconfig V4L_TEST_DRIVERS bool "Media test drivers" depends on MEDIA_CAMERA_SUPPORT diff --git a/drivers/power/Kconfig b/drivers/power/Kconfig index 5c4fe1670fc..8b07dc1aca5 100644 --- a/drivers/power/Kconfig +++ b/drivers/power/Kconfig @@ -395,3 +395,4 @@ endif # POWER_SUPPLY source "drivers/power/avs/Kconfig" source "drivers/power/voltdm/Kconfig" +source "drivers/power/coproc/Kconfig" diff --git a/drivers/power/Makefile b/drivers/power/Makefile index 3d47072191d..a76fa2a1eda 100644 --- a/drivers/power/Makefile +++ b/drivers/power/Makefile @@ -59,3 +59,4 @@ obj-$(CONFIG_CHARGER_SMB347) += smb347-charger.o obj-$(CONFIG_CHARGER_TPS65090) += tps65090-charger.o obj-$(CONFIG_POWER_RESET) += reset/ obj-$(CONFIG_VOLTAGE_DOMAIN) += voltdm/ +obj-$(CONFIG_TI_COPROC) += coproc/ diff --git a/drivers/power/coproc/Kconfig b/drivers/power/coproc/Kconfig new file mode 100644 index 00000000000..ec0e3076800 --- /dev/null +++ b/drivers/power/coproc/Kconfig @@ -0,0 +1,7 @@ +config TI_COPROC + tristate "TI Co-processor driversupport" + depends on VOLTAGE_DOMAIN_OMAP + help + TI Coprocessor driver helps initialize a coprocessor to + a particular Operating performance point. + diff --git a/drivers/power/coproc/Makefile b/drivers/power/coproc/Makefile new file mode 100644 index 00000000000..5e393a5f403 --- /dev/null +++ b/drivers/power/coproc/Makefile @@ -0,0 +1,2 @@ +#Texas Instruments co-processor init driver +obj-${CONFIG_TI_COPROC} += ti-coproc.o diff --git a/drivers/power/coproc/ti-coproc.c b/drivers/power/coproc/ti-coproc.c new file mode 100644 index 00000000000..3795d36e105 --- /dev/null +++ b/drivers/power/coproc/ti-coproc.c @@ -0,0 +1,229 @@ +/* + * OMAP SoC COPROC driver + * + * Copyright (C) 2014 Texas Instruments Incorporated - http://www.ti.com/ + * Carlos Hernandez <ceh@ti.com> + * Nishanth Menon <nm@ti.com> + * Ravikumar Kattekola <rk@ti.com> + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed "as is" WITHOUT ANY WARRANTY of any + * kind, whether express or implied; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ +#include <linux/io.h> +#include <linux/slab.h> +#include <linux/mutex.h> +#include <linux/suspend.h> +#include <linux/pm_opp.h> +#include <linux/of.h> +#include <linux/platform_device.h> +#include <linux/regulator/consumer.h> +#include <linux/module.h> +#include <linux/clk.h> +#include <linux/pm_voltage_domain.h> + +/** + * struct coproc_data - Co processor private data + * @profile: profile specific for this device + * @dev: device pointer + * @: for this device + * @stat: my current statistics + * @dev_clk: my device clk + * @dpll_clk: my dpll clk + * @nb: my notifier block + */ +struct coproc_data { + struct device *dev; + struct clk *dev_clk; + struct clk *dpll_clk; + struct notifier_block *clk_nb; +}; + +/** + * DOC: + * clock-names should be defined in dts file, e.g. + * coproc { + * + * compatible = "ti,coproc"; + * clocks = <&dpll_iva_m2_ck>, <&dpll_iva_ck>; + * clock-names = "fclk", "dpll"; + * clock-target-frequency = <532000000>; + * operating-points = < + * 388200 1055000 + * 500000 1150000 + * 532000 1250000 + * >; + * coproc-voltdm = <&voltdm_ivahd>; + * voltage-tolerance = <1>; + * + * }; + */ +#define DEV_CLK_NAME "fclk" +#define DPLL_CLK_NAME "dpll" + +static int coproc_probe(struct platform_device *pdev) +{ + struct coproc_data *d; + unsigned int voltage_latency; + u32 target_freq = 0; + int err = 0; + struct device *dev = &pdev->dev; + struct device_node *np = of_node_get(dev->of_node); + bool noset_dpll_as_rate; + + dev_info(dev, "probe\n"); + + of_property_read_u32(np, "clock-target-frequency", &target_freq); + if (!target_freq) { + dev_err(dev, "%s: Invalid/no target frequency found in dt.\n", + __func__); + return -EINVAL; + } + + noset_dpll_as_rate = of_property_read_bool(np, "noset-dpll-rate"); + + d = devm_kzalloc(dev, sizeof(*d), GFP_KERNEL); + if (d == NULL) { + dev_err(dev, "%s: Cannot allocate memory.\n", __func__); + err = -ENOMEM; + goto out; + } + platform_set_drvdata(pdev, d); + + d->dpll_clk = devm_clk_get(dev, DPLL_CLK_NAME); + if (IS_ERR(d->dpll_clk)) { + err = PTR_ERR(d->dpll_clk); + dev_err(dev, "%s: Cannot get dpll clk(%d).\n", __func__, err); + d->dpll_clk = NULL; + } + + d->dev_clk = devm_clk_get(dev, DEV_CLK_NAME); + if (IS_ERR(d->dev_clk)) { + err = PTR_ERR(d->dpll_clk); + dev_err(dev, "%s: Cannot get func clk(%d).\n", __func__, err); + goto out; + } + + if (noset_dpll_as_rate) + d->dpll_clk = NULL; + + err = of_init_opp_table(dev); + if (err) { + dev_err(dev, "%s: Cannot initialize opp table(%d).\n", __func__, + err); + goto out; + } + d->dev = dev; + + /* Register voltage domain notifier */ + d->clk_nb = of_pm_voltdm_notifier_register(dev, np, d->dev_clk, + "coproc", + &voltage_latency); + if (IS_ERR(d->clk_nb)) { + err = PTR_ERR(d->clk_nb); + /* defer probe if regulator is not yet registered */ + if (err == -EPROBE_DEFER) { + dev_err(dev, + "coproc clock notifier not ready, retry\n"); + } else { + dev_err(dev, + "Failed to register coproc clk notifier: %d\n", + err); + } + goto out; + } + + if (target_freq) { + if (d->dpll_clk) { + err = clk_set_rate(d->dpll_clk, target_freq); + if (err) { + dev_err(dev, "%s: Cannot set dpll clock rate(%d).\n", + __func__, err); + goto out; + } + } + + err = clk_set_rate(d->dev_clk, target_freq); + if (err) { + dev_err(dev, "%s: Cannot set func clock rate(%d).\n", + __func__, err); + goto out; + } + } + + /* All good.. */ + goto out; + +out: + dev_info(dev, "%s result=%d", __func__, err); + return err; +} + +static int coproc_remove(struct platform_device *pdev) +{ + struct coproc_data *d = platform_get_drvdata(pdev); + struct device *dev = &pdev->dev; + + dev_info(dev, "remove\n"); + + of_pm_voltdm_notifier_unregister(d->clk_nb); + + dev_info(dev, "%s Removed\n", __func__); + return 0; +} + +/** + * coproc_suspend() - dummy hook for suspend + * @dev: device pointer + * + * Return: 0 + */ +static int coproc_suspend(struct device *dev) +{ + dev_info(dev, "suspend\n"); + return 0; +} + +/** + * coproc_resume() - dummy hook for resume + * @dev: device pointer + * + * Return: 0 + */ +static int coproc_resume(struct device *dev) +{ + dev_info(dev, "resume\n"); + return 0; +} + +/* Device power management hooks */ +static SIMPLE_DEV_PM_OPS(coproc_pm, + coproc_suspend, + coproc_resume); + +static struct of_device_id of_coproc_match[] = { + {.compatible = "ti,coproc"}, + {}, +}; + +MODULE_DEVICE_TABLE(of, of_coproc_match); + +static struct platform_driver coproc_driver = { + .probe = coproc_probe, + .remove = coproc_remove, + .driver = { + .name = "coproc", + .owner = THIS_MODULE, + .of_match_table = of_match_ptr(of_coproc_match), + .pm = &coproc_pm, + }, +}; +module_platform_driver(coproc_driver); + +MODULE_LICENSE("GPL v2"); +MODULE_DESCRIPTION("OMAP Co-processor Driver"); +MODULE_AUTHOR("Texas Instruments Inc."); diff --git a/drivers/usb/dwc3/debugfs.c b/drivers/usb/dwc3/debugfs.c index 9ac37fe1b6a..0cc5a015451 100644 --- a/drivers/usb/dwc3/debugfs.c +++ b/drivers/usb/dwc3/debugfs.c @@ -27,6 +27,7 @@ #include <linux/uaccess.h> #include <linux/usb/ch9.h> +#include <linux/usb/drd.h> #include "core.h" #include "gadget.h" @@ -412,7 +413,15 @@ static ssize_t dwc3_mode_write(struct file *file, if (mode) { spin_lock_irqsave(&dwc->lock, flags); - dwc3_set_mode(dwc, mode); + if (mode & DWC3_GCTL_PRTCAP_HOST) { + dwc3_omap_usbvbus_id_handler(dwc->dev->parent, + OMAP_DWC3_ID_GROUND); + mode = 0; + } else if (mode & DWC3_GCTL_PRTCAP_DEVICE) { + dwc3_omap_usbvbus_id_handler(dwc->dev->parent, + OMAP_DWC3_VBUS_VALID); + mode = 1; + } spin_unlock_irqrestore(&dwc->lock, flags); } return count; diff --git a/drivers/usb/dwc3/dwc3-omap.c b/drivers/usb/dwc3/dwc3-omap.c index 4ccdef7333c..96b4c46cbbd 100644 --- a/drivers/usb/dwc3/dwc3-omap.c +++ b/drivers/usb/dwc3/dwc3-omap.c @@ -32,6 +32,7 @@ #include <linux/regulator/consumer.h> #include <linux/usb/otg.h> +#include <linux/usb/drd.h> /* * All these registers belong to OMAP's Wrapper around the @@ -137,13 +138,6 @@ struct dwc3_omap { struct regulator *vbus_reg; }; -enum omap_dwc3_vbus_id_status { - OMAP_DWC3_ID_FLOAT, - OMAP_DWC3_ID_GROUND, - OMAP_DWC3_VBUS_OFF, - OMAP_DWC3_VBUS_VALID, -}; - static inline u32 dwc3_omap_readl(void __iomem *base, u32 offset) { return readl(base + offset); @@ -278,6 +272,28 @@ static void dwc3_omap_set_mailbox(struct dwc3_omap *omap, } } +int dwc3_omap_usbvbus_id_handler(struct device *dev, + enum omap_dwc3_vbus_id_status status) +{ + struct dwc3_omap *omap; + struct platform_device *pdev; + + if (!dev) + return -ENODEV; + + dev_dbg(omap->dev, "VBUS Connect\n"); + + pdev = to_platform_device(dev); + omap = platform_get_drvdata(pdev); + if (!omap) + return -ENODEV; + + dwc3_omap_set_mailbox(omap, status); + + return 0; +} +EXPORT_SYMBOL(dwc3_omap_usbvbus_id_handler); + static irqreturn_t dwc3_omap_interrupt(int irq, void *_omap) { struct dwc3_omap *omap = _omap; diff --git a/firmware/Makefile b/firmware/Makefile index cbb09ce9730..bcee66d9eeb 100644 --- a/firmware/Makefile +++ b/firmware/Makefile @@ -96,6 +96,9 @@ fw-shipped-$(CONFIG_SND_WAVEFRONT) += yamaha/yss225_registers.bin fw-shipped-$(CONFIG_TEHUTI) += tehuti/bdx.bin fw-shipped-$(CONFIG_TIGON3) += tigon/tg3.bin tigon/tg3_tso.bin \ tigon/tg3_tso5.bin + +fw-shipped-$(CONFIG_VIDEO_TI_VPDMA_LOAD_FW) += vpdma-1b8.bin + fw-shipped-$(CONFIG_TYPHOON) += 3com/typhoon.bin fw-shipped-$(CONFIG_USB_EMI26) += emi26/loader.fw emi26/firmware.fw \ emi26/bitstream.fw diff --git a/firmware/vpdma-1b8.bin.ihex b/firmware/vpdma-1b8.bin.ihex new file mode 100644 index 00000000000..ddf307dd3e2 --- /dev/null +++ b/firmware/vpdma-1b8.bin.ihex @@ -0,0 +1,252 @@ +:10000000064B408007680749064A005102441F0812 +:10001000064A003102441E080449418004484080D9 +:100020000680000C01D002C01681010000441C08AB +:1000300001441D080649E809064818080185064AD2 +:1000400001002181219400441B080044180806483F +:10005000010000441A080648001C0044190806491B +:1000600000000144250801442408064818080144FA +:100070002108004420080648E809068001000144E0 +:100080002308004422080144260806480080004452 +:100090002708064834000044428006480000004417 +:1000A000F880064801000044F980064B1808864B8A +:1000B000200807BC0FB80004064801000044FF8078 +:1000C0000648FFFF0044F8800648FFFF0044F9801F +:1000D000064800000044580800445D0800445E08DB +:1000E00000445F0800445C08004457090044590973 +:1000F00000445A0900445B0900445C0900445D095E +:1001000000445E0900445F09004460090044660938 +:10011000004465090648D1000044E18006486A02AF +:100120000044E2800648F9050044E3800648B8012F +:100130000044FC800044FE800004064800000044A7 +:10014000540900445509004456090448FE8006AA93 +:1001500008000649010001940044FF80864B5909BC +:10016000C483FE800F480ECC064B01800648080071 +:1001700004A8FE80308307480689F0011685F00147 +:1001800001C881450649FF010144FD800FB90649B8 +:1001900042802183074A26867F00CCCC0448E08039 +:1001A00000E00648FFFF0044F880064B59093483FD +:1001B000FE80064A00000245044AFE8002446108AF +:1001C00026A9050001446808064B32081383074836 +:1001D0000044630826A9080001446708064B4080D4 +:1001E000138307680044650807480044660836839F +:1001F000030007480680F9FF03CC064AD70502E052 +:100200000648000000446408064B300826A9050093 +:100210001383076800445D0800445C080045064BF2 +:1002200033081383074800445F080648510100E083 +:1002300004486708064B43803083074932CC044AA0 +:10024000FE80064B6709238306481F010045864B45 +:100250004280C48367080F4836830800004506487B +:100260007F008045064B0180348367080648FFFF06 +:1002700000450448540912C806488001044955093C +:10028000018C0045068C80000044FC80064B34083D +:1002900026AA05003283064800000045064897015B +:1002A00000E0044AFE80064B6709238306481801D4 +:1002B0000045044AFE8006490800064B018012AA48 +:1002C0002383064801010045864B0F080F4A0DD8CD +:1002D000064800010045864B07080F4A06D8064825 +:1002E000FA0100450044FF8025C00448FE8006A8AE +:1002F0000500064B34080383044964080145064B96 +:100300003108038304495D08014506480080004424 +:10031000FA80064A000002449108044AFE80064B17 +:100320006709238306481801068C008000450648AB +:100330009A0000E00649005106480001108C004474 +:100340001F08044A660802441D080244D18004497B +:10035000650801441C080144D08004486308064B2A +:100360004380348367080749018603D80244620842 +:1003700006C016800000064A00000244620804829B +:10038000640802446408044A640806A81000004493 +:100390001B08004418080044D280064801000044AD +:1003A000D380064A000004495C0802442508014441 +:1003B00024080449910807C806490000014491082F +:1003C00004495C0805C00449920802CC04495D0850 +:1003D0000244210801442008064900000144920813 +:1003E00004495F0802442308014422080244260805 +:1003F0000649008001442708864B18080FBE0448B0 +:100400006208064B4380348367080045864B20080A +:100410000448D480004465080448D5800044660838 +:100420000FB806483400064B42800449670813831E +:100430000045044AFE80064B6709238306491801DC +:10044000168D0040014536830800004536830800BC +:1004500004485D080045064B43803483670807491C +:100460000448FE80064B6709038336831800014564 +:1004700004496708064B40801383044865080065FB +:100480000448660800450448FE8006A80500064B9F +:1004900034080383044964080145064B310803838B +:1004A00004495D0801450648970100E006480080C0 +:1004B0000044FA80044AFE80064B670923830648FD +:1004C0001801068C00C0004506489A0000E0004470 +:1004D000EE8000E4044AFE80064B018026A9080055 +:1004E00001446708064B4080138307680044650891 +:1004F0000768004466080768076800446208074800 +:10050000004460080244610826AA05000244680805 +:10051000064B30082383076800445C0807680044E2 +:100520005D08076800445E08076800445F080748E4 +:1005300000446408004463080448640807CC044885 +:100540005E08004463080648180100E0044B5D089B +:100550000649F5FF368307000748109406490A004C +:1005600010840CC80649010010840BC8108403C80D +:100570000648C40200E006488E0400E00648DC029B +:1005800000E00648CC0300E036830800044A5D081A +:10059000024536830800044A640802450448FE8088 +:1005A00006490800864B018010A888830648FB0195 +:1005B000804506489A0000E0044A640806CC0648D4 +:1005C0008A0300E006487C0300E0044A64082680B1 +:1005D000FFFFF8C8044B5D08B68306000F48068885 +:1005E000004000448F080F480688008000445409EA +:1005F000B68307000F480688FF01044AFE800649BB +:100600000800864B018012AAA88380450649030092 +:100610009097C68307000F4A05D8B68306000F4A95 +:1006200004D808C006489B0300E09097C6830200E8 +:100630000F49F8D8044AFE80864B0180064908001D +:1006400012AAA8830649FE0181450144FF8007BD27 +:10065000064903009097C68302000F49168D00805B +:10066000814536830800044954090DC80649030032 +:100670009097C68307000F491689008004488F08A9 +:10068000108D01448F0806480100044A5609209441 +:10069000044A5509028E02445509044A5F0823851D +:1006A00004D8044B5C0803445D0804498F0805C85E +:1006B00007B81689000001448F0807B83683080080 +:1006C00006480100044A56092681010001445609E2 +:1006D000044964081681FEFF0144640823C8044AE3 +:1006E0005F08328505D803445D080648A60200E08D +:1006F00004485C0800445D0804485D0804495F083C +:100700000680080000449208108404D806480100BE +:100710000044910804485E080649FFFF1094004415 +:10072000630834C004485C0800445D0804485E085F +:10073000004463082BC0B68306000F4801D810C0E0 +:10074000044AFE80864B01800649080012AAA8834D +:100750000648FE0180450044FF8036831000B0C08B +:1007600004486808064B34080383044964080145BB +:10077000064B3108038304495D0801450AC0064859 +:10078000100000448E080648670200E00648180181 +:1007900000E006489A0000E0044A640803CC0648DA +:1007A000500400E0044B5D08B68306000F4869C89A +:1007B000064A000004495C08024425080144240854 +:1007C00004495D08024421080144200804495F08E7 +:1007D00002442308014422080244260806490080F6 +:1007E00001442708044AFE8006490800064B0180A0 +:1007F00012AA238306480101064900800045864B62 +:100800000F080F4A59D80648000106490040004524 +:10081000864B07080F4A50D8064901010144FD8064 +:100820000044FF800648FC010045044B5D0807BCFE +:10083000B68306000F680F49168AFF011689000467 +:1008400003C80680010002C006480100864B4280B2 +:10085000C483670806493E00218181450449640834 +:1008600001850144640806A80800308202445D083E +:10087000064B2008864B080807B90F490F490F4956 +:100880000AC004485D08068008000449640816810F +:10089000FFFF06C834C004495F08218526D814C06C +:1008A0000144640804495E08064AFFFF2196024499 +:1008B00063080648180100E0064800800044FA80FA +:1008C0000648FF800044F98004486808064B340855 +:1008D0000383044964080145064B31080383044936 +:1008E0005D08014506489A0000E004485C080044A1 +:1008F0005D08044A5E0804496408D2C8E5C0064B96 +:10090000310834836808004500445D0836830300DD +:100910000145014464080648A60200E0044AFE803E +:10092000044B5D0836830600074806880F000BC895 +:1009300006490100108421C810842DC810843BC8CA +:1009400010843FC87BC036830100044AFE800748FC +:100950000688FF01864B9308C6830100C0830F49B8 +:10096000068C00800044FD8007B8864B4280064814 +:10097000080002AAA88381456FC0044AFE80064988 +:100980000800864BF080A88336830100074806885C +:10099000FF01804561C0044AFE8006490800864B7D +:1009A000428012A9C183138307480688FF0126826B +:1009B0004700824551C03683FAFF07480044FB8058 +:1009C0004BC0044AFE8006490800864B018012AAEB +:1009D000A8833683010007480688FF01804506ABDF +:1009E00008003683070007491689008009CC368342 +:1009F000FCFF0749168A008008C8168A004005CC0B +:100A000004485D080449640832C00648FE01804578 +:100A10000044FF80044B5D083683080076C03683AF +:100A2000010007480688FF01068C00803683F9FF25 +:100A30000044FD8007B83683080067C01084EFC803 +:100A4000108418C8108422C810843EC8108453C86B +:100A50001084064AC90502E004485D0806800800C3 +:100A6000044964081681FFFF04865F0863D8064ABC +:100A7000BE0502E00649FCFF3683010007680688D0 +:100A8000FF010044EE800648850500E0064A0000AC +:100A900002449108044AFE8006490800864B4080C3 +:100AA00012AAA883064806000387076880650768BE +:100AB0008065C683010007488045064A000002445D +:100AC00064080648DC0000E0076907490648FF01A2 +:100AD000108906480000864B7E0880658165806528 +:100AE00080658065806580658065864B7E080FBC6B +:100AF000368301000AC03683FEFF07480688FF01DF +:100B00000044FA803683040000C00448640806806C +:100B1000FFFF15C80044640804495F0803445D08EA +:100B2000318403D80648A60200E004485C0800446B +:100B30005D08F8C004485C0800445D081FC0044814 +:100B40005E080044630804495F0803445D0831847B +:100B500003D80648180100E004485C0800445D081A +:100B60000648180100E004485C0800445D08044899 +:100B70005E080044630806489A0000E0064B31080E +:100B800034836808004536830300014506489A000F +:100B900000E00448FE8006490800864B018010A84A +:100BA00088830648FD01804506489A0000E0044A13 +:100BB0006708064B4080328307680649FFFF90971D +:100BC000074A268A010002C8C68F00800F4A06889D +:100BD000010003C80649F8FF12960448FE80064942 +:100BE0000800864B018010A888838245064A9A0037 +:100BF00002E006489A0000E000000000000000004B +:100C00000000001C01001000020000000031005133 +:100C100000000000000000000000000000000000D4 +:100C200000000000000000000000000000000000C4 +:100C3000001000104000FF110000001200124000E0 +:100C4000FF130000001400144000FF150000001600 +:100C500000164000FF170000001800184000FF19A0 +:100C60000000001A001A4000FF1B0000001C001CBE +:100C70004000FF1D0000001E001E4000FF1F00007E +:100C80000000000000000000000000000000000064 +:100C90000000000000000000000000000000000054 +:100CA0000000000000000000000000000000000044 +:100CB0000000000000000000000000000000000034 +:100CC0000000000000000000000000000000000420 +:100CD0000000000000000000000000000000000014 +:100CE0000000000000000000000000000000000004 +:100CF000000000000000000D0100000002000300E1 +:100D00000400050006000700080009000A000B00A7 +:100D10000C000D000E000F00100011001400130055 +:100D2000150016001700180019001A001B001C00FF +:100D30001D001F00200021002A002B002C002A008B +:100D40002B002C0022002200220022002200220080 +:100D50002200220022002200220022002200220083 +:100D6000220022002300230023002300230023006D +:100D7000230023002300230023002300230023005B +:100D8000230023003A003A003A003A003A003A00C1 +:100D90003A003A003A003A003A003A003A003A0083 +:100DA0003A003A003B003B003B003B003B003B006D +:100DB0003B003B003B003B003B003B003B003B005B +:100DC0003B003B00240025002200230024002200D9 +:100DD00026002600260026002600260026002600E3 +:100DE00026002600260026002600260026002600D3 +:100DF00027002700270027002700270027002700BB +:100E000027002700270027002700270027002700AA +:100E10003C003C003C003C003C003C003C003C00F2 +:100E20003C003C003C003C003C003C003C003C00E2 +:100E30003D003D003D003D003D003D003D003D00CA +:100E40003D003D003D003D003D003D003D003D00BA +:100E50002800290026002700280026002D00300049 +:100E600031002E002F0032003300350012001E002A +:100E70003700360039003800000000000000000094 +:100E80000000000000000000000000000000000062 +:100E90000000000000000000000000000000000052 +:100EA0000000000000000000000000000000000042 +:100EB0000000000000000000000000000000000032 +:100EC0000000000000000000000000000000000022 +:100ED0000000000000000000000000000000000012 +:100EE0000000000000000000000000000000000002 +:100EF00000000000000000000000000000000000F2 +:100F000000000000000000000000000000000000E1 +:100F100000000000000000000000000000000000D1 +:100F200000000000000000000000000000000000C1 +:100F300000000000000000000000000000000000B1 +:100F400000000000000000000000000000000000A1 +:100F50000000000000000000000000000000000091 +:100F60000000000000000000000000000000000081 +:100F70000000000000000000000000000000000071 +:100F80000000000000000000000000000000000061 +:100F90000000000000000000000000000000000051 +:020FA00000004F +:00000001FF diff --git a/include/linux/usb/drd.h b/include/linux/usb/drd.h index 71c64dcd93e..6a9c3ce5635 100644 --- a/include/linux/usb/drd.h +++ b/include/linux/usb/drd.h @@ -22,6 +22,13 @@ struct usb_drd_gadget { struct usb_drd_setup *gadget_setup; }; +enum omap_dwc3_vbus_id_status { + OMAP_DWC3_ID_FLOAT, + OMAP_DWC3_ID_GROUND, + OMAP_DWC3_VBUS_OFF, + OMAP_DWC3_VBUS_VALID, +}; + #define DRD_UNREGISTERED 0x0 #define DRD_DEVICE_REGISTERED 0x1 #define DRD_HOST_REGISTERED 0x2 @@ -45,6 +52,8 @@ int usb_drd_stop_hcd(struct device *parent); int usb_drd_start_udc(struct device *parent); int usb_drd_stop_udc(struct device *parent); int usb_drd_get_state(struct device *parent); +int dwc3_omap_usbvbus_id_handler(struct device *dev, + enum omap_dwc3_vbus_id_status status); #else static inline int usb_drd_release(struct device *parent) { return 0; } diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h index d26bcff63cf..57d04c77084 100644 --- a/include/uapi/linux/videodev2.h +++ b/include/uapi/linux/videodev2.h @@ -69,7 +69,7 @@ * Common stuff for both V4L1 and V4L2 * Moved from videodev.h */ -#define VIDEO_MAX_FRAME 32 +#define VIDEO_MAX_FRAME 128 #define VIDEO_MAX_PLANES 8 /* |