162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-or-later
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright 2011 Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
462306a36Sopenharmony_ci */
562306a36Sopenharmony_ci/*
662306a36Sopenharmony_ci * driver for Chrontel CH7301 DVI Transmitter
762306a36Sopenharmony_ci */
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci#include <linux/slab.h>
1062306a36Sopenharmony_ci#include "via_aux.h"
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_cistatic const char *name = "CH7301 DVI Transmitter";
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_cistatic void probe(struct via_aux_bus *bus, u8 addr)
1762306a36Sopenharmony_ci{
1862306a36Sopenharmony_ci	struct via_aux_drv drv = {
1962306a36Sopenharmony_ci		.bus	=	bus,
2062306a36Sopenharmony_ci		.addr	=	addr,
2162306a36Sopenharmony_ci		.name	=	name};
2262306a36Sopenharmony_ci	u8 tmp;
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ci	if (!via_aux_read(&drv, 0x4B, &tmp, 1) || tmp != 0x17)
2562306a36Sopenharmony_ci		return;
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ci	printk(KERN_INFO "viafb: Found %s at address 0x%x\n", name, addr);
2862306a36Sopenharmony_ci	via_aux_add(&drv);
2962306a36Sopenharmony_ci}
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_civoid via_aux_ch7301_probe(struct via_aux_bus *bus)
3262306a36Sopenharmony_ci{
3362306a36Sopenharmony_ci	probe(bus, 0x75);
3462306a36Sopenharmony_ci	probe(bus, 0x76);
3562306a36Sopenharmony_ci}
36