|
@@ -44,6 +44,7 @@ enum ds_type {
|
|
|
ds_3231,
|
|
|
m41t0,
|
|
|
m41t00,
|
|
|
+ m41t11,
|
|
|
mcp794xx,
|
|
|
rx_8025,
|
|
|
rx_8130,
|
|
@@ -227,6 +228,11 @@ static const struct chip_desc chips[last_ds_type] = {
|
|
|
.irq_handler = rx8130_irq,
|
|
|
.rtc_ops = &rx8130_rtc_ops,
|
|
|
},
|
|
|
+ [m41t11] = {
|
|
|
+ /* this is battery backed SRAM */
|
|
|
+ .nvram_offset = 8,
|
|
|
+ .nvram_size = 56,
|
|
|
+ },
|
|
|
[mcp794xx] = {
|
|
|
.alarm = 1,
|
|
|
/* this is battery backed SRAM */
|
|
@@ -249,6 +255,7 @@ static const struct i2c_device_id ds1307_id[] = {
|
|
|
{ "ds3231", ds_3231 },
|
|
|
{ "m41t0", m41t0 },
|
|
|
{ "m41t00", m41t00 },
|
|
|
+ { "m41t11", m41t11 },
|
|
|
{ "mcp7940x", mcp794xx },
|
|
|
{ "mcp7941x", mcp794xx },
|
|
|
{ "pt7c4338", ds_1307 },
|
|
@@ -305,6 +312,10 @@ static const struct of_device_id ds1307_of_match[] = {
|
|
|
.compatible = "st,m41t00",
|
|
|
.data = (void *)m41t00
|
|
|
},
|
|
|
+ {
|
|
|
+ .compatible = "st,m41t11",
|
|
|
+ .data = (void *)m41t11
|
|
|
+ },
|
|
|
{
|
|
|
.compatible = "microchip,mcp7940x",
|
|
|
.data = (void *)mcp794xx
|
|
@@ -347,6 +358,7 @@ static const struct acpi_device_id ds1307_acpi_ids[] = {
|
|
|
{ .id = "DS3231", .driver_data = ds_3231 },
|
|
|
{ .id = "M41T0", .driver_data = m41t0 },
|
|
|
{ .id = "M41T00", .driver_data = m41t00 },
|
|
|
+ { .id = "M41T11", .driver_data = m41t11 },
|
|
|
{ .id = "MCP7940X", .driver_data = mcp794xx },
|
|
|
{ .id = "MCP7941X", .driver_data = mcp794xx },
|
|
|
{ .id = "PT7C4338", .driver_data = ds_1307 },
|
|
@@ -1576,6 +1588,7 @@ read_rtc:
|
|
|
case ds_1307:
|
|
|
case m41t0:
|
|
|
case m41t00:
|
|
|
+ case m41t11:
|
|
|
/* clock halted? turn it on, so clock can tick. */
|
|
|
if (tmp & DS1307_BIT_CH) {
|
|
|
regmap_write(ds1307->regmap, DS1307_REG_SECS, 0);
|
|
@@ -1641,6 +1654,7 @@ read_rtc:
|
|
|
case ds_1340:
|
|
|
case m41t0:
|
|
|
case m41t00:
|
|
|
+ case m41t11:
|
|
|
/*
|
|
|
* NOTE: ignores century bits; fix before deploying
|
|
|
* systems that will run through year 2100.
|