From: Stefan Roese Date: Tue, 11 Dec 2007 10:34:54 +0000 (+0100) Subject: Merge commit 'u-boot/master' into for-1.3.1 X-Git-Tag: v1.3.2-rc1~102^2~62 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=9caeaadf508cd0e11ac5dfc56ab0f72e3b89a105;p=u-boot Merge commit 'u-boot/master' into for-1.3.1 Conflicts: drivers/rtc/Makefile --- 9caeaadf508cd0e11ac5dfc56ab0f72e3b89a105 diff --cc drivers/hwmon/ds1775.c index 0000000000,e44cee3279..0fbb0b42a7 mode 000000,100644..100644 --- a/drivers/hwmon/ds1775.c +++ b/drivers/hwmon/ds1775.c @@@ -1,0 -1,156 +1,156 @@@ + /* + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + + /* + * Dallas Semiconductor's DS1775 Digital Thermometer and Thermostat + */ + + #include + + #ifdef CONFIG_DTT_DS1775 + #include + #include + -#define DTT_I2C_DEV_CODE 0x49 /* Dallas Semi's DS1775 device code */ ++#define DTT_I2C_DEV_CODE CFG_I2C_DTT_ADDR /* Dallas Semi's DS1775 device code */ + + int dtt_read(int sensor, int reg) + { + int dlen; + uchar data[2]; + + /* + * Calculate sensor address and command + */ + sensor = DTT_I2C_DEV_CODE + (sensor & 0x07); /* Calculate addr of ds1775 */ + + /* + * Prepare to handle 2 byte result + */ + if ((reg == DTT_READ_TEMP) || + (reg == DTT_TEMP_OS) || (reg == DTT_TEMP_HYST)) + dlen = 2; + else + dlen = 1; + + /* + * Now try to read the register + */ + if (i2c_read(sensor, reg, 1, data, dlen) != 0) + return 1; + + /* + * Handle 2 byte result + */ + if (dlen == 2) + return ((int)((short)data[1] + (((short)data[0]) << 8))); + + return (int) data[0]; + } + + + int dtt_write(int sensor, int reg, int val) + { + int dlen; + uchar data[2]; + + /* + * Calculate sensor address and register + */ + sensor = DTT_I2C_DEV_CODE + (sensor & 0x07); + + /* + * Handle various data sizes + */ + if ((reg == DTT_READ_TEMP) || + (reg == DTT_TEMP_OS) || (reg == DTT_TEMP_HYST)) { + dlen = 2; + data[0] = (char)((val >> 8) & 0xff); /* MSB first */ + data[1] = (char)(val & 0xff); + } else { + dlen = 1; + data[0] = (char)(val & 0xff); + } + + /* + * Write value to device + */ + if (i2c_write(sensor, reg, 1, data, dlen) != 0) + return 1; + + return 0; + } + + + static int _dtt_init(int sensor) + { + int val; + + /* + * Setup High Temp + */ + val = ((CFG_DTT_MAX_TEMP * 2) << 7) & 0xff80; + if (dtt_write(sensor, DTT_TEMP_OS, val) != 0) + return 1; + udelay(50000); /* Max 50ms */ + + /* + * Setup Low Temp - hysteresis + */ + val = (((CFG_DTT_MAX_TEMP - CFG_DTT_HYSTERESIS) * 2) << 7) & 0xff80; + if (dtt_write(sensor, DTT_TEMP_HYST, val) != 0) + return 1; + udelay(50000); /* Max 50ms */ + + /* + * Setup configuraton register + * + * Fault Tolerance limits 4, Thermometer resolution bits is 9, + * Polarity = Active Low,continuous conversion mode, Thermostat + * mode is interrupt mode + */ + val = 0xa; + if (dtt_write(sensor, DTT_CONFIG, val) != 0) + return 1; + udelay(50000); /* Max 50ms */ + + return 0; + } + + + int dtt_init (void) + { + int i; + unsigned char sensors[] = CONFIG_DTT_SENSORS; + + for (i = 0; i < sizeof(sensors); i++) { + if (_dtt_init(sensors[i]) != 0) + printf("DTT%d: FAILED\n", i+1); + else + printf("DTT%d: %i C\n", i+1, dtt_get_temp(sensors[i])); + } + + return (0); + } + + + int dtt_get_temp(int sensor) + { + return (dtt_read(sensor, DTT_READ_TEMP) / 256); + } + + + #endif /* CONFIG_DTT_DS1775 */ diff --cc drivers/rtc/Makefile index 0000000000,4a22b0d94f..1d6016ef87 mode 000000,100644..100644 --- a/drivers/rtc/Makefile +++ b/drivers/rtc/Makefile @@@ -1,0 -1,70 +1,71 @@@ + # + # (C) Copyright 2001-2006 + # Wolfgang Denk, DENX Software Engineering, wd@denx.de. + # + # See file CREDITS for list of people who contributed to this + # project. + # + # This program is free software; you can redistribute it and/or + # modify it under the terms of the GNU General Public License as + # published by the Free Software Foundation; either version 2 of + # the License, or (at your option) any later version. + # + # This program is distributed in the hope that it will be useful, + # but WITHOUT ANY WARRANTY; without even the implied warranty of + # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + # GNU General Public License for more details. + # + # You should have received a copy of the GNU General Public License + # along with this program; if not, write to the Free Software + # Foundation, Inc., 59 Temple Place, Suite 330, Boston, + # MA 02111-1307 USA + # + + include $(TOPDIR)/config.mk + + #CFLAGS += -DDEBUG + + LIB = $(obj)librtc.a + + COBJS-y += date.o + COBJS-y += bf5xx_rtc.o + COBJS-y += ds12887.o + COBJS-y += ds1302.o + COBJS-y += ds1306.o + COBJS-y += ds1307.o + COBJS-y += ds1337.o + COBJS-y += ds1374.o + COBJS-y += ds1556.o + COBJS-y += ds164x.o + COBJS-y += ds174x.o + COBJS-y += ds3231.o + COBJS-y += m41t11.o + COBJS-y += max6900.o + COBJS-y += m48t35ax.o + COBJS-y += mc146818.o + COBJS-y += mk48t59.o + COBJS-y += mpc5xxx.o + COBJS-y += mpc8xx.o + COBJS-y += pcf8563.o + COBJS-y += s3c24x0_rtc.o + COBJS-y += rs5c372.o + COBJS-y += mcfrtc.o ++COBJS-y += x1205.o + + COBJS := $(COBJS-y) + SRCS := $(COBJS:.o=.c) + OBJS := $(addprefix $(obj),$(COBJS)) + + all: $(LIB) + + $(LIB): $(obj).depend $(OBJS) + $(AR) $(ARFLAGS) $@ $(OBJS) + + ######################################################################### + + # defines $(obj).depend target + include $(SRCTREE)/rules.mk + + sinclude $(obj).depend + + #########################################################################