linux/drivers/video/fbdev/via/via_aux_sii164.c
<<
>>
Prefs
   1// SPDX-License-Identifier: GPL-2.0-or-later
   2/*
   3 * Copyright 2011 Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
   4 */
   5/*
   6 * driver for Silicon Image SiI 164 PanelLink Transmitter
   7 */
   8
   9#include <linux/slab.h>
  10#include "via_aux.h"
  11
  12
  13static const char *name = "SiI 164 PanelLink Transmitter";
  14
  15
  16static void probe(struct via_aux_bus *bus, u8 addr)
  17{
  18        struct via_aux_drv drv = {
  19                .bus    =       bus,
  20                .addr   =       addr,
  21                .name   =       name};
  22        /* check vendor id and device id */
  23        const u8 id[] = {0x01, 0x00, 0x06, 0x00}, len = ARRAY_SIZE(id);
  24        u8 tmp[ARRAY_SIZE(id)];
  25
  26        if (!via_aux_read(&drv, 0x00, tmp, len) || memcmp(id, tmp, len))
  27                return;
  28
  29        printk(KERN_INFO "viafb: Found %s at address 0x%x\n", name, addr);
  30        via_aux_add(&drv);
  31}
  32
  33void via_aux_sii164_probe(struct via_aux_bus *bus)
  34{
  35        u8 i;
  36
  37        for (i = 0x38; i <= 0x3F; i++)
  38                probe(bus, i);
  39}
  40