cregit-Linux how code gets into the kernel

Release 4.7 sound/soc/codecs/l3.c

Directory: sound/soc/codecs
/*
 * L3 code
 *
 *  Copyright (C) 2008, Christian Pellegrin <chripell@evolware.org>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 *
 *
 * based on:
 *
 * L3 bus algorithm module.
 *
 *  Copyright (C) 2001 Russell King, All Rights Reserved.
 *
 *
 */

#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/delay.h>

#include <sound/l3.h>

/*
 * Send one byte of data to the chip.  Data is latched into the chip on
 * the rising edge of the clock.
 */

static void sendbyte(struct l3_pins *adap, unsigned int byte) { int i; for (i = 0; i < 8; i++) { adap->setclk(0); udelay(adap->data_hold); adap->setdat(byte & 1); udelay(adap->data_setup); adap->setclk(1); udelay(adap->clock_high); byte >>= 1; } }

Contributors

PersonTokensPropCommitsCommitProp
christian pellegrinchristian pellegrin81100.00%1100.00%
Total81100.00%1100.00%

/* * Send a set of bytes to the chip. We need to pulse the MODE line * between each byte, but never at the start nor at the end of the * transfer. */
static void sendbytes(struct l3_pins *adap, const u8 *buf, int len) { int i; for (i = 0; i < len; i++) { if (i) { udelay(adap->mode_hold); adap->setmode(0); udelay(adap->mode); } adap->setmode(1); udelay(adap->mode_setup); sendbyte(adap, buf[i]); } }

Contributors

PersonTokensPropCommitsCommitProp
christian pellegrinchristian pellegrin88100.00%1100.00%
Total88100.00%1100.00%


int l3_write(struct l3_pins *adap, u8 addr, u8 *data, int len) { adap->setclk(1); adap->setdat(1); adap->setmode(1); udelay(adap->mode); adap->setmode(0); udelay(adap->mode_setup); sendbyte(adap, addr); udelay(adap->mode_hold); sendbytes(adap, data, len); adap->setclk(1); adap->setdat(1); adap->setmode(0); return len; }

Contributors

PersonTokensPropCommitsCommitProp
christian pellegrinchristian pellegrin109100.00%1100.00%
Total109100.00%1100.00%

EXPORT_SYMBOL_GPL(l3_write); MODULE_DESCRIPTION("L3 bit-banging driver"); MODULE_AUTHOR("Christian Pellegrin <chripell@evolware.org>"); MODULE_LICENSE("GPL");

Overall Contributors

PersonTokensPropCommitsCommitProp
christian pellegrinchristian pellegrin313100.00%1100.00%
Total313100.00%1100.00%
Directory: sound/soc/codecs
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
{% endraw %}