Lines Matching full:scu
7 * microcontroller is System Controller Unit (SCU) which, in particular,
10 * This driver enables IPC channel to SCU.
17 #include <asm/scu.h>
22 /* SCU register map */
33 struct scu { struct
38 * scu_ipc_send_command() - send command to SCU
39 * @regs: register map of SCU
43 * A write to this register results in an interrupt to the SCU core processor
54 * @regs: register map of SCU
58 * block and error status of the IPC command that was just processed by SCU
115 * Send an IPC command to SCU with input/output data and source/dest pointers.
124 struct scu *scu; in scu_ipc_raw_command() local
131 scu = dev_get_priv(dev); in scu_ipc_raw_command()
137 writel(dptr, &scu->regs->dptr); in scu_ipc_raw_command()
138 writel(sptr, &scu->regs->sptr); in scu_ipc_raw_command()
143 * the temporary buffer, and SCU FW will use the inlen to in scu_ipc_raw_command()
152 return scu_ipc_cmd(scu->regs, cmd, sub, inbuf, inlen, out, outlen); in scu_ipc_raw_command()
160 * Issue a simple command to the SCU. Do not use this interface if
162 * by another SCU access by the time this function returns.
164 * This function may sleep. Locking for SCU accesses is handled for
169 struct scu *scu; in scu_ipc_simple_command() local
177 scu = dev_get_priv(dev); in scu_ipc_simple_command()
179 scu_ipc_send_command(scu->regs, sub << 12 | cmd); in scu_ipc_simple_command()
180 return scu_ipc_check_status(scu->regs); in scu_ipc_simple_command()
192 * Issue a command to the SCU which involves data transfers.
196 struct scu *scu; in scu_ipc_command() local
204 scu = dev_get_priv(dev); in scu_ipc_command()
206 return scu_ipc_cmd(scu->regs, cmd, sub, in, inlen, out, outlen); in scu_ipc_command()
211 struct scu *scu = dev_get_priv(dev); in scu_ipc_probe() local
213 scu->regs = syscon_get_first_range(X86_SYSCON_SCU); in scu_ipc_probe()
219 { .compatible = "intel,scu-ipc", .data = X86_SYSCON_SCU },
228 .priv_auto_alloc_size = sizeof(struct scu),