* [PATCH 5/9] usb: add phy connection by phy-mode
From: Michael Grzeschik @ 2012-11-14 16:19 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1352909950-32555-1-git-send-email-m.grzeschik@pengutronix.de>
This patch makes it possible to set the connection of the usbphy to the
soc. It is derived from the oftree bindings for the ethernetphy and adds
similar helperfunctions.
Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
---
drivers/of/Kconfig | 4 ++++
drivers/of/Makefile | 1 +
drivers/of/of_usbphy.c | 49 +++++++++++++++++++++++++++++++++++++++++++++
include/linux/of_usbphy.h | 15 ++++++++++++++
include/linux/usb/phy.h | 8 ++++++++
5 files changed, 77 insertions(+)
create mode 100644 drivers/of/of_usbphy.c
create mode 100644 include/linux/of_usbphy.h
diff --git a/drivers/of/Kconfig b/drivers/of/Kconfig
index dfba3e6..28f99fb 100644
--- a/drivers/of/Kconfig
+++ b/drivers/of/Kconfig
@@ -67,6 +67,10 @@ config OF_MDIO
help
OpenFirmware MDIO bus (Ethernet PHY) accessors
+config OF_USBPHY
+ depends on USB
+ def_bool y
+
config OF_PCI
def_tristate PCI
depends on PCI
diff --git a/drivers/of/Makefile b/drivers/of/Makefile
index e027f44..fdcaf51 100644
--- a/drivers/of/Makefile
+++ b/drivers/of/Makefile
@@ -6,6 +6,7 @@ obj-$(CONFIG_OF_IRQ) += irq.o
obj-$(CONFIG_OF_DEVICE) += device.o platform.o
obj-$(CONFIG_OF_I2C) += of_i2c.o
obj-$(CONFIG_OF_NET) += of_net.o
+obj-$(CONFIG_OF_USBPHY) += of_usbphy.o
obj-$(CONFIG_OF_SELFTEST) += selftest.o
obj-$(CONFIG_OF_MDIO) += of_mdio.o
obj-$(CONFIG_OF_PCI) += of_pci.o
diff --git a/drivers/of/of_usbphy.c b/drivers/of/of_usbphy.c
new file mode 100644
index 0000000..2e71f7b
--- /dev/null
+++ b/drivers/of/of_usbphy.c
@@ -0,0 +1,49 @@
+/*
+ * OF helpers for network devices.
+ *
+ * This file is released under the GPLv2
+ *
+ * Initially copied out of drivers/of/of_net.c
+ */
+#include <linux/etherdevice.h>
+#include <linux/kernel.h>
+#include <linux/of_usbphy.h>
+#include <linux/usb/phy.h>
+#include <linux/export.h>
+
+/**
+ * It maps 'enum usb_phy_interface' found in include/linux/usb/phy.h
+ * into the device tree binding of 'phy-mode', so that USB
+ * device driver can get phy interface from device tree.
+ */
+static const char *usbphy_modes[] = {
+ [USBPHY_INTERFACE_MODE_NA] = "",
+ [USBPHY_INTERFACE_MODE_UTMI] = "utmi",
+ [USBPHY_INTERFACE_MODE_UTMIW] = "utmiw",
+ [USBPHY_INTERFACE_MODE_ULPI] = "ulpi",
+ [USBPHY_INTERFACE_MODE_SERIAL] = "fsls",
+};
+
+/**
+ * of_get_phy_mode - Get phy mode for given device_node
+ * @np: Pointer to the given device_node
+ *
+ * The function gets phy interface string from property 'phy-mode',
+ * and return its index in phy_modes table, or errno in error case.
+ */
+const int of_get_usbphy_mode(struct device_node *np)
+{
+ const char *pm;
+ int err, i;
+
+ err = of_property_read_string(np, "phy-mode", &pm);
+ if (err < 0)
+ return err;
+
+ for (i = 0; i < ARRAY_SIZE(usbphy_modes); i++)
+ if (!strcasecmp(pm, usbphy_modes[i]))
+ return i;
+
+ return -ENODEV;
+}
+EXPORT_SYMBOL_GPL(of_get_usbphy_mode);
diff --git a/include/linux/of_usbphy.h b/include/linux/of_usbphy.h
new file mode 100644
index 0000000..9a4132d
--- /dev/null
+++ b/include/linux/of_usbphy.h
@@ -0,0 +1,15 @@
+/*
+ * OF helpers for usb devices.
+ *
+ * This file is released under the GPLv2
+ */
+
+#ifndef __LINUX_OF_USBPHY_H
+#define __LINUX_OF_USBPHY_H
+
+#ifdef CONFIG_OF_USBPHY
+#include <linux/of.h>
+extern const int of_get_usbphy_mode(struct device_node *np);
+#endif
+
+#endif /* __LINUX_OF_USBPHY_H */
diff --git a/include/linux/usb/phy.h b/include/linux/usb/phy.h
index a29ae1e..150eb69 100644
--- a/include/linux/usb/phy.h
+++ b/include/linux/usb/phy.h
@@ -12,6 +12,14 @@
#include <linux/notifier.h>
#include <linux/usb.h>
+enum usb_phy_interface {
+ USBPHY_INTERFACE_MODE_NA,
+ USBPHY_INTERFACE_MODE_UTMI,
+ USBPHY_INTERFACE_MODE_UTMIW,
+ USBPHY_INTERFACE_MODE_ULPI,
+ USBPHY_INTERFACE_MODE_SERIAL,
+};
+
enum usb_phy_events {
USB_EVENT_NONE, /* no events or cable disconnected */
USB_EVENT_VBUS, /* vbus valid event */
--
1.7.10.4
^ permalink raw reply related
* [PATCH 4/9] usb: chipidea: ci13xxx-imx: add "dr_mode" property to device tree bindings
From: Michael Grzeschik @ 2012-11-14 16:19 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1352909950-32555-1-git-send-email-m.grzeschik@pengutronix.de>
From: Marc Kleine-Budde <mkl@pengutronix.de>
Its necessary to limit a hostonly soc to its single role, since
debugging has shown that reading on the "CAP_DCCPARAMS" register inside
a host-only port, what ci_hdrc_gadget_init does, can lead to an
instable behaviour of the IC.
This patch allows the device tree to limit the chipidea to host or
peripheral mode only. Its uses the oftree name dr_mode, which is already
mainline and used i.e. in fsl-mph-dr-of.
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
---
.../devicetree/bindings/usb/ci13xxx-imx.txt | 4 ++
arch/arm/boot/dts/imx28.dtsi | 2 +
drivers/usb/chipidea/ci13xxx_imx.c | 2 +
drivers/usb/chipidea/core.c | 39 +++++++++++++++++---
include/linux/usb/chipidea.h | 7 ++++
5 files changed, 48 insertions(+), 6 deletions(-)
diff --git a/Documentation/devicetree/bindings/usb/ci13xxx-imx.txt b/Documentation/devicetree/bindings/usb/ci13xxx-imx.txt
index 5778b9c..c83aea4 100644
--- a/Documentation/devicetree/bindings/usb/ci13xxx-imx.txt
+++ b/Documentation/devicetree/bindings/usb/ci13xxx-imx.txt
@@ -4,6 +4,9 @@ Required properties:
- compatible: Should be "fsl,imx27-usb"
- reg: Should contain registers location and length
- interrupts: Should contain controller interrupt
+- dr_mode: indicates the working mode for "fsl,imx27-usb" compatible
+ controllers. Can be "host", "peripheral", or "otg". Defaults to
+ "otg" if not defined.
Optional properties:
- fsl,usbphy: phandler of usb phy that connects to the only one port
@@ -20,4 +23,5 @@ usb at 02184000 { /* USB OTG */
fsl,usbphy = <&usbphy1>;
fsl,usbmisc = <&usbmisc 0>;
disable-over-current;
+ dr_mode= "otg";
};
diff --git a/arch/arm/boot/dts/imx28.dtsi b/arch/arm/boot/dts/imx28.dtsi
index 55c57ea..2a6dd21 100644
--- a/arch/arm/boot/dts/imx28.dtsi
+++ b/arch/arm/boot/dts/imx28.dtsi
@@ -874,6 +874,7 @@
clocks = <&clks 60>;
fsl,usbphy = <&usbphy0>;
status = "disabled";
+ dr_mode = "otg";
};
usb1: usb at 80090000 {
@@ -883,6 +884,7 @@
clocks = <&clks 61>;
fsl,usbphy = <&usbphy1>;
status = "disabled";
+ dr_mode = "host";
};
dflpt at 800c0000 {
diff --git a/drivers/usb/chipidea/ci13xxx_imx.c b/drivers/usb/chipidea/ci13xxx_imx.c
index 7b99c96..ee4dab0 100644
--- a/drivers/usb/chipidea/ci13xxx_imx.c
+++ b/drivers/usb/chipidea/ci13xxx_imx.c
@@ -237,6 +237,8 @@ static int __devinit ci13xxx_imx_probe(struct platform_device *pdev)
}
}
+ ci13xxx_get_dr_mode(pdev->dev.of_node, pdata);
+
plat_ci = ci13xxx_add_device(&pdev->dev,
pdev->resource, pdev->num_resources,
pdata);
diff --git a/drivers/usb/chipidea/core.c b/drivers/usb/chipidea/core.c
index b50b77a..3e3e159 100644
--- a/drivers/usb/chipidea/core.c
+++ b/drivers/usb/chipidea/core.c
@@ -63,6 +63,7 @@
#include <linux/kernel.h>
#include <linux/slab.h>
#include <linux/pm_runtime.h>
+#include <linux/of_platform.h>
#include <linux/usb/ch9.h>
#include <linux/usb/gadget.h>
#include <linux/usb/otg.h>
@@ -521,6 +522,23 @@ void ci13xxx_remove_device(struct platform_device *pdev)
}
EXPORT_SYMBOL_GPL(ci13xxx_remove_device);
+void ci13xxx_get_dr_mode(struct device_node *of_node, struct ci13xxx_platform_data *pdata)
+{
+ const unsigned char *dr_mode;
+
+ dr_mode = of_get_property(of_node, "dr_mode", NULL);
+ if (!dr_mode)
+ return;
+
+ if (!strcmp(dr_mode, "host"))
+ pdata->flags |= CI13XXX_DR_MODE_HOST;
+ else if (!strcmp(dr_mode, "peripheral"))
+ pdata->flags |= CI13XXX_DR_MODE_PERIPHERAL;
+ else if (!strcmp(dr_mode, "otg"))
+ pdata->flags |= CI13XXX_DR_MODE_HOST | CI13XXX_DR_MODE_PERIPHERAL;
+}
+EXPORT_SYMBOL_GPL(ci13xxx_get_dr_mode);
+
static int __devinit ci_hdrc_probe(struct platform_device *pdev)
{
struct device *dev = &pdev->dev;
@@ -591,13 +609,22 @@ static int __devinit ci_hdrc_probe(struct platform_device *pdev)
hw_write(ci, OP_OTGSC, OTGSC_INT_STATUS_BITS, OTGSC_INT_STATUS_BITS);
/* initialize role(s) before the interrupt is requested */
- ret = ci_hdrc_host_init(ci);
- if (ret)
- dev_info(dev, "doesn't support host\n");
+ /* default to otg */
+ if (!(ci->platdata->flags & CI13XXX_DR_MODE_MASK))
+ ci->platdata->flags |= CI13XXX_DR_MODE_HOST |
+ CI13XXX_DR_MODE_PERIPHERAL;
+
+ if (ci->platdata->flags & CI13XXX_DR_MODE_HOST) {
+ ret = ci_hdrc_host_init(ci);
+ if (ret)
+ dev_info(dev, "doesn't support host\n");
+ }
- ret = ci_hdrc_gadget_init(ci);
- if (ret)
- dev_info(dev, "doesn't support gadget\n");
+ if (ci->platdata->flags & CI13XXX_DR_MODE_PERIPHERAL) {
+ ret = ci_hdrc_gadget_init(ci);
+ if (ret)
+ dev_info(dev, "doesn't support gadget\n");
+ }
if (!ci->roles[CI_ROLE_HOST] && !ci->roles[CI_ROLE_GADGET]) {
dev_err(dev, "no supported roles\n");
diff --git a/include/linux/usb/chipidea.h b/include/linux/usb/chipidea.h
index 544825d..906d259 100644
--- a/include/linux/usb/chipidea.h
+++ b/include/linux/usb/chipidea.h
@@ -19,6 +19,10 @@ struct ci13xxx_platform_data {
#define CI13XXX_REQUIRE_TRANSCEIVER BIT(1)
#define CI13XXX_PULLUP_ON_VBUS BIT(2)
#define CI13XXX_DISABLE_STREAMING BIT(3)
+#define CI13XXX_DR_MODE_HOST BIT(4)
+#define CI13XXX_DR_MODE_PERIPHERAL BIT(5)
+#define CI13XXX_DR_MODE_MASK \
+ (CI13XXX_DR_MODE_HOST | CI13XXX_DR_MODE_PERIPHERAL)
#define CI13XXX_CONTROLLER_RESET_EVENT 0
#define CI13XXX_CONTROLLER_STOPPED_EVENT 1
@@ -35,4 +39,7 @@ struct platform_device *ci13xxx_add_device(struct device *dev,
/* Remove ci13xxx device */
void ci13xxx_remove_device(struct platform_device *pdev);
+/* Parse of-tree "dr_mode" property */
+void ci13xxx_get_dr_mode(struct device_node *of_node, struct ci13xxx_platform_data *pdata);
+
#endif
--
1.7.10.4
^ permalink raw reply related
* [PATCH 3/9] usb: chipidea: ci13xxx-imx: create dynamic platformdata
From: Michael Grzeschik @ 2012-11-14 16:19 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1352909950-32555-1-git-send-email-m.grzeschik@pengutronix.de>
This patch removes the limitation of having only one instance of the
ci13xxx-imx platformdata and makes different configurations possible.
Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
---
drivers/usb/chipidea/ci13xxx_imx.c | 27 ++++++++++++++++-----------
1 file changed, 16 insertions(+), 11 deletions(-)
diff --git a/drivers/usb/chipidea/ci13xxx_imx.c b/drivers/usb/chipidea/ci13xxx_imx.c
index 570aedf..7b99c96 100644
--- a/drivers/usb/chipidea/ci13xxx_imx.c
+++ b/drivers/usb/chipidea/ci13xxx_imx.c
@@ -87,15 +87,6 @@ EXPORT_SYMBOL_GPL(usbmisc_get_init_data);
/* End of common functions shared by usbmisc drivers*/
-static struct ci13xxx_platform_data ci13xxx_imx_platdata __devinitdata = {
- .name = "ci13xxx_imx",
- .flags = CI13XXX_REQUIRE_TRANSCEIVER |
- CI13XXX_PULLUP_ON_VBUS |
- CI13XXX_DISABLE_STREAMING |
- CI13XXX_REGS_SHARED,
- .capoffset = DEF_CAPOFFSET,
-};
-
static int ci13xxx_otg_set_vbus(struct usb_otg *otg, bool enabled)
{
@@ -117,6 +108,7 @@ static int ci13xxx_otg_set_vbus(struct usb_otg *otg, bool enabled)
static int __devinit ci13xxx_imx_probe(struct platform_device *pdev)
{
struct ci13xxx_imx_data *data;
+ struct ci13xxx_platform_data *pdata;
struct platform_device *plat_ci, *phy_pdev;
struct ci13xxx *ci;
struct device_node *phy_np;
@@ -129,6 +121,19 @@ static int __devinit ci13xxx_imx_probe(struct platform_device *pdev)
&& !usbmisc_ops)
return -EPROBE_DEFER;
+ pdata = devm_kzalloc(&pdev->dev, sizeof(*pdata), GFP_KERNEL);
+ if (!pdata) {
+ dev_err(&pdev->dev, "Failed to allocate CI13xxx-IMX pdata!\n");
+ return -ENOMEM;
+ }
+
+ pdata->name = "ci13xxx_imx";
+ pdata->capoffset = DEF_CAPOFFSET;
+ pdata->flags = CI13XXX_REQUIRE_TRANSCEIVER |
+ CI13XXX_PULLUP_ON_VBUS |
+ CI13XXX_DISABLE_STREAMING |
+ CI13XXX_REGS_SHARED,
+
data = devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL);
if (!data) {
dev_err(&pdev->dev, "Failed to allocate CI13xxx-IMX data!\n");
@@ -209,7 +214,7 @@ static int __devinit ci13xxx_imx_probe(struct platform_device *pdev)
else
reg_vbus = NULL;
- ci13xxx_imx_platdata.phy = data->phy;
+ pdata->phy = data->phy;
if (!pdev->dev.dma_mask) {
pdev->dev.dma_mask = devm_kzalloc(&pdev->dev,
@@ -234,7 +239,7 @@ static int __devinit ci13xxx_imx_probe(struct platform_device *pdev)
plat_ci = ci13xxx_add_device(&pdev->dev,
pdev->resource, pdev->num_resources,
- &ci13xxx_imx_platdata);
+ pdata);
if (IS_ERR(plat_ci)) {
ret = PTR_ERR(plat_ci);
dev_err(&pdev->dev,
--
1.7.10.4
^ permalink raw reply related
* [PATCH 2/9] usb: chipidea: ci13xxx_imx: add 2nd and 3rd clock to support imx5x and newer
From: Michael Grzeschik @ 2012-11-14 16:19 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1352909950-32555-1-git-send-email-m.grzeschik@pengutronix.de>
This patch adds support for a second and third clock to the chipidea driver. On
modern freescale ARM cores like the imx51, imx53 and imx6q three clocks ("ahb",
"ipg" and "per") must be enabled in order to access the USB core.
In the original driver, the clock was requested without specifying the
connection id, further all mainline ARM archs with support for the chipidea
core (imx23, imx28) register their USB clock without a connection id.
This patch first renames the existing clk variable to clk_ahb. The connection
id "ahb" is added to the devm_clk_get() call. Then the clocks "ipg" and "per"
are requested. As all archs don't specify a connection id, all clk_get return
the same clock. This ensures compatibility to existing USB support and adds
support for imx5x at the same time.
This patch has been tested on imx28 and on imx53 with seperate "ahb", "ipg"
and "per" clocks.
Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
---
drivers/usb/chipidea/ci13xxx_imx.c | 54 ++++++++++++++++++++++++++++++------
1 file changed, 45 insertions(+), 9 deletions(-)
diff --git a/drivers/usb/chipidea/ci13xxx_imx.c b/drivers/usb/chipidea/ci13xxx_imx.c
index 935de97..570aedf 100644
--- a/drivers/usb/chipidea/ci13xxx_imx.c
+++ b/drivers/usb/chipidea/ci13xxx_imx.c
@@ -32,7 +32,9 @@ struct ci13xxx_imx_data {
struct device_node *phy_np;
struct usb_phy *phy;
struct platform_device *ci_pdev;
- struct clk *clk;
+ struct clk *clk_ahb;
+ struct clk *clk_ipg;
+ struct clk *clk_per;
struct regulator *reg_vbus;
};
@@ -144,20 +146,48 @@ static int __devinit ci13xxx_imx_probe(struct platform_device *pdev)
dev_warn(&pdev->dev, "pinctrl get/select failed, err=%ld\n",
PTR_ERR(pinctrl));
- data->clk = devm_clk_get(&pdev->dev, NULL);
- if (IS_ERR(data->clk)) {
+ data->clk_ahb = devm_clk_get(&pdev->dev, "ahb");
+ if (IS_ERR(data->clk_ahb)) {
dev_err(&pdev->dev,
- "Failed to get clock, err=%ld\n", PTR_ERR(data->clk));
- return PTR_ERR(data->clk);
+ "Failed to get ahb clock, err=%ld\n", PTR_ERR(data->clk_ahb));
+ return PTR_ERR(data->clk_ahb);
}
- ret = clk_prepare_enable(data->clk);
+ data->clk_ipg = devm_clk_get(&pdev->dev, "ipg");
+ if (IS_ERR(data->clk_ipg)) {
+ dev_err(&pdev->dev,
+ "Failed to get ipg clock, err=%ld\n", PTR_ERR(data->clk_ipg));
+ return PTR_ERR(data->clk_ipg);
+ }
+
+ data->clk_per = devm_clk_get(&pdev->dev, "per");
+ if (IS_ERR(data->clk_per)) {
+ dev_err(&pdev->dev,
+ "Failed to get per clock, err=%ld\n", PTR_ERR(data->clk_per));
+ return PTR_ERR(data->clk_per);
+ }
+
+ ret = clk_prepare_enable(data->clk_ahb);
if (ret) {
dev_err(&pdev->dev,
- "Failed to prepare or enable clock, err=%d\n", ret);
+ "Failed to prepare or enable ahb clock, err=%d\n", ret);
return ret;
}
+ ret = clk_prepare_enable(data->clk_ipg);
+ if (ret) {
+ dev_err(&pdev->dev,
+ "Failed to prepare or enable ipg clock, err=%d\n", ret);
+ goto err_ipg_failed;
+ }
+
+ ret = clk_prepare_enable(data->clk_per);
+ if (ret) {
+ dev_err(&pdev->dev,
+ "Failed to prepare or enable per clock, err=%d\n", ret);
+ goto err_per_failed;
+ }
+
phy_np = of_parse_phandle(pdev->dev.of_node, "fsl,usbphy", 0);
if (phy_np) {
data->phy_np = phy_np;
@@ -246,7 +276,11 @@ static int __devinit ci13xxx_imx_probe(struct platform_device *pdev)
put_np:
if (phy_np)
of_node_put(phy_np);
- clk_disable_unprepare(data->clk);
+ clk_disable_unprepare(data->clk_per);
+err_per_failed:
+ clk_disable_unprepare(data->clk_ipg);
+err_ipg_failed:
+ clk_disable_unprepare(data->clk_ahb);
return ret;
}
@@ -268,7 +302,9 @@ static int __devexit ci13xxx_imx_remove(struct platform_device *pdev)
of_node_put(data->phy_np);
- clk_disable_unprepare(data->clk);
+ clk_disable_unprepare(data->clk_per);
+ clk_disable_unprepare(data->clk_ipg);
+ clk_disable_unprepare(data->clk_ahb);
platform_set_drvdata(pdev, NULL);
--
1.7.10.4
^ permalink raw reply related
* [PATCH 1/9] usb: chipidea: pci: mark platformdata as static and __devinitdata
From: Michael Grzeschik @ 2012-11-14 16:19 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1352909950-32555-1-git-send-email-m.grzeschik@pengutronix.de>
From: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
---
drivers/usb/chipidea/ci13xxx_pci.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/usb/chipidea/ci13xxx_pci.c b/drivers/usb/chipidea/ci13xxx_pci.c
index 918e149..97d25c8 100644
--- a/drivers/usb/chipidea/ci13xxx_pci.c
+++ b/drivers/usb/chipidea/ci13xxx_pci.c
@@ -23,17 +23,17 @@
/******************************************************************************
* PCI block
*****************************************************************************/
-struct ci13xxx_platform_data pci_platdata = {
+static struct ci13xxx_platform_data pci_platdata __devinitdata = {
.name = UDC_DRIVER_NAME,
.capoffset = DEF_CAPOFFSET,
};
-struct ci13xxx_platform_data langwell_pci_platdata = {
+static struct ci13xxx_platform_data langwell_pci_platdata __devinitdata = {
.name = UDC_DRIVER_NAME,
.capoffset = 0,
};
-struct ci13xxx_platform_data penwell_pci_platdata = {
+static struct ci13xxx_platform_data penwell_pci_platdata __devinitdata = {
.name = UDC_DRIVER_NAME,
.capoffset = 0,
.power_budget = 200,
--
1.7.10.4
^ permalink raw reply related
* [PATCH 0/9] chipidea fixes and features
From: Michael Grzeschik @ 2012-11-14 16:19 UTC (permalink / raw)
To: linux-arm-kernel
Marc Kleine-Budde (2):
usb: chipidea: pci: mark platformdata as static and __devinitdata
usb: chipidea: ci13xxx-imx: add "dr_mode" property to device tree bindings
Michael Grzeschik (7):
usb: chipidea: ci13xxx_imx: add 2nd and 3rd clock to support imx5x and newer
usb: chipidea: ci13xxx-imx: create dynamic platformdata
usb: add phy connection by phy-mode
usb: chipidea: add PTW and PTS handling
usb: chipidea: udc: add force-full-speed option
usb: chipidea: udc: remove unlocked ep_queue which can lead to an race
usb: chipidea: udc: configure iso endpoints
.../devicetree/bindings/usb/ci13xxx-imx.txt | 4 +
arch/arm/boot/dts/imx28.dtsi | 2 +
drivers/of/Kconfig | 4 +
drivers/of/Makefile | 1 +
drivers/of/of_usbphy.c | 49 ++++++++
drivers/usb/chipidea/bits.h | 4 +
drivers/usb/chipidea/ci.h | 2 +
drivers/usb/chipidea/ci13xxx_imx.c | 84 ++++++++++---
drivers/usb/chipidea/ci13xxx_pci.c | 6 +-
drivers/usb/chipidea/core.c | 91 +++++++++++++-
drivers/usb/chipidea/host.c | 4 +
drivers/usb/chipidea/udc.c | 127 ++++++++++++--------
include/linux/of_usbphy.h | 15 +++
include/linux/usb/chipidea.h | 17 +++
include/linux/usb/phy.h | 8 ++
15 files changed, 337 insertions(+), 81 deletions(-)
create mode 100644 drivers/of/of_usbphy.c
create mode 100644 include/linux/of_usbphy.h
--
1.7.10.4
^ permalink raw reply
* [PATCH 7/8] ARM: OMAP: Remove unnecessary inclusion of dmtimer.h
From: Jon Hunter @ 2012-11-14 15:53 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1352830403-1706-8-git-send-email-jon-hunter@ti.com>
On 11/13/2012 12:13 PM, Jon Hunter wrote:
> Some source files are including dmtimer.h but not actually using any dmtimer
> definitions or functions. Therefore, remove the inclusion dmtimer.h from these
> source files.
>
> Signed-off-by: Jon Hunter <jon-hunter@ti.com>
> ---
> arch/arm/mach-omap1/timer32k.c | 1 -
> arch/arm/mach-omap2/omap_hwmod_2420_data.c | 1 -
> arch/arm/mach-omap2/omap_hwmod_2430_data.c | 1 -
> arch/arm/mach-omap2/pm-debug.c | 1 -
> drivers/staging/tidspbridge/core/ue_deh.c | 1 -
> 5 files changed, 5 deletions(-)
>
> diff --git a/arch/arm/mach-omap1/timer32k.c b/arch/arm/mach-omap1/timer32k.c
> index 8936819..41152fa 100644
> --- a/arch/arm/mach-omap1/timer32k.c
> +++ b/arch/arm/mach-omap1/timer32k.c
> @@ -51,7 +51,6 @@
> #include <asm/mach/time.h>
>
> #include <plat/counter-32k.h>
> -#include <plat/dmtimer.h>
>
> #include <mach/hardware.h>
>
> diff --git a/arch/arm/mach-omap2/omap_hwmod_2420_data.c b/arch/arm/mach-omap2/omap_hwmod_2420_data.c
> index a8b3368..e8efe3d 100644
> --- a/arch/arm/mach-omap2/omap_hwmod_2420_data.c
> +++ b/arch/arm/mach-omap2/omap_hwmod_2420_data.c
> @@ -17,7 +17,6 @@
> #include <linux/platform_data/spi-omap2-mcspi.h>
>
> #include <plat-omap/dma-omap.h>
> -#include <plat/dmtimer.h>
>
> #include "omap_hwmod.h"
> #include "l3_2xxx.h"
> diff --git a/arch/arm/mach-omap2/omap_hwmod_2430_data.c b/arch/arm/mach-omap2/omap_hwmod_2430_data.c
> index dc768c5..32d17e3 100644
> --- a/arch/arm/mach-omap2/omap_hwmod_2430_data.c
> +++ b/arch/arm/mach-omap2/omap_hwmod_2430_data.c
> @@ -18,7 +18,6 @@
> #include <linux/platform_data/spi-omap2-mcspi.h>
>
> #include <plat-omap/dma-omap.h>
> -#include <plat/dmtimer.h>
>
> #include "omap_hwmod.h"
> #include "mmc.h"
> diff --git a/arch/arm/mach-omap2/pm-debug.c b/arch/arm/mach-omap2/pm-debug.c
> index 3cf4fdf..e2c291f 100644
> --- a/arch/arm/mach-omap2/pm-debug.c
> +++ b/arch/arm/mach-omap2/pm-debug.c
> @@ -30,7 +30,6 @@
> #include "clock.h"
> #include "powerdomain.h"
> #include "clockdomain.h"
> -#include <plat/dmtimer.h>
> #include "omap-pm.h"
>
> #include "soc.h"
> diff --git a/drivers/staging/tidspbridge/core/ue_deh.c b/drivers/staging/tidspbridge/core/ue_deh.c
> index 3d28b23..6aea6f1 100644
> --- a/drivers/staging/tidspbridge/core/ue_deh.c
> +++ b/drivers/staging/tidspbridge/core/ue_deh.c
> @@ -19,7 +19,6 @@
>
> #include <linux/kernel.h>
> #include <linux/interrupt.h>
> -#include <plat/dmtimer.h>
>
> #include <dspbridge/dbdefs.h>
> #include <dspbridge/dspdeh.h>
Hi Omar, I should have had you in copy on this one. Are you ok with the
removal of the above dmtimer.h include? It does not appear that this
file needs to include dmtimer.h.
Is it ok for this to go through Tony's tree? If so, care to ACK?
Cheers
Jon
^ permalink raw reply
* [PATCH] arm: mvebu: add LED support in defconfig
From: Thomas Petazzoni @ 2012-11-14 15:51 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1352908292-500-1-git-send-email-thomas.petazzoni@free-electrons.com>
The recently added support for the PlatHome Openblocks AX3 platform
requires the LED framework, so let's add it to mvebu_defconfig.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Acked-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
Tested-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
---
This is 3.8 material
---
arch/arm/configs/mvebu_defconfig | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/arch/arm/configs/mvebu_defconfig b/arch/arm/configs/mvebu_defconfig
index 3458752..b7ca617 100644
--- a/arch/arm/configs/mvebu_defconfig
+++ b/arch/arm/configs/mvebu_defconfig
@@ -26,6 +26,11 @@ CONFIG_SERIAL_OF_PLATFORM=y
CONFIG_GPIOLIB=y
CONFIG_GPIO_SYSFS=y
# CONFIG_USB_SUPPORT is not set
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+CONFIG_LEDS_GPIO=y
+CONFIG_LEDS_TRIGGERS=y
+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
# CONFIG_IOMMU_SUPPORT is not set
CONFIG_EXT2_FS=y
CONFIG_EXT3_FS=y
--
1.7.9.5
^ permalink raw reply related
* [GIT PULL] Marvell defconfig changes for v3.8 merge window
From: Thomas Petazzoni @ 2012-11-14 15:51 UTC (permalink / raw)
To: linux-arm-kernel
The following changes since commit 77b67063bb6bce6d475e910d3b886a606d0d91f7:
Linux 3.7-rc5 (2012-11-11 13:44:33 +0100)
are available in the git repository at:
git at github.com:MISL-EBU-System-SW/mainline-public.git tags/marvell-defconfig-for-3.8
for you to fetch changes up to 7f84d1cd4c7efd8de13c6707acc0bd3bc5f3efed:
arm: mvebu: add LED support in defconfig (2012-11-14 16:32:38 +0100)
----------------------------------------------------------------
Marvell defconfig changes for 3.8
----------------------------------------------------------------
Thomas Petazzoni (1):
arm: mvebu: add LED support in defconfig
arch/arm/configs/mvebu_defconfig | 5 +++++
1 file changed, 5 insertions(+)
^ permalink raw reply
* [PATCH 2/2] arm: mvebu: support for the Globalscale Mirabox board
From: Thomas Petazzoni @ 2012-11-14 15:47 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1352908022-32628-1-git-send-email-thomas.petazzoni@free-electrons.com>
From: Gregory CLEMENT <gregory.clement@free-electrons.com>
This platform, available from Globalscale has an Armada 370. For now,
only the serial port is supported. Support for network, USB and other
peripherals will be added as drivers for them become available for
Armada 370 in mainline.
Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
This is 3.8 material.
Changes from original version posted by Gregory:
* Renamed .dts file to armada-370-mirabox.dts
* Change compatible string to 'globalscale,mirabox'
* Remove compatible string from armada-370-xp.c
* Removed references to MBX0001
---
arch/arm/boot/dts/Makefile | 1 +
arch/arm/boot/dts/armada-370-mirabox.dts | 37 ++++++++++++++++++++++++++++++
2 files changed, 38 insertions(+)
create mode 100644 arch/arm/boot/dts/armada-370-mirabox.dts
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 718584d..32d1d40 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -44,6 +44,7 @@ dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-dns320.dtb \
dtb-$(CONFIG_ARCH_MSM) += msm8660-surf.dtb \
msm8960-cdp.dtb
dtb-$(CONFIG_ARCH_MVEBU) += armada-370-db.dtb \
+ armada-370-mirabox.dtb \
armada-xp-db.dtb \
armada-xp-openblocks-ax3-4.dtb
dtb-$(CONFIG_ARCH_MXC) += imx51-babbage.dtb \
diff --git a/arch/arm/boot/dts/armada-370-mirabox.dts b/arch/arm/boot/dts/armada-370-mirabox.dts
new file mode 100644
index 0000000..9eef8dd
--- /dev/null
+++ b/arch/arm/boot/dts/armada-370-mirabox.dts
@@ -0,0 +1,37 @@
+/*
+ * Device Tree file for Globalscale Mirabox
+ *
+ * Gregory CLEMENT <gregory.clement@free-electrons.com>
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2. This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ */
+
+/dts-v1/;
+/include/ "armada-370.dtsi"
+
+/ {
+ model = "Globalscale Mirabox";
+ compatible = "globalscale,mirabox", "marvell,armada370", "marvell,armada-370-xp";
+
+ chosen {
+ bootargs = "console=ttyS0,115200 earlyprintk";
+ };
+
+ memory {
+ device_type = "memory";
+ reg = <0x00000000 0x20000000>; /* 512 MB */
+ };
+
+ soc {
+ serial at d0012000 {
+ clock-frequency = <200000000>;
+ status = "okay";
+ };
+ timer at d0020300 {
+ clock-frequency = <600000000>;
+ status = "okay";
+ };
+ };
+};
--
1.7.9.5
^ permalink raw reply related
* [PATCH 1/2] arm: mvebu: support for the PlatHome OpenBlocks AX3-4 board
From: Thomas Petazzoni @ 2012-11-14 15:47 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1352908022-32628-1-git-send-email-thomas.petazzoni@free-electrons.com>
This platform, available in Japan from PlatHome, has a dual-core
Armada XP, the MV78260. For now, only the two serial ports and the
three front LEDs are supported. Support for SMP, network, SATA, USB
and other peripherals will be added as drivers for them become
available for Armada XP in mainline.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Acked-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
Tested-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
---
This is 3.8 material.
Changes since v2:
* Renamed the .dts file to armada-xp-openblocks-ax3-4.dts
* Removed the compatible string from armada-370-xp.c (which now only
lists the common SoC compatible string)
Changes since v1:
* Renamed the board to OpenBlocks AX3-4, since there is a variant
called AX3-2 which has less RAM, and no mini PCIe port. Requested
by Andrew Lunn.
* Fix the amount of memory to 3 GB. In fact, the board has 1 GB
soldered, and 2 GB in a SODIMM slot (which is therefore
removable). But as the board is delivered as is, we'll assume it
has 3 GB of memory by default.
---
arch/arm/boot/dts/Makefile | 3 +-
arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts | 69 ++++++++++++++++++++++
2 files changed, 71 insertions(+), 1 deletion(-)
create mode 100644 arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index f37cf9f..718584d 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -44,7 +44,8 @@ dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-dns320.dtb \
dtb-$(CONFIG_ARCH_MSM) += msm8660-surf.dtb \
msm8960-cdp.dtb
dtb-$(CONFIG_ARCH_MVEBU) += armada-370-db.dtb \
- armada-xp-db.dtb
+ armada-xp-db.dtb \
+ armada-xp-openblocks-ax3-4.dtb
dtb-$(CONFIG_ARCH_MXC) += imx51-babbage.dtb \
imx53-ard.dtb \
imx53-evk.dtb \
diff --git a/arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts b/arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts
new file mode 100644
index 0000000..cb86853
--- /dev/null
+++ b/arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts
@@ -0,0 +1,69 @@
+/*
+ * Device Tree file for OpenBlocks AX3-4 board
+ *
+ * Copyright (C) 2012 Marvell
+ *
+ * Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2. This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ */
+
+/dts-v1/;
+/include/ "armada-xp-mv78260.dtsi"
+
+/ {
+ model = "PlatHome OpenBlocks AX3-4 board";
+ compatible = "plathome,openblocks-ax3-4", "marvell,armadaxp-mv78260", "marvell,armadaxp", "marvell,armada-370-xp";
+
+ chosen {
+ bootargs = "console=ttyS0,115200 earlyprintk";
+ };
+
+ memory {
+ device_type = "memory";
+ reg = <0x00000000 0xC0000000>; /* 3 GB */
+ };
+
+ soc {
+ serial at d0012000 {
+ clock-frequency = <250000000>;
+ status = "okay";
+ };
+ serial at d0012100 {
+ clock-frequency = <250000000>;
+ status = "okay";
+ };
+ pinctrl {
+ led_pins: led-pins-0 {
+ marvell,pins = "mpp49", "mpp51", "mpp53";
+ marvell,function = "gpio";
+ };
+ };
+ leds {
+ compatible = "gpio-leds";
+ pinctrl-names = "default";
+ pinctrl-0 = <&led_pins>;
+
+ red_led {
+ label = "red_led";
+ gpios = <&gpio1 17 1>;
+ default-state = "off";
+ };
+
+ yellow_led {
+ label = "yellow_led";
+ gpios = <&gpio1 19 1>;
+ default-state = "off";
+ };
+
+ green_led {
+ label = "green_led";
+ gpios = <&gpio1 21 1>;
+ default-state = "off";
+ linux,default-trigger = "heartbeat";
+ };
+ };
+ };
+};
--
1.7.9.5
^ permalink raw reply related
* [GIT PULL] Marvell board changes for the v3.8 merge window
From: Thomas Petazzoni @ 2012-11-14 15:47 UTC (permalink / raw)
To: linux-arm-kernel
The following changes since commit 77b67063bb6bce6d475e910d3b886a606d0d91f7:
Linux 3.7-rc5 (2012-11-11 13:44:33 +0100)
are available in the git repository at:
git at github.com:MISL-EBU-System-SW/mainline-public.git tags/marvell-boards-for-3.8
for you to fetch changes up to e3e37bcab910a68616bc33145ed5c333825053ac:
arm: mvebu: support for the Globalscale Mirabox board (2012-11-14 16:32:29 +0100)
----------------------------------------------------------------
Marvell boards changes for 3.8
----------------------------------------------------------------
Gregory CLEMENT (1):
arm: mvebu: support for the Globalscale Mirabox board
Thomas Petazzoni (1):
arm: mvebu: support for the PlatHome OpenBlocks AX3-4 board
arch/arm/boot/dts/Makefile | 4 +-
arch/arm/boot/dts/armada-370-mirabox.dts | 37 ++++++++++++
arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts | 69 ++++++++++++++++++++++
3 files changed, 109 insertions(+), 1 deletion(-)
create mode 100644 arch/arm/boot/dts/armada-370-mirabox.dts
create mode 100644 arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts
^ permalink raw reply
* [PATCH 3/3] arm: mvebu: fix typo in machine name for Armada 370/XP
From: Thomas Petazzoni @ 2012-11-14 15:44 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1352907876-32482-1-git-send-email-thomas.petazzoni@free-electrons.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Acked-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
Tested-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
---
arch/arm/mach-mvebu/armada-370-xp.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm/mach-mvebu/armada-370-xp.c b/arch/arm/mach-mvebu/armada-370-xp.c
index 29c27cd..a2f5bbc 100644
--- a/arch/arm/mach-mvebu/armada-370-xp.c
+++ b/arch/arm/mach-mvebu/armada-370-xp.c
@@ -51,7 +51,7 @@ static const char * const armada_370_xp_dt_compat[] = {
NULL,
};
-DT_MACHINE_START(ARMADA_XP_DT, "Marvell Aramada 370/XP (Device Tree)")
+DT_MACHINE_START(ARMADA_XP_DT, "Marvell Armada 370/XP (Device Tree)")
.init_machine = armada_370_xp_dt_init,
.map_io = armada_370_xp_map_io,
.init_irq = armada_370_xp_init_irq,
--
1.7.9.5
^ permalink raw reply related
* [PATCH 2/3] arm: mvebu: don't list all boards in dt compat field for Armada 370/XP
From: Thomas Petazzoni @ 2012-11-14 15:44 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1352907876-32482-1-git-send-email-thomas.petazzoni@free-electrons.com>
Instead of listing explicitly all boards in the .dt_compat field of
the DT_MACHINE_START structure for Armada 370/XP, use instead a
compatible string that is common to all boards using the Armada
370/XP.
This allows to add new boards by just using a different Device Tree,
without having to modify the source code of the kernel.
Note that the name of the array containing the compatible string is
also renamed, to reflect the fact that it no longer contains the list
of all boards.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Acked-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
Tested-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
---
arch/arm/mach-mvebu/armada-370-xp.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/arch/arm/mach-mvebu/armada-370-xp.c b/arch/arm/mach-mvebu/armada-370-xp.c
index 49d7915..29c27cd 100644
--- a/arch/arm/mach-mvebu/armada-370-xp.c
+++ b/arch/arm/mach-mvebu/armada-370-xp.c
@@ -46,9 +46,8 @@ static void __init armada_370_xp_dt_init(void)
of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
}
-static const char * const armada_370_xp_dt_board_dt_compat[] = {
- "marvell,a370-db",
- "marvell,axp-db",
+static const char * const armada_370_xp_dt_compat[] = {
+ "marvell,armada-370-xp",
NULL,
};
@@ -59,5 +58,5 @@ DT_MACHINE_START(ARMADA_XP_DT, "Marvell Aramada 370/XP (Device Tree)")
.handle_irq = armada_370_xp_handle_irq,
.timer = &armada_370_xp_timer,
.restart = mvebu_restart,
- .dt_compat = armada_370_xp_dt_board_dt_compat,
+ .dt_compat = armada_370_xp_dt_compat,
MACHINE_END
--
1.7.9.5
^ permalink raw reply related
* [PATCH 1/3] arm: mvebu: fix compatible string in armada-370-xp.dtsi
From: Thomas Petazzoni @ 2012-11-14 15:44 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1352907876-32482-1-git-send-email-thomas.petazzoni@free-electrons.com>
All the Device Tree files for Armada 370 and XP SoCs and boards use
the "armada-370-xp" common compatible string, except
armada-370-xp.dtsi which was specifying "armada_370_xp".
Fix this inconsistency by making armada-370-xp.dtsi declare a
compatible string of "armada-370-xp" like everyone else.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Acked-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
Tested-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
---
arch/arm/boot/dts/armada-370-xp.dtsi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm/boot/dts/armada-370-xp.dtsi b/arch/arm/boot/dts/armada-370-xp.dtsi
index 16cc82c..b113e0b 100644
--- a/arch/arm/boot/dts/armada-370-xp.dtsi
+++ b/arch/arm/boot/dts/armada-370-xp.dtsi
@@ -20,7 +20,7 @@
/ {
model = "Marvell Armada 370 and XP SoC";
- compatible = "marvell,armada_370_xp";
+ compatible = "marvell,armada-370-xp";
cpus {
cpu at 0 {
--
1.7.9.5
^ permalink raw reply related
* [GIT PULL] Marvell cleanup changes for the v3.8 merge window
From: Thomas Petazzoni @ 2012-11-14 15:44 UTC (permalink / raw)
To: linux-arm-kernel
The following changes since commit 77b67063bb6bce6d475e910d3b886a606d0d91f7:
Linux 3.7-rc5 (2012-11-11 13:44:33 +0100)
are available in the git repository at:
git at github.com:MISL-EBU-System-SW/mainline-public.git tags/marvell-cleanups-for-3.8
for you to fetch changes up to 8c4340fcfb3e40372101a608ccd906e456ed3fcd:
arm: mvebu: fix typo in machine name for Armada 370/XP (2012-11-14 16:35:10 +0100)
----------------------------------------------------------------
Marvell cleanups for 3.8
----------------------------------------------------------------
Thomas Petazzoni (3):
arm: mvebu: fix compatible string in armada-370-xp.dtsi
arm: mvebu: don't list all boards in dt compat field for Armada 370/XP
arm: mvebu: fix typo in machine name for Armada 370/XP
arch/arm/boot/dts/armada-370-xp.dtsi | 2 +-
arch/arm/mach-mvebu/armada-370-xp.c | 9 ++++-----
2 files changed, 5 insertions(+), 6 deletions(-)
^ permalink raw reply
* [PATCH v2 1/2] ARM: mx27_3ds: Add VPU support
From: Eric Bénard @ 2012-11-14 15:44 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20121114143400.GM10369@pengutronix.de>
Hi Sascha,
Le Wed, 14 Nov 2012 15:34:00 +0100,
Sascha Hauer <s.hauer@pengutronix.de> a ?crit :
> On Wed, Nov 14, 2012 at 11:19:33AM -0200, Fabio Estevam wrote:
> > mx27 has a VPU (Video Processing Unit) block that allows doing H264/MPEG4
> > decoding and encoding in hardware.
> >
> > Add support for it.
> >
> > Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
> > ---
> > + imx27_add_coda();
>
> Why in the board? It's always present so I would register it in the SoC.
>
MCIMX27L* dosn't have the VPU. No idea how will behave the probe in
that case.
Eruc
^ permalink raw reply
* [PATCH] ARM: OMAP4: hwmod data: ipu and dsp to use parent clocks instead of leaf clocks
From: Paul Walmsley @ 2012-11-14 15:44 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1352860750-20100-1-git-send-email-omar.luna@linaro.org>
Hi
On Tue, 13 Nov 2012, Omar Ramirez Luna wrote:
> This prevents hwmod _enable_clocks...omap2_dflt_clk_enable path
> from enabling modulemode inside CLKCTRL using its clk->enable_reg
> field. Instead is left to _omap4_enable_module though soc_ops, as
> the one in charge of this setting.
>
> According to comments received[1] for related patches the idea is
> to get rid of leaf clocks in future. So remove these two while at it.
>
> [1] http://lkml.org/lkml/2012/8/20/226
>
> Signed-off-by: Omar Ramirez Luna <omar.luna@linaro.org>
Does this one belong as part of the "OMAP: iommu: hwmod, reset
handling and runtime PM" series? Looks like applying this one separately
might cause these clocks not to be disabled by either the clock code's
disable-unused-clocks code, or the hwmod code?
- Paul
^ permalink raw reply
* Decoding the PTM traces
From: Punit Agrawal @ 2012-11-14 15:35 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <CAKZGPAP_GQh4xCXamsBOUjkfSk=Hvm96dYQD7qCbjpNWtox+tw@mail.gmail.com>
On 14/11/12 15:13, Arun KS wrote:
> Hello Punit,
>
> On Wed, Nov 14, 2012 at 8:28 PM, Punit Agrawal <punit.agrawal@arm.com> wrote:
>> Hi Arun,
>>
>> You can think of the trace in the ETB as the raw stream resulting from
>> the multiplexing of different trace streams. So to get to the PTM trace
>> you'll first have to de-multiplex the stream, and then decode the stream
>> based on the source - in this case PTM.
>>
>> The format of the data stored in the ETB is described in the ETM TRM
>> Section 9.6
>> (http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0314h/Bgbhhidd.html).
>> The decoding should give you a trace stream for each active trace
>> source. The ATBID can be used to de-multiplex multiple sources, e.g.,
>> the two PTMs associated with the two A9s.
After sending the previous email, I had a quick look at etm.c and
noticed that it configures the ETB formatter to run in "Bypass" mode,
i.e., it doesn't introduce any formatting into the trace stream.
>>
>> The PTM stream can then be decoded using the Program Flow Trace Protocol
>> described in Program Flow Trace Architecture Specification Section 4
>> (http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ihi0035b/Chddbbdf.html).
> So do you mean that there is no open source tool which decodes this as
> of now and I have to write one?
I don't know of any open source tool to decode PTM trace.
But in light of the above finding, decoding only PTM trace should give
you the information you are after.
Hope that makes it a little bit easier.
Punit
>> Out of curiosity, may I ask what are you trying to do?
> The main intention is to debug freeze issues using PTM traces.
> When a device is in freeze, my intention is to collect PTM traces
> from ETB and decode.
> So that I ll get traces of last few branches and exceptions.
>
> Thanks,
> Arun
>
>> Hope this helps. Feel free to ask for clarification.
>>
>> Cheers,
>> Punit
>>
>>
>>
>>
>> On 14/11/12 14:04, Arun KS wrote:
>>> Hello,
>>>
>>> I m trying to capture and decode PTM trace from Cortex A9 dual core.
>>>
>>> I m successful in configuring the driver(arch/arm/kernel/etm.c) and
>>> setting the funnel to get data in ETB.
>>> But I don't know how to decode these traces.
>>>
>>> Anyone has any pointers?
>>>
>>> Thanks,
>>> Arun
>>>
>>> _______________________________________________
>>> linaro-dev mailing list
>>> linaro-dev at lists.linaro.org
>>> http://lists.linaro.org/mailman/listinfo/linaro-dev
>>>
>>>
>>>
>>
>> -- IMPORTANT NOTICE: The contents of this email and any attachments are
>> confidential and may also be privileged. If you are not the intended
>> recipient, please notify the sender immediately and do not disclose the
>> contents to any other person, use it for any purpose, or store or copy the
>> information in any medium. Thank you.
>>
>
>
-- IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
^ permalink raw reply
* [PATCH 2/6] usb: chipidea: usbmisc: rename file, struct and functions to usbmisc_imx
From: Michael Grzeschik @ 2012-11-14 15:32 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <CAOMZO5Ajdp3DT1b+Mx6ufjhuCoOmZ6CEwk+TgWEj-mjd1Hub1Q@mail.gmail.com>
On Wed, Nov 14, 2012 at 09:57:50AM -0200, Fabio Estevam wrote:
> Hi Michael,
>
> On Wed, Nov 14, 2012 at 9:55 AM, Michael Grzeschik
> <m.grzeschik@pengutronix.de> wrote:
> > This driver will be used for every Freescale SoC which has this misc
> > memory layout to control the basic usb handling. So better name this
> > driver, function and struct names in a more generic way.
> >
> > Reported-by: Fabio Estevam <festevam@gmail.com>
> > Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
> > Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
> > ---
> > drivers/usb/chipidea/usbmisc_imx.c | 163 ++++++++++++++++++++++++++++++++++
> > drivers/usb/chipidea/usbmisc_imx6q.c | 163 ----------------------------------
>
> Please use git mv / git format -M so that git can detect the file rename.
I have created this patch with git mv. Until now, i did not know
that git send-email needs -M to stick with the git format.
Will change that in V2.
Thanks,
Michael
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
^ permalink raw reply
* [PATCH 4/6] usb: chipidea: usbmisc: add support for ahb, ipg and per clock
From: Michael Grzeschik @ 2012-11-14 15:27 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <87mwyk718g.fsf@ashishki-desk.ger.corp.intel.com>
On Wed, Nov 14, 2012 at 03:39:11PM +0200, Alexander Shishkin wrote:
> Michael Grzeschik <m.grzeschik@pengutronix.de> writes:
>
> > From: Marc Kleine-Budde <mkl@pengutronix.de>
> >
> > This patch adds support for ahb, ipg and per clock, which is needed to support
> > imx53.
>
> I would also suggest using a more elaborate wording here, some people
> might also be interested what are the different clocks for (like,
> interface, peripheral, etc etc).
>
Will do in V2.
> >
> > Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
> > Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
> > ---
> > drivers/usb/chipidea/usbmisc_imx.c | 60 +++++++++++++++++++++++++++---------
> > 1 file changed, 45 insertions(+), 15 deletions(-)
> >
> > diff --git a/drivers/usb/chipidea/usbmisc_imx.c b/drivers/usb/chipidea/usbmisc_imx.c
> > index 72445f7..239b752 100644
> > --- a/drivers/usb/chipidea/usbmisc_imx.c
> > +++ b/drivers/usb/chipidea/usbmisc_imx.c
> > @@ -24,7 +24,9 @@
> > struct imx_usbmisc {
> > void __iomem *base;
> > spinlock_t lock;
> > - struct clk *clk;
> > + struct clk *clk_ahb;
> > + struct clk *clk_ipg;
> > + struct clk *clk_per;
> > struct usbmisc_usb_device usbdev[USB_DEV_MAX];
> > const struct usbmisc_ops *ops;
> > };
> > @@ -104,38 +106,66 @@ static int __devinit usbmisc_imx_probe(struct platform_device *pdev)
> > if (!data->base)
> > return -EADDRNOTAVAIL;
> >
> > - data->clk = devm_clk_get(&pdev->dev, NULL);
> > - if (IS_ERR(data->clk)) {
> > + data->clk_ahb = devm_clk_get(&pdev->dev, "ahb");
>
> I suppose the clock names are also being added/changed in the platform
> code in another patchset that's also being queued? What's the target
> merge window (if there's a dependency)?
Yes we have more branches to be published next. One of them is
adding the usb device tree nodes and clock entries for mx53.
Thanks,
Michael
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
^ permalink raw reply
* [PATCH v3] clk: Add support for fundamental zynq clks
From: Michal Simek @ 2012-11-14 15:14 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20121113235516.20034.31067@nucleus>
> -----Original Message-----
> From: Mike Turquette [mailto:mturquette at ti.com]
> Sent: Wednesday, November 14, 2012 12:55 AM
> To: Josh Cartwright; Michal Simek
> Cc: Soren Brinkmann; Rob Herring; linux-kernel at vger.kernel.org; linux-arm-
> kernel at lists.infradead.org; John Linn; arm at kernel.org
> Subject: Re: [PATCH v3] clk: Add support for fundamental zynq clks
>
> Quoting Josh Cartwright (2012-11-13 15:26:48)
> > Provide simplified models for the necessary clocks on the zynq-7000
> > platform. Currently, the PLLs, the CPU clock network, and the basic
> > peripheral clock networks (for SDIO, SMC, SPI, QSPI, UART) are modelled.
> >
> > OF bindings are also provided and documented.
> >
> > Signed-off-by: Josh Cartwright <josh.cartwright@ni.com>
> > ---
> > Michal-
> >
> > Here is a v3 with a fix for the problem Soren Brinkmann spotted. Am I
> > correct that your current plan is to merge this into your tree?
> >
> > If so:
> >
> > Mike-
> >
> > Can we get your Acked-by on this one?
> >
>
> Acked-by: Mike Turquette <mturquette@linaro.org>
Applied.
Thanks,
Michal
^ permalink raw reply
* Decoding the PTM traces
From: Arun KS @ 2012-11-14 15:13 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <50A3B18D.60907@arm.com>
Hello Punit,
On Wed, Nov 14, 2012 at 8:28 PM, Punit Agrawal <punit.agrawal@arm.com> wrote:
> Hi Arun,
>
> You can think of the trace in the ETB as the raw stream resulting from
> the multiplexing of different trace streams. So to get to the PTM trace
> you'll first have to de-multiplex the stream, and then decode the stream
> based on the source - in this case PTM.
>
> The format of the data stored in the ETB is described in the ETM TRM
> Section 9.6
> (http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0314h/Bgbhhidd.html).
> The decoding should give you a trace stream for each active trace
> source. The ATBID can be used to de-multiplex multiple sources, e.g.,
> the two PTMs associated with the two A9s.
>
> The PTM stream can then be decoded using the Program Flow Trace Protocol
> described in Program Flow Trace Architecture Specification Section 4
> (http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ihi0035b/Chddbbdf.html).
So do you mean that there is no open source tool which decodes this as
of now and I have to write one?
>
> Out of curiosity, may I ask what are you trying to do?
The main intention is to debug freeze issues using PTM traces.
When a device is in freeze, my intention is to collect PTM traces
from ETB and decode.
So that I ll get traces of last few branches and exceptions.
Thanks,
Arun
>
> Hope this helps. Feel free to ask for clarification.
>
> Cheers,
> Punit
>
>
>
>
> On 14/11/12 14:04, Arun KS wrote:
>>
>> Hello,
>>
>> I m trying to capture and decode PTM trace from Cortex A9 dual core.
>>
>> I m successful in configuring the driver(arch/arm/kernel/etm.c) and
>> setting the funnel to get data in ETB.
>> But I don't know how to decode these traces.
>>
>> Anyone has any pointers?
>>
>> Thanks,
>> Arun
>>
>> _______________________________________________
>> linaro-dev mailing list
>> linaro-dev at lists.linaro.org
>> http://lists.linaro.org/mailman/listinfo/linaro-dev
>>
>>
>>
>
>
> -- IMPORTANT NOTICE: The contents of this email and any attachments are
> confidential and may also be privileged. If you are not the intended
> recipient, please notify the sender immediately and do not disclose the
> contents to any other person, use it for any purpose, or store or copy the
> information in any medium. Thank you.
>
^ permalink raw reply
* [PATCH v2 2/5] clk: Add support for fundamental zynq clks
From: Michal Simek @ 2012-11-14 15:12 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20121113220257.GN1718@beefymiracle.amer.corp.natinst.com>
> -----Original Message-----
> From: Josh Cartwright [mailto:josh.cartwright at ni.com]
> Sent: Tuesday, November 13, 2012 11:03 PM
> To: Soren Brinkmann; Michal Simek
> Cc: Mike Turquette; Rob Herring; linux-kernel at vger.kernel.org; linux-arm-
> kernel at lists.infradead.org; John Linn; arm at kernel.org
> Subject: Re: [PATCH v2 2/5] clk: Add support for fundamental zynq clks
>
> On Thu, Nov 08, 2012 at 03:28:07PM -0800, Soren Brinkmann wrote:
> > One note below:
> >
> > On Wed, Oct 31, 2012 at 12:58:52PM -0600, Josh Cartwright wrote:
> [..]
> > > --- /dev/null
> > > +++ b/drivers/clk/clk-zynq.c
> [..]
> > > +struct zynq_periph_clk {
> > > + struct clk_hw hw;
> > > + struct clk_onecell_data onecell_data;
> > > + struct clk *gates[2];
> > > + void __iomem *clk_ctrl;
> > > + spinlock_t clkact_lock;
> > > +};
> > > +
> > > +#define to_zynq_periph_clk(hw) container_of(hw, struct zynq_periph_clk,
> hw)
> > > +
> > > +static const u8 periph_clk_parent_map[] = {
> > > + 0, 0, 1, 2
> > > +};
> > > +#define PERIPH_CLK_CTRL_SRC(x) (periph_clk_parent_map[((x) & 3) >> 4])
> >
> > I think this should be:
> > #define PERIPH_CLK_CTRL_SRC(x) (periph_clk_parent_map[((x) & 0x30) >>
> 4])
>
> Yes indeed it should be, thanks.
>
> Michal- I'll just be following up with a v3 of this patch instead of spinning up the
> whole set to save myself some time. If you'd rather I spin up the whole set, let
> me know.
No problem with that.
thanks,
Michal
This email and any attachments are intended for the sole use of the named recipient(s) and contain(s) confidential information that may be proprietary, privileged or copyrighted under applicable law. If you are not the intended recipient, do not read, copy, or forward this email message or any attachments. Delete this email message and any attachments immediately.
^ permalink raw reply
* Decoding the PTM traces
From: Punit Agrawal @ 2012-11-14 14:58 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <CAKZGPAN-DEFD-X4az0O06ngjwdFAyrdowQ57QvtDpe8axZiwTg@mail.gmail.com>
Hi Arun,
You can think of the trace in the ETB as the raw stream resulting from
the multiplexing of different trace streams. So to get to the PTM trace
you'll first have to de-multiplex the stream, and then decode the stream
based on the source - in this case PTM.
The format of the data stored in the ETB is described in the ETM TRM
Section 9.6
(http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0314h/Bgbhhidd.html).
The decoding should give you a trace stream for each active trace
source. The ATBID can be used to de-multiplex multiple sources, e.g.,
the two PTMs associated with the two A9s.
The PTM stream can then be decoded using the Program Flow Trace Protocol
described in Program Flow Trace Architecture Specification Section 4
(http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ihi0035b/Chddbbdf.html).
Out of curiosity, may I ask what are you trying to do?
Hope this helps. Feel free to ask for clarification.
Cheers,
Punit
On 14/11/12 14:04, Arun KS wrote:
> Hello,
>
> I m trying to capture and decode PTM trace from Cortex A9 dual core.
>
> I m successful in configuring the driver(arch/arm/kernel/etm.c) and
> setting the funnel to get data in ETB.
> But I don't know how to decode these traces.
>
> Anyone has any pointers?
>
> Thanks,
> Arun
>
> _______________________________________________
> linaro-dev mailing list
> linaro-dev at lists.linaro.org
> http://lists.linaro.org/mailman/listinfo/linaro-dev
>
>
>
-- IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox