|
@@ -0,0 +1,93 @@
|
|
|
+/*
|
|
|
+ * Critical Link MityOMAP-L138 SoM
|
|
|
+ *
|
|
|
+ * Copyright (C) 2010 Critical Link LLC - http://www.criticallink.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.
|
|
|
+ */
|
|
|
+
|
|
|
+#include <linux/kernel.h>
|
|
|
+#include <linux/init.h>
|
|
|
+#include <linux/console.h>
|
|
|
+#include <linux/platform_device.h>
|
|
|
+#include <linux/mtd/partitions.h>
|
|
|
+#include <linux/regulator/machine.h>
|
|
|
+#include <linux/i2c.h>
|
|
|
+#include <linux/i2c/at24.h>
|
|
|
+#include <linux/etherdevice.h>
|
|
|
+#include <linux/spi/spi.h>
|
|
|
+#include <linux/spi/flash.h>
|
|
|
+
|
|
|
+#include <asm/io.h>
|
|
|
+#include <asm/mach-types.h>
|
|
|
+#include <asm/mach/arch.h>
|
|
|
+#include <mach/common.h>
|
|
|
+#include <mach/cp_intc.h>
|
|
|
+#include <mach/da8xx.h>
|
|
|
+#include <linux/platform_data/mtd-davinci.h>
|
|
|
+#include <mach/mux.h>
|
|
|
+#include <linux/platform_data/spi-davinci.h>
|
|
|
+
|
|
|
+#define MITYOMAPL138_PHY_ID ""
|
|
|
+
|
|
|
+#define FACTORY_CONFIG_MAGIC 0x012C0138
|
|
|
+#define FACTORY_CONFIG_VERSION 0x00010001
|
|
|
+
|
|
|
+/* Data Held in On-Board I2C device */
|
|
|
+struct factory_config {
|
|
|
+ u32 magic;
|
|
|
+ u32 version;
|
|
|
+ u8 mac[6];
|
|
|
+ u32 fpga_type;
|
|
|
+ u32 spare;
|
|
|
+ u32 serialnumber;
|
|
|
+ char partnum[32];
|
|
|
+};
|
|
|
+
|
|
|
+static struct factory_config factory_config;
|
|
|
+
|
|
|
+struct part_no_info {
|
|
|
+ const char *part_no; /* part number string of interest */
|
|
|
+ int max_freq; /* khz */
|
|
|
+};
|
|
|
+
|
|
|
+static struct part_no_info mityomapl138_pn_info[] = {
|
|
|
+ {
|
|
|
+ .part_no = "L138-C",
|
|
|
+ .max_freq = 300000,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .part_no = "L138-D",
|
|
|
+ .max_freq = 375000,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .part_no = "L138-F",
|
|
|
+ .max_freq = 456000,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .part_no = "1808-C",
|
|
|
+ .max_freq = 300000,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .part_no = "1808-D",
|
|
|
+ .max_freq = 375000,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .part_no = "1808-F",
|
|
|
+ .max_freq = 456000,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .part_no = "1810-D",
|
|
|
+ .max_freq = 375000,
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
+#ifdef CONFIG_CPU_FREQ
|
|
|
+static void mityomapl138_cpufreq_init(const char *partnum)
|
|
|
+{
|
|
|
+ int i, ret;
|
|
|
+
|
|
|
+ for (i = 0; partnum && i < ARRAY_SIZE(mityomapl138_pn_info); i++) {
|
|
|
+ /*
|