Module Name: src
Committed By: kiyohara
Date: Thu Oct 7 12:06:10 UTC 2010
Modified Files:
src/sys/arch/arm/xscale: pxa2x0_mci.c
src/sys/dev/ic: w83l518d_sdmmc.c
src/sys/dev/sdmmc: sdhc.c
Log Message:
Support change Open-drain/Push-pull by bus_rod().
To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 src/sys/arch/arm/xscale/pxa2x0_mci.c
cvs rdiff -u -r1.2 -r1.3 src/sys/dev/ic/w83l518d_sdmmc.c
cvs rdiff -u -r1.7 -r1.8 src/sys/dev/sdmmc/sdhc.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/arm/xscale/pxa2x0_mci.c
diff -u src/sys/arch/arm/xscale/pxa2x0_mci.c:1.6 src/sys/arch/arm/xscale/pxa2x0_mci.c:1.7
--- src/sys/arch/arm/xscale/pxa2x0_mci.c:1.6 Fri Oct 1 09:54:56 2010
+++ src/sys/arch/arm/xscale/pxa2x0_mci.c Thu Oct 7 12:06:09 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: pxa2x0_mci.c,v 1.6 2010/10/01 09:54:56 kiyohara Exp $ */
+/* $NetBSD: pxa2x0_mci.c,v 1.7 2010/10/07 12:06:09 kiyohara Exp $ */
/* $OpenBSD: pxa2x0_mmc.c,v 1.5 2009/02/23 18:09:55 miod Exp $ */
/*
@@ -54,7 +54,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pxa2x0_mci.c,v 1.6 2010/10/01 09:54:56 kiyohara Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pxa2x0_mci.c,v 1.7 2010/10/07 12:06:09 kiyohara Exp $");
#include <sys/param.h>
#include <sys/device.h>
@@ -101,6 +101,7 @@
static int pxamci_bus_power(sdmmc_chipset_handle_t, uint32_t);
static int pxamci_bus_clock(sdmmc_chipset_handle_t, int);
static int pxamci_bus_width(sdmmc_chipset_handle_t, int);
+static int pxamci_bus_rod(sdmmc_chipset_handle_t, int);
static void pxamci_exec_command(sdmmc_chipset_handle_t,
struct sdmmc_command *);
static void pxamci_card_enable_intr(sdmmc_chipset_handle_t, int);
@@ -124,6 +125,7 @@
.bus_power = pxamci_bus_power,
.bus_clock = pxamci_bus_clock,
.bus_width = pxamci_bus_width,
+ .bus_rod = pxamci_bus_rod,
/* command execution */
.exec_command = pxamci_exec_command,
@@ -548,6 +550,14 @@
return rv;
}
+static int
+pxamci_bus_rod(sdmmc_chipset_handle_t sch, int on)
+{
+
+ /* not support */
+ return -1;
+}
+
static void
pxamci_exec_command(sdmmc_chipset_handle_t sch, struct sdmmc_command *cmd)
{
Index: src/sys/dev/ic/w83l518d_sdmmc.c
diff -u src/sys/dev/ic/w83l518d_sdmmc.c:1.2 src/sys/dev/ic/w83l518d_sdmmc.c:1.3
--- src/sys/dev/ic/w83l518d_sdmmc.c:1.2 Thu Aug 19 14:58:22 2010
+++ src/sys/dev/ic/w83l518d_sdmmc.c Thu Oct 7 12:06:09 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: w83l518d_sdmmc.c,v 1.2 2010/08/19 14:58:22 jmcneill Exp $ */
+/* $NetBSD: w83l518d_sdmmc.c,v 1.3 2010/10/07 12:06:09 kiyohara Exp $ */
/*
* Copyright (c) 2009 Jared D. McNeill <[email protected]>
@@ -26,7 +26,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: w83l518d_sdmmc.c,v 1.2 2010/08/19 14:58:22 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: w83l518d_sdmmc.c,v 1.3 2010/10/07 12:06:09 kiyohara Exp $");
#include <sys/param.h>
#include <sys/kernel.h>
@@ -75,6 +75,7 @@
static int wb_sdmmc_bus_power(sdmmc_chipset_handle_t, uint32_t);
static int wb_sdmmc_bus_clock(sdmmc_chipset_handle_t, int);
static int wb_sdmmc_bus_width(sdmmc_chipset_handle_t, int);
+static int wb_sdmmc_bus_rod(sdmmc_chipset_handle_t, int);
static void wb_sdmmc_exec_command(sdmmc_chipset_handle_t,
struct sdmmc_command *);
static void wb_sdmmc_card_enable_intr(sdmmc_chipset_handle_t, int);
@@ -89,6 +90,7 @@
.bus_power = wb_sdmmc_bus_power,
.bus_clock = wb_sdmmc_bus_clock,
.bus_width = wb_sdmmc_bus_width,
+ .bus_rod = wb_sdmmc_bus_rod,
.exec_command = wb_sdmmc_exec_command,
.card_enable_intr = wb_sdmmc_card_enable_intr,
.card_intr_ack = wb_sdmmc_card_intr_ack,
@@ -311,6 +313,14 @@
return 0;
}
+static int
+wb_sdmmc_bus_rod(sdmmc_chipset_handle_t sch, int on)
+{
+
+ /* Not support */
+ return -1;
+}
+
static void
wb_sdmmc_rsp_read_long(struct wb_softc *wb, struct sdmmc_command *cmd)
Index: src/sys/dev/sdmmc/sdhc.c
diff -u src/sys/dev/sdmmc/sdhc.c:1.7 src/sys/dev/sdmmc/sdhc.c:1.8
--- src/sys/dev/sdmmc/sdhc.c:1.7 Sat Mar 27 03:04:52 2010
+++ src/sys/dev/sdmmc/sdhc.c Thu Oct 7 12:06:10 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: sdhc.c,v 1.7 2010/03/27 03:04:52 nonaka Exp $ */
+/* $NetBSD: sdhc.c,v 1.8 2010/10/07 12:06:10 kiyohara Exp $ */
/* $OpenBSD: sdhc.c,v 1.25 2009/01/13 19:44:20 grange Exp $ */
/*
@@ -23,7 +23,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sdhc.c,v 1.7 2010/03/27 03:04:52 nonaka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sdhc.c,v 1.8 2010/10/07 12:06:10 kiyohara Exp $");
#include <sys/param.h>
#include <sys/device.h>
@@ -112,6 +112,7 @@
static int sdhc_bus_power(sdmmc_chipset_handle_t, uint32_t);
static int sdhc_bus_clock(sdmmc_chipset_handle_t, int);
static int sdhc_bus_width(sdmmc_chipset_handle_t, int);
+static int sdhc_bus_rod(sdmmc_chipset_handle_t, int);
static void sdhc_card_enable_intr(sdmmc_chipset_handle_t, int);
static void sdhc_card_intr_ack(sdmmc_chipset_handle_t);
static void sdhc_exec_command(sdmmc_chipset_handle_t,
@@ -144,6 +145,7 @@
sdhc_bus_power,
sdhc_bus_clock,
sdhc_bus_width,
+ sdhc_bus_rod,
/* command execution */
sdhc_exec_command,
@@ -630,6 +632,11 @@
*/
HSET2(hp, SDHC_CLOCK_CTL, SDHC_SDCLK_ENABLE);
+ if (freq > 25000)
+ HSET1(hp, SDHC_HOST_CTL, SDHC_HIGH_SPEED);
+ else
+ HCLR1(hp, SDHC_HOST_CTL, SDHC_HIGH_SPEED);
+
out:
mutex_exit(&hp->host_mtx);
@@ -664,6 +671,14 @@
return 0;
}
+static int
+sdhc_bus_rod(sdmmc_chipset_handle_t sch, int on)
+{
+
+ /* Nothing ?? */
+ return 0;
+}
+
static void
sdhc_card_enable_intr(sdmmc_chipset_handle_t sch, int enable)
{