[RFC PATCH 05/10] ARM: tegra: Export function to read USB calibration data

From: Andrew Bresticker
Date: Wed May 14 2014 - 20:35:17 EST


Board-specific USB configuration data is stored in FUSE_SKU_CALIB_0.
Export a function to read it so the PHY can be properly configured.

Signed-off-by: Andrew Bresticker <abrestic@xxxxxxxxxxxx>
---
arch/arm/mach-tegra/fuse.c | 13 +++++++++++++
include/linux/tegra-soc.h | 1 +
2 files changed, 14 insertions(+)

diff --git a/arch/arm/mach-tegra/fuse.c b/arch/arm/mach-tegra/fuse.c
index c9ac23b..e457ef7 100644
--- a/arch/arm/mach-tegra/fuse.c
+++ b/arch/arm/mach-tegra/fuse.c
@@ -34,6 +34,7 @@
#define FUSE_UID_HIGH 0x10c

/* Tegra30 and later */
+#define FUSE_USB_CALIB 0x1f0
#define FUSE_VENDOR_CODE 0x200
#define FUSE_FAB_CODE 0x204
#define FUSE_LOT_CODE_0 0x208
@@ -154,6 +155,18 @@ u32 tegra_read_chipid(void)
return readl_relaxed(IO_ADDRESS(TEGRA_APB_MISC_BASE) + 0x804);
}

+u32 tegra_read_usb_calibration_data(void)
+{
+ u32 reg;
+
+ tegra_fuse_enable_clk();
+ reg = tegra_fuse_readl(FUSE_USB_CALIB);
+ tegra_fuse_disable_clk();
+
+ return reg;
+}
+EXPORT_SYMBOL(tegra_read_usb_calibration_data);
+
static void __init tegra20_fuse_init_randomness(void)
{
u32 randomness[2];
diff --git a/include/linux/tegra-soc.h b/include/linux/tegra-soc.h
index 95f611d..492dc95 100644
--- a/include/linux/tegra-soc.h
+++ b/include/linux/tegra-soc.h
@@ -18,5 +18,6 @@
#define __LINUX_TEGRA_SOC_H_

u32 tegra_read_chipid(void);
+u32 tegra_read_usb_calibration_data(void);

#endif /* __LINUX_TEGRA_SOC_H_ */
--
1.9.1.423.g4596e3a

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/