aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: 51341f3ee25cb4438a3ce11573509ead8f21d9ec (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# CDS9K Linux Kernel Drivers

This repo houses Linux kernel drivers for the CDS9K FPGA/CPLD.

This is a semi-fictional piece of hardware I'm developing for classroom/demo
sessions on various aspects of Linux kernel driver development - it's not on
any real boards, it's just a teaching tool. I do have a VHDL implementation
which I will include once the IP blocks are more stable.

## Drivers for IP blocks

### `cds9k-fan`

FIXME


### `cds9k-led`

FIXME


### `cds9k-gpio`

FIXME


### `cds9k-reset`

FIXME


## Misc drivers

There is currently one misc driver in this repo too: `simple-reset-consumer`.
On probe, this driver takes a single reset from the device-tree and asks it to
reset. This is the quickest way I had for hackily debugging the effect of a
reset driver such as cds9k-reset, as there doesn't appear to be any sysfs or
debugfs nodes exposed for reset controllers in general.

If you include a segment in your device tree like:

	some_reset_consumer {
		compatible = "david,simple-reset-consumer";
		resets = <&some_reset>;
		status = "okay";
	};

Then firing the resets looks like:

	root@de10-nano:~# rmmod simple-reset-consumer
	root@de10-nano:~# modprobe simple-reset-consumer
	[  995.241046] simple-reset-consumer some_reset_consumer: firing reset
	root@de10-nano:~#