##
## This file is part of the flashrom project.
##
## Copyright (C) 2010 Uwe Hermann <uwe@hermann-uwe.de>
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation; either version 2 of the License, or
## (at your option) any later version.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
## GNU General Public License for more details.
##

##
## Please keep this list sorted alphabetically by vendor/device name.
##

ACTION!="add|change", GOTO="flashprog_rules_end"
SUBSYSTEM!="usb|usb_device", GOTO="flashprog_rules_end"

# Altera Blaster
ATTRS{idVendor}=="09fb", ATTRS{idProduct}=="6001", TAG+="uaccess"
ATTRS{idVendor}=="09fb", ATTRS{idProduct}=="6001", MODE="660", GROUP="plugdev"

# Amontec JTAGkey(2)
# http://www.amontec.com/jtagkey.shtml
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="cff8", TAG+="uaccess"
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="cff8", MODE="660", GROUP="plugdev"

# Buspirate
# http://dangerousprototypes.com/2009/10/08/bus-pirate-raw-spi-mode/
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", TAG+="uaccess"
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", MODE="660", GROUP="plugdev"

# Dediprog SF100
# http://www.dediprog.com/SPI-flash-in-circuit-programming/SF100
ATTRS{idVendor}=="0483", ATTRS{idProduct}=="dada", TAG+="uaccess"
ATTRS{idVendor}=="0483", ATTRS{idProduct}=="dada", MODE="660", GROUP="plugdev"

# DirtyJTAG dongle "Generic Jean THOMAS DirtyJTAG"
ATTRS{idVendor}=="1209", ATTRS{idProduct}=="c0ca", TAG+="uaccess"
ATTRS{idVendor}=="1209", ATTRS{idProduct}=="c0ca", MODE="660", GROUP="plugdev"

# DLP Design DLP-USB1232H
# http://www.dlpdesign.com/usb/usb1232h.shtml
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6010", TAG+="uaccess"
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6010", MODE="660", GROUP="plugdev"

# FIC OpenMoko Neo1973 Debug board (V2+)
# http://wiki.openmoko.org/wiki/Neo1973_Debug_Board_v2
ATTRS{idVendor}=="1457", ATTRS{idProduct}=="5118", TAG+="uaccess"
ATTRS{idVendor}=="1457", ATTRS{idProduct}=="5118", MODE="660", GROUP="plugdev"

# FTDI FT4232H Mini-Module
# http://www.ftdichip.com/Products/EvaluationKits/FT4232H_MiniModule.htm
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6011", TAG+="uaccess"
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6011", MODE="660", GROUP="plugdev"

# FTDI FT232H Mini-Module
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6014", TAG+="uaccess"
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6014", MODE="660", GROUP="plugdev"

# FTDI FT4222H Mini-Module
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="601c", TAG+="uaccess"
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="601c", MODE="660", GROUP="plugdev"

# GOEPEL PicoTAP
# http://www.goepel.com/jtagboundary-scan/hardware/picotap.html
ATTRS{idVendor}=="096c", ATTRS{idProduct}=="1449", TAG+="uaccess"
ATTRS{idVendor}=="096c", ATTRS{idProduct}=="1449", MODE="660", GROUP="plugdev"

# Google servo debug board
# https://www.chromium.org/chromium-os/servo
ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="5001", TAG+="uaccess"
ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="5001", MODE="660", GROUP="plugdev"
ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="5002", TAG+="uaccess"
ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="5002", MODE="660", GROUP="plugdev"
ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="5003", TAG+="uaccess"
ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="5003", MODE="660", GROUP="plugdev"

# Kristech KT-LINK
# https://kristech.pl/files/KT-LINK-UM-ENG.pdf
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="bbe2", TAG+="uaccess"
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="bbe2", MODE="660", GROUP="plugdev"

# Microchip Technology, Inc. PICkit2
ATTRS{idVendor}=="04d8", ATTRS{idProduct}=="0033", TAG+="uaccess"
ATTRS{idVendor}=="04d8", ATTRS{idProduct}=="0033", MODE="660", GROUP="plugdev"

# Olimex ARM-USB-OCD
# http://olimex.com/dev/arm-usb-ocd.html
ATTRS{idVendor}=="15ba", ATTRS{idProduct}=="0003", TAG+="uaccess"
ATTRS{idVendor}=="15ba", ATTRS{idProduct}=="0003", MODE="660", GROUP="plugdev"

# Olimex ARM-USB-OCD-H
# http://olimex.com/dev/arm-usb-ocd-h.html
ATTRS{idVendor}=="15ba", ATTRS{idProduct}=="002b", TAG+="uaccess"
ATTRS{idVendor}=="15ba", ATTRS{idProduct}=="002b", MODE="660", GROUP="plugdev"

# Olimex ARM-USB-TINY
# http://olimex.com/dev/arm-usb-tiny.html
ATTRS{idVendor}=="15ba", ATTRS{idProduct}=="0004", TAG+="uaccess"
ATTRS{idVendor}=="15ba", ATTRS{idProduct}=="0004", MODE="660", GROUP="plugdev"

# Olimex ARM-USB-TINY-H
# http://olimex.com/dev/arm-usb-tiny-h.html
ATTRS{idVendor}=="15ba", ATTRS{idProduct}=="002a", TAG+="uaccess"
ATTRS{idVendor}=="15ba", ATTRS{idProduct}=="002a", MODE="660", GROUP="plugdev"

# TIAO/DIYGADGET USB Multi-Protocol Adapter (TUMPA)
# http://www.diygadget.com/tiao-usb-multi-protocol-adapter-jtag-spi-i2c-serial.html
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="8a98", TAG+="uaccess"
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="8a98", MODE="660", GROUP="plugdev"

# TIAO/DIYGADGET USB Multi-Protocol Adapter (TUMPA) Lite
# http://www.tiaowiki.com/w/TIAO_USB_Multi_Protocol_Adapter_Lite_User's_Manual
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="8a99", TAG+="uaccess"
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="8a99", MODE="660", GROUP="plugdev"

# Winchiphead (WCH) CH341a based programmer
ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="5512", TAG+="uaccess"
ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="5512", MODE="660", GROUP="plugdev"

# Winchiphead (WCH) CH347T/F based programmers
ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="55db", TAG+="uaccess"
ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="55db", MODE="660", GROUP="plugdev"
ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="55de", TAG+="uaccess"
ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="55de", MODE="660", GROUP="plugdev"

LABEL="flashprog_rules_end"
