Revert "usb: tegra: xhci: write prod settings from dt"
Sridhar Lavu [Sat, 8 Nov 2014 16:07:52 +0000 (08:07 -0800)]
This reverts commit b005b4df886374f7d4d92ffa1e3232b0c594fbbd.
This commit causes a build regression for some platforms.

Bug 1567693 : original bug
Bug 1575740 : regression bug

Change-Id: I8769706233ba64c65c69799cbac408591224ff9d
Signed-off-by: Sridhar Lavu <slavu@nvidia.com>
Reverts-what-was-Reviewed-on: http://git-master/r/592758
Reviewed-on: http://git-master/r/599040

drivers/usb/host/xhci-tegra-t210-padctl.c
drivers/usb/host/xhci-tegra.c
drivers/usb/host/xhci-tegra.h

index d76788d..5291240 100644 (file)
@@ -18,7 +18,6 @@
  */
 
 #include <linux/platform_device.h>
-#include <linux/tegra_prod.h>
 #include <mach/tegra_usb_pad_ctrl.h>
 #include "xhci-tegra.h"
 #include "xhci-tegra-t210-padreg.h"
 #define PADCTL_USB2_BATTERY_CHRG_OTGPAD_BASE 0x84
 #define VREG_FIX18_OFFSET 0x6
 
-#define XUSB_PROD_PREFIX_UTMI  "prod_c_utmi"
-#define XUSB_PROD_PREFIX_HSIC  "prod_c_hsic"
-#define XUSB_PROD_PREFIX_SS    "prod_c_ss"
-
 void t210_program_utmi_pad(struct tegra_xhci_hcd *tegra, u8 port)
 {
-       char prod_name[15];
-
-       sprintf(prod_name, XUSB_PROD_PREFIX_UTMI "%d", port);
-       tegra_prod_set_by_name(&tegra->base_list, prod_name,
-                               tegra->prod_list);
        xusb_utmi_pad_init(port, USB2_PORT_CAP_HOST(port)
                , tegra->bdata->uses_external_pmic);
 }
 
 void t210_program_ss_pad(struct tegra_xhci_hcd *tegra, u8 port)
 {
-       char prod_name[15];
+       u32 ctl1, ctl2, ctl3, ctl4, ctl6, val;
 
-       sprintf(prod_name, XUSB_PROD_PREFIX_SS "%d", port);
-       tegra_prod_set_by_name(&tegra->base_list, prod_name,
-                                       tegra->prod_list);
        xusb_ss_pad_init(port, GET_SS_PORTMAP(tegra->bdata->ss_portmap, port)
                        , XUSB_HOST_MODE);
+
+       ctl1 = tegra->padregs->uphy_usb3_padX_ectlY_0[port][0];
+       ctl2 = tegra->padregs->uphy_usb3_padX_ectlY_0[port][1];
+       ctl3 = tegra->padregs->uphy_usb3_padX_ectlY_0[port][2];
+       ctl4 = tegra->padregs->uphy_usb3_padX_ectlY_0[port][3];
+       ctl6 = tegra->padregs->uphy_usb3_padX_ectlY_0[port][5];
+
+       val = padctl_readl(tegra, ctl1);
+       val &= ~TX_TERM_CTRL(~0);
+       val |= TX_TERM_CTRL(tegra->soc_config->tx_term_ctrl);
+       padctl_writel(tegra, val, ctl1);
+
+       val = padctl_readl(tegra, ctl2);
+       val &= ~RX_CTLE(~0);
+       val |= RX_CTLE(tegra->soc_config->rx_ctle);
+       padctl_writel(tegra, val, ctl2);
+
+       val = padctl_readl(tegra, ctl3);
+       val &= ~RX_DFE(~0);
+       val |= RX_DFE(tegra->soc_config->rx_dfe);
+       padctl_writel(tegra, val, ctl3);
+
+       val = padctl_readl(tegra, ctl4);
+       val &= ~RX_CDR_CTRL(~0);
+       val |= RX_CDR_CTRL(tegra->soc_config->rx_cdr_ctrl);
+       padctl_writel(tegra, val, ctl4);
+
+       val = padctl_readl(tegra, ctl6);
+       val &= ~RX_EQ_CTRL_H(~0);
+       val |= RX_EQ_CTRL_H(tegra->soc_config->rx_eq_ctrl_h);
+       padctl_writel(tegra, val, ctl6);
 }
 
 int t210_hsic_pad_enable(struct tegra_xhci_hcd *tegra, u8 pad)
