示例#1
0
static void omap4_tuna_init_hw_rev(void)
{
	int ret;
	int i;
	u32 r;

	/* Disable weak driver pulldown on usbb2_hsic_strobe */
	r = omap4_ctrl_pad_readl(OMAP4_CTRL_MODULE_PAD_CORE_CONTROL_USBB_HSIC);
	r &= ~OMAP4_USBB2_HSIC_STROBE_WD_MASK;
	omap4_ctrl_pad_writel(r, OMAP4_CTRL_MODULE_PAD_CORE_CONTROL_USBB_HSIC);

	ret = gpio_request_array(tuna_hw_rev_gpios,
		ARRAY_SIZE(tuna_hw_rev_gpios));

	BUG_ON(ret);

	for (i = 0; i < ARRAY_SIZE(tuna_hw_rev_gpios); i++)
		tuna_hw_rev |= gpio_get_value(tuna_hw_rev_gpios[i].gpio) << i;

	snprintf(omap4_tuna_bd_info_string,
		ARRAY_SIZE(omap4_tuna_bd_info_string),
		"Tuna HW revision: %02x (%s), cpu %s ES%d.%d ",
		tuna_hw_rev,
		omap4_tuna_hw_rev_name(),
		cpu_is_omap443x() ? "OMAP4430" : "OMAP4460",
		(GET_OMAP_REVISION() >> 4) & 0xf,
		GET_OMAP_REVISION() & 0xf);

	pr_info("%s\n", omap4_tuna_bd_info_string);
	mach_panic_string = omap4_tuna_bd_info_string;
}
示例#2
0
static void gnex_get_revision(void) {
	size_t i;
	int revision = 0;
	static unsigned gpios[] = {
		76,
		75,
		74,
		73,
		170,
	};
	unsigned r;
	
	//disable usb HSIC pullup
	r = readl(CONTROL_PADCONF_CORE + 0x5c4);
	r &= ~(3 << 14);
	writel(r, CONTROL_PADCONF_CORE + 0x5c4);
	
	for (i = 0; i < ARRAY_SIZE(gpios); i++) {
		gpio_direction_input(gpios[i]);
		revision |= (!!gpio_get_value(gpios[i])) << i;
	}

	tuna_hw_rev = revision;
	printf("Tuna revision %d: %s\n",
		tuna_hw_rev, omap4_tuna_hw_rev_name());
}
示例#3
0
int do_tuna_print_revision(cmd_tbl_t *cmdtp, int flag,
	int argc, char * const argv[])
{
	gnex_get_revision();
	const char *rev_name = omap4_tuna_hw_rev_name();
	if (!rev_name) {
		return -1;
	}
	return 0;
}