// SPDX-License-Identifier: GPL-2.0 /* * For the STS-Thompson TDA7432 audio processor chip * * Handles audio functions: volume, balance, tone, loudness * This driver will not complain if used with any * other i2c device with the same address. * * Muting and tone control by Jonathan Isom <jisom@ematic.com> * * Copyright (c) 2000 Eric Sandeen <eric_sandeen@bigfoot.com> * Copyright (c) 2006 Mauro Carvalho Chehab <mchehab@kernel.org> * * Based on tda9855.c by Steve VanDeBogart (vandebo@uclink.berkeley.edu) * Which was based on tda8425.c by Greg Alexander (c) 1998 * * OPTIONS: * debug - set to 1 if you'd like to see debug messages * set to 2 if you'd like to be inundated with debug messages * * loudness - set between 0 and 15 for varying degrees of loudness effect * * maxvol - set maximum volume to +20db (1), default is 0db(0)
*/
/* The TDA7432 is made by STS-Thompson * http://www.st.com * http://us.st.com/stonline/books/pdf/docs/4056.pdf * * TDA7432: I2C-bus controlled basic audio processor * * The TDA7432 controls basic audio functions like volume, balance, * and tone control (including loudness). It also has four channel * output (for front and rear). Since most vidcap cards probably * don't have 4 channel output, this driver will set front & rear * together (no independent control).
*/
/* Many of these not used - just for documentation */
/* Subaddress 0x00 - Input selection and bass control */
/* Bits 0,1,2 control input: * 0x00 - Stereo input * 0x02 - Mono input * 0x03 - Mute (Using Attenuators Plays better with modules) * Mono probably isn't used - I'm guessing only the stereo * input is connected on most cards, so we'll set it to stereo. * * Bit 3 controls bass cut: 0/1 is non-symmetric/symmetric bass cut * Bit 4 controls bass range: 0/1 is extended/standard bass range * * Highest 3 bits not used
*/
/* Bits 0,1,2 control absolute treble gain from 0dB to 14dB * 0x0 is 14dB, 0x7 is 0dB * * Bit 3 controls treble attenuation/gain (sign) * 1 = gain (+) * 0 = attenuation (-) * * Bits 4,5,6 control absolute bass gain from 0dB to 14dB * (This is only true for normal base range, set in 0x00) * 0x0 << 4 is 14dB, 0x7 is 0dB * * Bit 7 controls bass attenuation/gain (sign) * 1 << 7 = gain (+) * 0 << 7 = attenuation (-) * * Example: * 1 1 0 1 0 1 0 1 is +4dB bass, -4dB treble
*/
/* Subaddress 0x03 - Left Front attenuation */ /* Subaddress 0x04 - Left Rear attenuation */ /* Subaddress 0x05 - Right Front attenuation */ /* Subaddress 0x06 - Right Rear attenuation */
/* Bits 0,1,2,3,4 control attenuation from 0dB to -37.5dB * in 1.5dB steps. * * 0x00 is 0dB * 0x1f is -37.5dB * * Bit 5 mutes that channel when set (1 = mute, 0 = unmute) * We'll use the mute on the input, though (above) * Bits 6,7 unused
*/
/* Bits 0,1,2,3 control loudness from 0dB to -15dB in 1dB steps * when bit 4 is NOT set * * 0x0 is 0dB * 0xf is -15dB * * If bit 4 is set, then there is a flat attenuation according to * the lower 4 bits, as above. * * Bits 5,6,7 unused
*/
/* Begin code */
staticint tda7432_write(struct v4l2_subdev *sd, int subaddr, int val)
{ struct i2c_client *client = v4l2_get_subdevdata(sd); unsignedchar buffer[2];
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.