include/linux/mfd/ti_am335x_tscadc.h

Source file repositories/reference/linux-study-clean/include/linux/mfd/ti_am335x_tscadc.h

File Facts

System
Linux kernel
Corpus path
include/linux/mfd/ti_am335x_tscadc.h
Extension
.h
Size
5875 bytes
Lines
197
Domain
Core OS
Bucket
Core Kernel Interface
Inferred role
Core OS: implementation source
Status
source implementation candidate

Why This File Exists

Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.

Dependency Surface

Detected Declarations

Annotated Snippet

struct ti_tscadc_data {
	char *adc_feature_name;
	char *adc_feature_compatible;
	char *secondary_feature_name;
	char *secondary_feature_compatible;
	unsigned int target_clk_rate;
};

struct ti_tscadc_dev {
	struct device *dev;
	struct regmap *regmap;
	void __iomem *tscadc_base;
	phys_addr_t tscadc_phys_base;
	const struct ti_tscadc_data *data;
	int irq;
	struct mfd_cell cells[TSCADC_CELLS];
	u32 ctrl;
	u32 reg_se_cache;
	bool adc_waiting;
	bool adc_in_use;
	wait_queue_head_t reg_se_wait;
	spinlock_t reg_lock;
	unsigned int clk_div;

	/* tsc device */
	struct titsc *tsc;

	/* adc device */
	struct adc_device *adc;
};

static inline struct ti_tscadc_dev *ti_tscadc_dev_get(struct platform_device *p)
{
	struct ti_tscadc_dev **tscadc_dev = p->dev.platform_data;

	return *tscadc_dev;
}

static inline bool ti_adc_with_touchscreen(struct ti_tscadc_dev *tscadc)
{
	return of_device_is_compatible(tscadc->dev->of_node,
				       "ti,am3359-tscadc");
}

void am335x_tsc_se_set_cache(struct ti_tscadc_dev *tsadc, u32 val);
void am335x_tsc_se_set_once(struct ti_tscadc_dev *tsadc, u32 val);
void am335x_tsc_se_clr(struct ti_tscadc_dev *tsadc, u32 val);
void am335x_tsc_se_adc_done(struct ti_tscadc_dev *tsadc);

#endif

Annotation

Implementation Notes