##
## 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", MODE="660", GROUP="plugdev", TAG+="uaccess"

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# 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", MODE="660", GROUP="plugdev", TAG+="uaccess"

# 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", MODE="660", GROUP="plugdev", TAG+="uaccess"

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

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

LABEL="flashprog_rules_end"
