Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Linux/include/linux/mfd/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 2 kB image not shown  

Quelle  lp3943.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * TI/National Semiconductor LP3943 Device
 *
 * Copyright 2013 Texas Instruments
 *
 * Author: Milo Kim <milo.kim@ti.com>
 */


#ifndef __MFD_LP3943_H__
#define __MFD_LP3943_H__

#include <linux/gpio.h>
#include <linux/regmap.h>

/* Registers */
#define LP3943_REG_GPIO_A  0x00
#define LP3943_REG_GPIO_B  0x01
#define LP3943_REG_PRESCALE0  0x02
#define LP3943_REG_PWM0   0x03
#define LP3943_REG_PRESCALE1  0x04
#define LP3943_REG_PWM1   0x05
#define LP3943_REG_MUX0   0x06
#define LP3943_REG_MUX1   0x07
#define LP3943_REG_MUX2   0x08
#define LP3943_REG_MUX3   0x09

/* Bit description for LP3943_REG_MUX0 ~ 3 */
#define LP3943_GPIO_IN   0x00
#define LP3943_GPIO_OUT_HIGH  0x00
#define LP3943_GPIO_OUT_LOW  0x01
#define LP3943_DIM_PWM0   0x02
#define LP3943_DIM_PWM1   0x03

#define LP3943_NUM_PWMS   2

enum lp3943_pwm_output {
 LP3943_PWM_OUT0,
 LP3943_PWM_OUT1,
 LP3943_PWM_OUT2,
 LP3943_PWM_OUT3,
 LP3943_PWM_OUT4,
 LP3943_PWM_OUT5,
 LP3943_PWM_OUT6,
 LP3943_PWM_OUT7,
 LP3943_PWM_OUT8,
 LP3943_PWM_OUT9,
 LP3943_PWM_OUT10,
 LP3943_PWM_OUT11,
 LP3943_PWM_OUT12,
 LP3943_PWM_OUT13,
 LP3943_PWM_OUT14,
 LP3943_PWM_OUT15,
};

/*
 * struct lp3943_pwm_map
 * @output: Output pins which are mapped to each PWM channel
 * @num_outputs: Number of outputs
 */

struct lp3943_pwm_map {
 enum lp3943_pwm_output *output;
 int num_outputs;
};

/*
 * struct lp3943_platform_data
 * @pwms: Output channel definitions for PWM channel 0 and 1
 */

struct lp3943_platform_data {
 struct lp3943_pwm_map *pwms[LP3943_NUM_PWMS];
};

/*
 * struct lp3943_reg_cfg
 * @reg: Register address
 * @mask: Register bit mask to be updated
 * @shift: Register bit shift
 */

struct lp3943_reg_cfg {
 u8 reg;
 u8 mask;
 u8 shift;
};

/*
 * struct lp3943
 * @dev: Parent device pointer
 * @regmap: Used for I2C communication on accessing registers
 * @pdata: LP3943 platform specific data
 * @mux_cfg: Register configuration for pin MUX
 * @pin_used: Bit mask for output pin used.
 *       This bitmask is used for pin assignment management.
 *       1 = pin used, 0 = available.
 *       Only LSB 16 bits are used, but it is unsigned long type
 *       for atomic bitwise operations.
 */

struct lp3943 {
 struct device *dev;
 struct regmap *regmap;
 struct lp3943_platform_data *pdata;
 const struct lp3943_reg_cfg *mux_cfg;
 unsigned long pin_used;
};

int lp3943_read_byte(struct lp3943 *lp3943, u8 reg, u8 *read);
int lp3943_write_byte(struct lp3943 *lp3943, u8 reg, u8 data);
int lp3943_update_bits(struct lp3943 *lp3943, u8 reg, u8 mask, u8 data);
#endif

Messung V0.5
C=93 H=100 G=96

¤ Dauer der Verarbeitung: 0.12 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

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.