diff options
author | Mauro Carvalho Chehab <mchehab+samsung@kernel.org> | 2019-06-27 14:39:22 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab+samsung@kernel.org> | 2019-07-15 10:03:02 -0400 |
commit | baa293e9544bea71361950d071579f0e4d5713ed (patch) | |
tree | 29e0400c806016783a3fd7a380be40a201956653 /Documentation/zorro.txt | |
parent | 4f4cfa6c560c93ba180c30675cf845e1597de44c (diff) |
docs: driver-api: add a series of orphaned documents
There are lots of documents under Documentation/*.txt and a few other
orphan documents elsehwere that belong to the driver-API book.
Move them to their right place.
Reviewed-by: Cornelia Huck <cohuck@redhat.com> # vfio-related parts
Acked-by: Logan Gunthorpe <logang@deltatee.com> # switchtec
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
Diffstat (limited to 'Documentation/zorro.txt')
-rw-r--r-- | Documentation/zorro.txt | 104 |
1 files changed, 0 insertions, 104 deletions
diff --git a/Documentation/zorro.txt b/Documentation/zorro.txt deleted file mode 100644 index 664072b017e3..000000000000 --- a/Documentation/zorro.txt +++ /dev/null | |||
@@ -1,104 +0,0 @@ | |||
1 | ======================================== | ||
2 | Writing Device Drivers for Zorro Devices | ||
3 | ======================================== | ||
4 | |||
5 | :Author: Written by Geert Uytterhoeven <geert@linux-m68k.org> | ||
6 | :Last revised: September 5, 2003 | ||
7 | |||
8 | |||
9 | Introduction | ||
10 | ------------ | ||
11 | |||
12 | The Zorro bus is the bus used in the Amiga family of computers. Thanks to | ||
13 | AutoConfig(tm), it's 100% Plug-and-Play. | ||
14 | |||
15 | There are two types of Zorro buses, Zorro II and Zorro III: | ||
16 | |||
17 | - The Zorro II address space is 24-bit and lies within the first 16 MB of the | ||
18 | Amiga's address map. | ||
19 | |||
20 | - Zorro III is a 32-bit extension of Zorro II, which is backwards compatible | ||
21 | with Zorro II. The Zorro III address space lies outside the first 16 MB. | ||
22 | |||
23 | |||
24 | Probing for Zorro Devices | ||
25 | ------------------------- | ||
26 | |||
27 | Zorro devices are found by calling ``zorro_find_device()``, which returns a | ||
28 | pointer to the ``next`` Zorro device with the specified Zorro ID. A probe loop | ||
29 | for the board with Zorro ID ``ZORRO_PROD_xxx`` looks like:: | ||
30 | |||
31 | struct zorro_dev *z = NULL; | ||
32 | |||
33 | while ((z = zorro_find_device(ZORRO_PROD_xxx, z))) { | ||
34 | if (!zorro_request_region(z->resource.start+MY_START, MY_SIZE, | ||
35 | "My explanation")) | ||
36 | ... | ||
37 | } | ||
38 | |||
39 | ``ZORRO_WILDCARD`` acts as a wildcard and finds any Zorro device. If your driver | ||
40 | supports different types of boards, you can use a construct like:: | ||
41 | |||
42 | struct zorro_dev *z = NULL; | ||
43 | |||
44 | while ((z = zorro_find_device(ZORRO_WILDCARD, z))) { | ||
45 | if (z->id != ZORRO_PROD_xxx1 && z->id != ZORRO_PROD_xxx2 && ...) | ||
46 | continue; | ||
47 | if (!zorro_request_region(z->resource.start+MY_START, MY_SIZE, | ||
48 | "My explanation")) | ||
49 | ... | ||
50 | } | ||
51 | |||
52 | |||
53 | Zorro Resources | ||
54 | --------------- | ||
55 | |||
56 | Before you can access a Zorro device's registers, you have to make sure it's | ||
57 | not yet in use. This is done using the I/O memory space resource management | ||
58 | functions:: | ||
59 | |||
60 | request_mem_region() | ||
61 | release_mem_region() | ||
62 | |||
63 | Shortcuts to claim the whole device's address space are provided as well:: | ||
64 | |||
65 | zorro_request_device | ||
66 | zorro_release_device | ||
67 | |||
68 | |||
69 | Accessing the Zorro Address Space | ||
70 | --------------------------------- | ||
71 | |||
72 | The address regions in the Zorro device resources are Zorro bus address | ||
73 | regions. Due to the identity bus-physical address mapping on the Zorro bus, | ||
74 | they are CPU physical addresses as well. | ||
75 | |||
76 | The treatment of these regions depends on the type of Zorro space: | ||
77 | |||
78 | - Zorro II address space is always mapped and does not have to be mapped | ||
79 | explicitly using z_ioremap(). | ||
80 | |||
81 | Conversion from bus/physical Zorro II addresses to kernel virtual addresses | ||
82 | and vice versa is done using:: | ||
83 | |||
84 | virt_addr = ZTWO_VADDR(bus_addr); | ||
85 | bus_addr = ZTWO_PADDR(virt_addr); | ||
86 | |||
87 | - Zorro III address space must be mapped explicitly using z_ioremap() first | ||
88 | before it can be accessed:: | ||
89 | |||
90 | virt_addr = z_ioremap(bus_addr, size); | ||
91 | ... | ||
92 | z_iounmap(virt_addr); | ||
93 | |||
94 | |||
95 | References | ||
96 | ---------- | ||
97 | |||
98 | #. linux/include/linux/zorro.h | ||
99 | #. linux/include/uapi/linux/zorro.h | ||
100 | #. linux/include/uapi/linux/zorro_ids.h | ||
101 | #. linux/arch/m68k/include/asm/zorro.h | ||
102 | #. linux/drivers/zorro | ||
103 | #. /proc/bus/zorro | ||
104 | |||