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 <jmcne...@invisible.ca> @@ -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) {