blob: 0ea9e70ed78b2eba177aa22920fccc39f378ed49 [file] [log] [blame]
Thomas Gleixner2874c5f2019-05-27 08:55:01 +02001/* SPDX-License-Identifier: GPL-2.0-or-later */
Linus Torvalds1da177e2005-04-16 15:20:36 -07002/*
Michael Ellerman296167a2006-01-11 11:54:09 +11003 * (c) 2001, 2006 IBM Corporation.
Linus Torvalds1da177e2005-04-16 15:20:36 -07004 */
5
David Gibson35cd8782005-11-11 16:42:12 +11006#ifndef _ASM_POWERPC_UDBG_H
7#define _ASM_POWERPC_UDBG_H
Arnd Bergmann88ced032005-12-16 22:43:46 +01008#ifdef __KERNEL__
David Gibson35cd8782005-11-11 16:42:12 +11009
10#include <linux/compiler.h>
11#include <linux/init.h>
12
Benjamin Herrenschmidt51d30822005-11-23 17:57:25 +110013extern void (*udbg_putc)(char c);
Andrew Klossneraf9c7242009-03-09 07:52:41 +000014extern void (*udbg_flush)(void);
Benjamin Herrenschmidtbb6b9b22005-11-30 16:54:12 +110015extern int (*udbg_getc)(void);
Milton Millerc8f1c8b2005-09-06 11:56:42 +100016extern int (*udbg_getc_poll)(void);
Linus Torvalds1da177e2005-04-16 15:20:36 -070017
Milton Millerc8f1c8b2005-09-06 11:56:42 +100018extern void udbg_puts(const char *s);
19extern int udbg_write(const char *s, int n);
Milton Millerc8f1c8b2005-09-06 11:56:42 +100020
Milton Miller8d927392005-09-06 11:57:27 +100021extern void register_early_udbg_console(void);
jimix@watson.ibm.com8ae5b282006-05-17 12:00:35 -040022extern void udbg_printf(const char *fmt, ...)
23 __attribute__ ((format (printf, 1, 2)));
Kumar Galabe6b8432005-12-20 16:37:07 -060024extern void udbg_progress(char *s, unsigned short hex);
Milton Millerc8f1c8b2005-09-06 11:56:42 +100025
Benjamin Herrenschmidt30925742013-07-15 13:03:12 +100026extern void udbg_uart_init_mmio(void __iomem *addr, unsigned int stride);
27extern void udbg_uart_init_pio(unsigned long port, unsigned int stride);
28
29extern void udbg_uart_setup(unsigned int speed, unsigned int clock);
30extern unsigned int udbg_probe_uart_speed(unsigned int clock);
Paul Mackerras35499c02005-10-22 16:02:39 +100031
32struct device_node;
Benjamin Herrenschmidt51d30822005-11-23 17:57:25 +110033extern void udbg_scc_init(int force_scc);
34extern int udbg_adb_init(int force_btext);
35extern void udbg_adb_init_early(void);
36
Michael Ellerman296167a2006-01-11 11:54:09 +110037extern void __init udbg_early_init(void);
38extern void __init udbg_init_debug_lpar(void);
Benjamin Herrenschmidt4d2bb3f2011-05-12 13:46:38 +100039extern void __init udbg_init_debug_lpar_hvsi(void);
Michael Ellerman296167a2006-01-11 11:54:09 +110040extern void __init udbg_init_pmac_realmode(void);
41extern void __init udbg_init_maple_realmode(void);
Olof Johansson39c870d2007-02-04 16:36:49 -060042extern void __init udbg_init_pas_realmode(void);
Michael Ellermancc46bb92006-06-23 18:20:16 +100043extern void __init udbg_init_rtas_panel(void);
44extern void __init udbg_init_rtas_console(void);
Ishizaki Koud7480a92007-02-02 16:43:21 +090045extern void __init udbg_init_debug_beat(void);
David Gibson719c91c2007-02-13 15:54:22 +110046extern void __init udbg_init_btext(void);
David Gibsond9b55a02007-05-08 12:59:31 +100047extern void __init udbg_init_44x_as1(void);
Benjamin Herrenschmidt9dae8af2007-12-21 15:39:26 +110048extern void __init udbg_init_40x_realmode(void);
Scott Woodc374e002007-07-16 11:43:43 -050049extern void __init udbg_init_cpm(void);
Albert Herranzd1d56f82009-12-12 06:31:51 +000050extern void __init udbg_init_usbgecko(void);
Alistair Popple30650232013-04-29 18:07:47 +000051extern void __init udbg_init_memcons(void);
Timur Tabidcd83aa2011-07-08 19:06:12 -050052extern void __init udbg_init_ehv_bc(void);
Hector Martinc26afe92011-08-31 06:32:26 +000053extern void __init udbg_init_ps3gelic(void);
Benjamin Herrenschmidtdaea1172011-09-19 17:44:59 +000054extern void __init udbg_init_debug_opal_raw(void);
55extern void __init udbg_init_debug_opal_hvsi(void);
Michael Ellerman296167a2006-01-11 11:54:09 +110056
Arnd Bergmann88ced032005-12-16 22:43:46 +010057#endif /* __KERNEL__ */
David Gibson35cd8782005-11-11 16:42:12 +110058#endif /* _ASM_POWERPC_UDBG_H */