18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-or-later 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * Copyright 2011 Florian Tobias Schandinat <FlorianSchandinat@gmx.de> 48c2ecf20Sopenharmony_ci */ 58c2ecf20Sopenharmony_ci/* 68c2ecf20Sopenharmony_ci * driver for VIA VT1636 LVDS Transmitter 78c2ecf20Sopenharmony_ci */ 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_ci#include <linux/slab.h> 108c2ecf20Sopenharmony_ci#include "via_aux.h" 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_ci 138c2ecf20Sopenharmony_cistatic const char *name = "VT1636 LVDS Transmitter"; 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_ci 168c2ecf20Sopenharmony_civoid via_aux_vt1636_probe(struct via_aux_bus *bus) 178c2ecf20Sopenharmony_ci{ 188c2ecf20Sopenharmony_ci struct via_aux_drv drv = { 198c2ecf20Sopenharmony_ci .bus = bus, 208c2ecf20Sopenharmony_ci .addr = 0x40, 218c2ecf20Sopenharmony_ci .name = name}; 228c2ecf20Sopenharmony_ci /* check vendor id and device id */ 238c2ecf20Sopenharmony_ci const u8 id[] = {0x06, 0x11, 0x45, 0x33}, len = ARRAY_SIZE(id); 248c2ecf20Sopenharmony_ci u8 tmp[ARRAY_SIZE(id)]; 258c2ecf20Sopenharmony_ci 268c2ecf20Sopenharmony_ci if (!via_aux_read(&drv, 0x00, tmp, len) || memcmp(id, tmp, len)) 278c2ecf20Sopenharmony_ci return; 288c2ecf20Sopenharmony_ci 298c2ecf20Sopenharmony_ci printk(KERN_INFO "viafb: Found %s\n", name); 308c2ecf20Sopenharmony_ci via_aux_add(&drv); 318c2ecf20Sopenharmony_ci} 32