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 VIA VT1631 LVDS 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 = "VT1631 LVDS Transmitter";
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_civoid via_aux_vt1631_probe(struct via_aux_bus *bus)
1762306a36Sopenharmony_ci{
1862306a36Sopenharmony_ci	struct via_aux_drv drv = {
1962306a36Sopenharmony_ci		.bus	=	bus,
2062306a36Sopenharmony_ci		.addr	=	0x38,
2162306a36Sopenharmony_ci		.name	=	name};
2262306a36Sopenharmony_ci	/* check vendor id and device id */
2362306a36Sopenharmony_ci	const u8 id[] = {0x06, 0x11, 0x91, 0x31}, len = ARRAY_SIZE(id);
2462306a36Sopenharmony_ci	u8 tmp[ARRAY_SIZE(id)];
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ci	if (!via_aux_read(&drv, 0x00, tmp, len) || memcmp(id, tmp, len))
2762306a36Sopenharmony_ci		return;
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci	printk(KERN_INFO "viafb: Found %s\n", name);
3062306a36Sopenharmony_ci	via_aux_add(&drv);
3162306a36Sopenharmony_ci}
32