1 1.1 nisimura /*- 2 1.1 nisimura * Copyright (c) 2012 The NetBSD Foundation, Inc. 3 1.1 nisimura * All rights reserved. 4 1.1 nisimura * 5 1.1 nisimura * This code is derived from software contributed to The NetBSD Foundation 6 1.1 nisimura * by Paul Fleischer <paul (at) xpg.dk> 7 1.1 nisimura * 8 1.1 nisimura * Redistribution and use in source and binary forms, with or without 9 1.1 nisimura * modification, are permitted provided that the following conditions 10 1.1 nisimura * are met: 11 1.1 nisimura * 1. Redistributions of source code must retain the above copyright 12 1.1 nisimura * notice, this list of conditions and the following disclaimer. 13 1.1 nisimura * 2. Redistributions in binary form must reproduce the above copyright 14 1.1 nisimura * notice, this list of conditions and the following disclaimer in the 15 1.1 nisimura * documentation and/or other materials provided with the distribution. 16 1.1 nisimura * 17 1.1 nisimura * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 18 1.1 nisimura * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 19 1.1 nisimura * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 20 1.1 nisimura * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 21 1.1 nisimura * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 22 1.1 nisimura * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 23 1.1 nisimura * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 24 1.1 nisimura * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 25 1.1 nisimura * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 26 1.1 nisimura * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 27 1.1 nisimura * POSSIBILITY OF SUCH DAMAGE. 28 1.1 nisimura */ 29 1.1 nisimura #ifndef _DEV_IC_UDA1341VAR_H_ 30 1.1 nisimura #define _DEV_IC_UDA1341VAR_H_ 31 1.1 nisimura 32 1.1 nisimura #include <sys/device.h> 33 1.1 nisimura #include <sys/audioio.h> 34 1.1 nisimura 35 1.1 nisimura struct uda1341_softc { 36 1.1 nisimura /* Pointer to the driver that holds this sc */ 37 1.1 nisimura void *parent; 38 1.1 nisimura 39 1.1 nisimura /* Pointer to L3 write function */ 40 1.1 nisimura void (*sc_l3_write)(void *,int,int); 41 1.1 nisimura 42 1.1 nisimura /* Approximate sample rate at which the codec is currently running */ 43 1.1 nisimura int sc_sample_rate_approx; 44 1.1 nisimura 45 1.1 nisimura int sc_system_clock; 46 1.1 nisimura #define UDA1341_CLOCK_NA 3 47 1.1 nisimura #define UDA1341_CLOCK_256 2 48 1.1 nisimura #define UDA1341_CLOCK_384 1 49 1.1 nisimura #define UDA1341_CLOCK_512 0 50 1.1 nisimura 51 1.1 nisimura int sc_bus_format; 52 1.1 nisimura #define UDA1341_BUS_I2S 0 53 1.1 nisimura #define UDA1341_BUS_LSB16 1 54 1.1 nisimura #define UDA1341_BUS_LSB18 2 55 1.1 nisimura #define UDA1341_BUS_LSB20 3 56 1.1 nisimura #define UDA1341_BUS_MSB 4 57 1.1 nisimura #define UDA1341_BUS_LSB16_MSB 5 58 1.1 nisimura #define UDA1341_BUS_LSB18_MSB 6 59 1.1 nisimura #define UDA1341_BUS_LSB20_MSB 7 60 1.1 nisimura 61 1.1 nisimura uint8_t sc_volume; 62 1.1 nisimura uint8_t sc_bass; 63 1.1 nisimura uint8_t sc_treble; 64 1.1 nisimura uint8_t sc_mode; 65 1.1 nisimura uint8_t sc_mute; 66 1.1 nisimura uint8_t sc_ogain; 67 1.1 nisimura uint8_t sc_dac_power; 68 1.1 nisimura uint8_t sc_adc_power; 69 1.1 nisimura uint8_t sc_inmix1; 70 1.1 nisimura uint8_t sc_inmix2; 71 1.1 nisimura uint8_t sc_micvol; 72 1.1 nisimura uint8_t sc_inmode; 73 1.1 nisimura uint8_t sc_agc; 74 1.1 nisimura uint8_t sc_agc_lvl; 75 1.1 nisimura uint8_t sc_ch2_gain; 76 1.1 nisimura 77 1.1 nisimura #define UDA1341_DEEMPHASIS_AUTO 4 78 1.1 nisimura uint8_t sc_deemphasis; 79 1.1 nisimura 80 1.1 nisimura }; 81 1.1 nisimura 82 1.1 nisimura int uda1341_attach(struct uda1341_softc *); 83 1.1 nisimura int uda1341_open(void *, int ); 84 1.1 nisimura void uda1341_close(void *); 85 1.2 isaki int uda1341_set_format(void *, int, 86 1.2 isaki const audio_params_t *, const audio_params_t *, 87 1.2 isaki audio_filter_reg_t *, audio_filter_reg_t *); 88 1.1 nisimura int uda1341_query_devinfo(void *, mixer_devinfo_t *); 89 1.1 nisimura int uda1341_get_port(void *, mixer_ctrl_t *); 90 1.1 nisimura int uda1341_set_port(void *, mixer_ctrl_t *); 91 1.1 nisimura #endif 92