Vladimir Serbinenko | 3129f79 | 2014-10-15 21:51:47 +0200 | [diff] [blame] | 1 | package main |
| 2 | |
| 3 | import "fmt" |
| 4 | |
| 5 | type rce823 struct { |
| 6 | variant string |
| 7 | } |
| 8 | |
| 9 | func (r rce823) Scan(ctx Context, addr PCIDevData) { |
| 10 | if addr.Dev == 0 && addr.Func == 0 { |
| 11 | cur := DevTreeNode{ |
| 12 | Chip: "drivers/ricoh/rce822", |
| 13 | Comment: "Ricoh cardreader", |
| 14 | Registers: map[string]string{ |
| 15 | |
| 16 | "sdwppol": fmt.Sprintf("%d", (addr.ConfigDump[0xfb]&2)>>1), |
| 17 | "disable_mask": fmt.Sprintf("0x%x", addr.ConfigDump[0xcb]), |
| 18 | }, |
| 19 | PCISlots: []PCISlot{ |
| 20 | PCISlot{PCIAddr: PCIAddr{Bus: addr.Bus, Dev: 0x0, Func: 0}, writeEmpty: false}, |
| 21 | PCISlot{PCIAddr: PCIAddr{Bus: addr.Bus, Dev: 0x0, Func: 1}, writeEmpty: false}, |
| 22 | PCISlot{PCIAddr: PCIAddr{Bus: addr.Bus, Dev: 0x0, Func: 2}, writeEmpty: false}, |
| 23 | PCISlot{PCIAddr: PCIAddr{Bus: addr.Bus, Dev: 0x0, Func: 3}, writeEmpty: false}, |
| 24 | PCISlot{PCIAddr: PCIAddr{Bus: addr.Bus, Dev: 0x0, Func: 4}, writeEmpty: false}, |
| 25 | PCISlot{PCIAddr: PCIAddr{Bus: addr.Bus, Dev: 0x0, Func: 5}, writeEmpty: false}, |
| 26 | PCISlot{PCIAddr: PCIAddr{Bus: addr.Bus, Dev: 0x0, Func: 6}, writeEmpty: false}, |
| 27 | PCISlot{PCIAddr: PCIAddr{Bus: addr.Bus, Dev: 0x0, Func: 7}, writeEmpty: false}, |
| 28 | }, |
| 29 | } |
| 30 | PutPCIChip(addr, cur) |
| 31 | } |
| 32 | PutPCIDev(addr, "Ricoh SD card reader") |
| 33 | KconfigBool["DRIVERS_RICOH_RCE822"] = true |
| 34 | } |
| 35 | |
| 36 | func init() { |
| 37 | RegisterPCI(0x1180, 0xe822, rce823{}) |
| 38 | RegisterPCI(0x1180, 0xe823, rce823{}) |
| 39 | } |