@@ -108,7 +126,6 @@ int t210_hsic_pad_enable(struct tegra_xhci_hcd *tegra, u8 pad)
        struct device *dev = &tegra->pdev->dev;
        struct tegra_xusb_hsic_config *hsic = &tegra->bdata->hsic[pad];
        u32 mask, val;
-       char prod_name[15];
 
        if (pad >= 2) {
                dev_err(dev, "%s invalid HSIC pad number %d\n", __func__, pad);
@@ -117,9 +134,8 @@ int t210_hsic_pad_enable(struct tegra_xhci_hcd *tegra, u8 pad)
 
        dev_dbg(dev, "%s pad %u\n", __func__, pad);
 
-       sprintf(prod_name, XUSB_PROD_PREFIX_HSIC "%d", pad);
-       tegra_prod_set_by_name(&tegra->base_list, prod_name,
-                               tegra->prod_list);
+       tegra_usb_pad_reg_update(HSIC_STRB_TRIM_CONTROL_0, STRB_TRIM_VAL(~0),
+               STRB_TRIM_VAL(hsic->strb_trim_val));
 
        /* keep HSIC in IDLE */
        mask = RPD_DATA | RPD_STROBE | RPU_DATA | RPU_STROBE;
index 801b487..0b6e218 100644 (file)
@@ -42,7 +42,6 @@
 #include <linux/of_gpio.h>
 #include <linux/tegra-fuse.h>
 #include <linux/tegra_pm_domains.h>
-#include <linux/tegra_prod.h>
 
 #include <mach/tegra_usb_pad_ctrl.h>
 #include <mach/tegra_usb_pmc.h>
@@ -2005,13 +2004,7 @@ tegra_xhci_padctl_portmap_and_caps(struct tegra_xhci_hcd *tegra)
        u32 reg = 0;
        unsigned pad;
        u32 ss_pads;
-       char prod_name[15];
 
-#if defined(CONFIG_ARCH_TEGRA_21x_SOC)
-       if (tegra->prod_list)
-               tegra_prod_set_by_name(&tegra->base_list, "prod",
-                               tegra->prod_list);
-#endif
        reg = padctl_readl(tegra, padregs->usb2_bias_pad_ctlY_0[0]);
        reg &= ~(USB2_BIAS_HS_SQUELCH_LEVEL | USB2_BIAS_HS_DISCON_LEVEL);
        reg |= tegra->cdata->hs_squelch_level | tegra->soc_config->hs_disc_lvl;
@@ -4537,10 +4530,6 @@ static int tegra_xhci_probe(struct platform_device *pdev)
                return ret;
        }
 
-       tegra->base_list[1] = tegra->fpci_base;
-       tegra->base_list[2] = tegra->ipfs_base;
-       tegra->base_list[3] = tegra->padctl_base;
-
        ret = tegra_xusb_partitions_clk_init(tegra);
        if (ret) {
                dev_err(&pdev->dev,
@@ -4622,13 +4611,6 @@ static int tegra_xhci_probe(struct platform_device *pdev)
 
        tegra->padregs = soc_config->padctl_offsets;
 
-       tegra->base_list[0] = tegra->host_phy_virt_base;
-       tegra->prod_list = tegra_prod_init(tegra->pdev->dev.of_node);
-       if (IS_ERR(tegra->prod_list)) {
-               dev_err(&pdev->dev, "Prod settings list not initialized\n");
-               tegra->prod_list = NULL;
-       }
-
        if (pex_usb_pad_pll_reset_deassert())
                dev_err(&pdev->dev, "error deassert pex pll\n");
 
@@ -4908,9 +4890,6 @@ static int tegra_xhci_remove(struct platform_device *pdev)
        if (!tegra->hc_in_elpg)
                tegra_xusb_partitions_clk_deinit(tegra);
 
-       if (tegra->prod_list)
-               tegra_prod_release(&tegra->prod_list);
-
        tegra_pd_remove_device(&pdev->dev);
        platform_set_drvdata(pdev, NULL);
 
index acc9cde..3464595 100644 (file)
@@ -413,9 +413,6 @@ struct tegra_xhci_hcd {
        struct tegra_xhci_firmware_log log;
        struct device_attribute hsic_power_attr[XUSB_HSIC_COUNT];
 
-       struct tegra_prod_list *prod_list;
-       void __iomem *base_list[4];
-
        bool init_done;
 };