| // SPDX-License-Identifier: GPL-2.0 | |
| use kernel::io::{ | |
| io_project, | |
| register, | |
| Mmio, // | |
| }; | |
| use crate::{ | |
| driver::{ | |
| Bar0, | |
| NovaRegisters, // | |
| }, | |
| falcon::FalconEngine, // | |
| }; | |
| /// Type specifying the `Sec2` falcon engine. Cannot be instantiated. | |
| pub(crate) struct Sec2(()); | |
| register! { | |
| base: NovaRegisters; | |
| PFALCON: super::PFalconRegisters @ 0x00840000; | |
| PFALCON2: super::PFalcon2Registers @ 0x00841000; | |
| } | |
| impl FalconEngine for Sec2 { | |
| #[inline] | |
| fn pfalcon(io: Bar0<'_>) -> Mmio<'_, super::PFalconRegisters> { | |
| io_project!(io, build: PFALCON) | |
| } | |
| #[inline] | |
| fn pfalcon2(io: Bar0<'_>) -> Mmio<'_, super::PFalcon2Registers> { | |
| io_project!(io, build: PFALCON2) | |
| } | |
| } |