aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/rtc
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2008-05-15 21:28:46 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2008-05-15 21:28:46 -0400
commitf26a3988917913b3d11b2bd741601a2c64ab9204 (patch)
tree69b3da12c23ebe30a4ed0563648eb1bca5e83185 /include/linux/rtc
parentac0e9c30b1cb22c01f3edbb94857de2bae7611ca (diff)
parentfaa5b9daa8bd8a18b5b1f3a8dd79261503f7cdd3 (diff)
Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc
* 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc: [POWERPC] macintosh: Replace deprecated __initcall with device_initcall [POWERPC] cell: Fix section mismatches in io-workarounds code [POWERPC] spufs: Fix compile error [POWERPC] Fix uninitialized variable bug in copy_{to|from}_user [POWERPC] Add null pointer check to of_find_property [POWERPC] vmemmap fixes to use smaller pages [POWERPC] spufs: Fix pointer reference in find_victim [POWERPC] 85xx: SBC8548 - Add flash support and HW Rev reporting [POWERPC] 85xx: Fix some sparse warnings for 85xx MDS [POWERPC] 83xx: Enable DMA engine on the MPC8377 MDS board. [POWERPC] 86xx: mpc8610_hpcd: fix second serial port [POWERPC] 86xx: mpc8610_hpcd: add support for NOR and NAND flashes [POWERPC] 85xx: Add 8568 PHY workarounds to board code [POWERPC] 86xx: mpc8610_hpcd: use ULI526X driver for on-board ethernet
Diffstat (limited to 'include/linux/rtc')
0 files changed, 0 insertions, 0 deletions
lass="hl num">6 || o < 1 || o > 4 || g < 0 || g > 6 || g % 2 != 0) return -EINVAL; byte = ((o - 1) << 5); byte |= (i - 1); /* to understand this, have a look at the tea6420-specs (p.5) */ switch (g) { case 0: byte |= (3 << 3); break; case 2: byte |= (2 << 3); break; case 4: byte |= (1 << 3); break; case 6: break; } ret = i2c_smbus_write_byte(client, byte); if (ret) { v4l2_dbg(1, debug, sd, "i2c_smbus_write_byte() failed, ret:%d\n", ret); return -EIO; } return 0; } /* ----------------------------------------------------------------------- */ static const struct v4l2_subdev_audio_ops tea6420_audio_ops = { .s_routing = tea6420_s_routing, }; static const struct v4l2_subdev_ops tea6420_ops = { .audio = &tea6420_audio_ops, }; static int tea6420_probe(struct i2c_client *client, const struct i2c_device_id *id) { struct v4l2_subdev *sd; int err, i; /* let's see whether this adapter can support what we need */ if (!i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_WRITE_BYTE)) return -EIO; v4l_info(client, "chip found @ 0x%x (%s)\n", client->addr << 1, client->adapter->name); sd = devm_kzalloc(&client->dev, sizeof(*sd), GFP_KERNEL); if (sd == NULL) return -ENOMEM; v4l2_i2c_subdev_init(sd, client, &tea6420_ops); /* set initial values: set "mute"-input to all outputs at gain 0 */ err = 0; for (i = 1; i < 5; i++) err += tea6420_s_routing(sd, 6, i, 0); if (err) { v4l_dbg(1, debug, client, "could not initialize tea6420\n"); return -ENODEV; } return 0; } static int tea6420_remove(struct i2c_client *client) { struct v4l2_subdev *sd = i2c_get_clientdata(client); v4l2_device_unregister_subdev(sd); return 0; } static const struct i2c_device_id tea6420_id[] = { { "tea6420", 0 }, { } }; MODULE_DEVICE_TABLE(i2c, tea6420_id); static struct i2c_driver tea6420_driver = { .driver = { .name = "tea6420", }, .probe = tea6420_probe, .remove = tea6420_remove, .id_table = tea6420_id, }; module_i2c_driver(tea6420_driver);