Lines Matching refs:ohci
49 struct ohci { struct
53 static inline void reg_write(const struct ohci *ohci, int offset, u32 data) in reg_write() argument
55 writel(data, ohci->registers + offset); in reg_write()
58 static inline u32 reg_read(const struct ohci *ohci, int offset) in reg_read() argument
60 return readl(ohci->registers + offset); in reg_read()
66 static inline u8 __init get_phy_reg(struct ohci *ohci, u8 addr) in get_phy_reg() argument
71 reg_write(ohci, OHCI1394_PhyControl, (addr << 8) | 0x00008000); in get_phy_reg()
74 if (reg_read(ohci, OHCI1394_PhyControl) & 0x80000000) in get_phy_reg()
78 r = reg_read(ohci, OHCI1394_PhyControl); in get_phy_reg()
84 static inline void __init set_phy_reg(struct ohci *ohci, u8 addr, u8 data) in set_phy_reg() argument
88 reg_write(ohci, OHCI1394_PhyControl, (addr << 8) | data | 0x00004000); in set_phy_reg()
91 if (!(reg_read(ohci, OHCI1394_PhyControl) & 0x00004000)) in set_phy_reg()
98 static inline void __init init_ohci1394_soft_reset(struct ohci *ohci) in init_ohci1394_soft_reset() argument
102 reg_write(ohci, OHCI1394_HCControlSet, OHCI1394_HCControl_softReset); in init_ohci1394_soft_reset()
105 if (!(reg_read(ohci, OHCI1394_HCControlSet) in init_ohci1394_soft_reset()
117 static inline void __init init_ohci1394_initialize(struct ohci *ohci) in init_ohci1394_initialize() argument
123 bus_options = reg_read(ohci, OHCI1394_BusOptions); in init_ohci1394_initialize()
127 reg_write(ohci, OHCI1394_BusOptions, bus_options); in init_ohci1394_initialize()
130 reg_write(ohci, OHCI1394_NodeID, 0x0000ffc0); in init_ohci1394_initialize()
133 reg_write(ohci, OHCI1394_HCControlSet, in init_ohci1394_initialize()
137 reg_write(ohci, OHCI1394_LinkControlClear, 0xffffffff); in init_ohci1394_initialize()
140 reg_write(ohci, OHCI1394_LinkControlSet, in init_ohci1394_initialize()
144 reg_write(ohci, OHCI1394_LinkControlClear, 0x00000400); in init_ohci1394_initialize()
147 reg_write(ohci, OHCI1394_IsoRecvIntMaskClear, 0xffffffff); in init_ohci1394_initialize()
148 reg_write(ohci, OHCI1394_IsoRecvIntEventClear, 0xffffffff); in init_ohci1394_initialize()
149 reg_write(ohci, OHCI1394_IsoXmitIntMaskClear, 0xffffffff); in init_ohci1394_initialize()
150 reg_write(ohci, OHCI1394_IsoXmitIntEventClear, 0xffffffff); in init_ohci1394_initialize()
153 reg_write(ohci, OHCI1394_AsReqFilterHiSet, 0x80000000); in init_ohci1394_initialize()
156 reg_write(ohci, OHCI1394_ATRetries, in init_ohci1394_initialize()
162 reg_write(ohci, OHCI1394_HCControlClear, in init_ohci1394_initialize()
166 reg_write(ohci, OHCI1394_HCControlSet, OHCI1394_HCControl_linkEnable); in init_ohci1394_initialize()
169 num_ports = get_phy_reg(ohci, 2) & 0xf; in init_ohci1394_initialize()
173 set_phy_reg(ohci, 7, i); in init_ohci1394_initialize()
174 status = get_phy_reg(ohci, 8); in init_ohci1394_initialize()
177 set_phy_reg(ohci, 8, status & ~1); in init_ohci1394_initialize()
190 static inline void __init init_ohci1394_wait_for_busresets(struct ohci *ohci) in init_ohci1394_wait_for_busresets() argument
196 events = reg_read(ohci, OHCI1394_IntEventSet); in init_ohci1394_wait_for_busresets()
198 reg_write(ohci, OHCI1394_IntEventClear, in init_ohci1394_wait_for_busresets()
208 static inline void __init init_ohci1394_enable_physical_dma(struct ohci *ohci) in init_ohci1394_enable_physical_dma() argument
210 reg_write(ohci, OHCI1394_PhyReqFilterHiSet, 0xffffffff); in init_ohci1394_enable_physical_dma()
211 reg_write(ohci, OHCI1394_PhyReqFilterLoSet, 0xffffffff); in init_ohci1394_enable_physical_dma()
212 reg_write(ohci, OHCI1394_PhyUpperBound, 0xffff0000); in init_ohci1394_enable_physical_dma()
219 static inline void __init init_ohci1394_reset_and_init_dma(struct ohci *ohci) in init_ohci1394_reset_and_init_dma() argument
222 init_ohci1394_soft_reset(ohci); in init_ohci1394_reset_and_init_dma()
225 reg_write(ohci, OHCI1394_HCControlSet, OHCI1394_HCControl_LPS); in init_ohci1394_reset_and_init_dma()
228 reg_write(ohci, OHCI1394_IntEventClear, 0xffffffff); in init_ohci1394_reset_and_init_dma()
229 reg_write(ohci, OHCI1394_IntMaskClear, 0xffffffff); in init_ohci1394_reset_and_init_dma()
233 init_ohci1394_initialize(ohci); in init_ohci1394_reset_and_init_dma()
238 init_ohci1394_wait_for_busresets(ohci); in init_ohci1394_reset_and_init_dma()
241 init_ohci1394_enable_physical_dma(ohci); in init_ohci1394_reset_and_init_dma()
251 struct ohci ohci; in init_ohci1394_controller() local
261 ohci.registers = (void __iomem *)fix_to_virt(FIX_OHCI1394_BASE); in init_ohci1394_controller()
263 init_ohci1394_reset_and_init_dma(&ohci); in init_ohci1394_controller()