15 #include <linux/pci.h>
17 #include <asm/div64.h>
19 #include <asm/swiotlb.h>
29 #if defined(CONFIG_FB_FSL_DIU) || defined(CONFIG_FB_FSL_DIU_MODULE)
32 #define CLKDVDR_PXCKEN 0x80000000
33 #define CLKDVDR_PXCKINV 0x10000000
34 #define CLKDVDR_PXCKDLY 0x06000000
35 #define CLKDVDR_PXCLK_MASK 0x00FF0000
40 static void p1022rdk_set_monitor_port(
enum fsl_diu_monitor_port
port)
42 if (port != FSL_DIU_PORT_DVI) {
43 pr_err(
"p1022rdk: unsupported monitor port %i\n", port);
53 void p1022rdk_set_pixel_clock(
unsigned int pixclock)
64 pr_err(
"p1022rdk: missing global utilties device node\n");
71 pr_err(
"p1022rdk: could not map global utilties device\n");
76 temp = 1000000000000ULL;
89 clrbits32(&guts->clkdvdr,
101 enum fsl_diu_monitor_port
102 p1022rdk_valid_monitor_port(
enum fsl_diu_monitor_port port)
104 return FSL_DIU_PORT_DVI;
112 MPIC_SINGLE_DEST_CPU,
113 0, 256,
" OpenPIC ");
121 static void __init p1022_rdk_setup_arch(
void)
124 ppc_md.progress(
"p1022_rdk_setup_arch()", 0);
126 #if defined(CONFIG_FB_FSL_DIU) || defined(CONFIG_FB_FSL_DIU_MODULE)
127 diu_ops.set_monitor_port = p1022rdk_set_monitor_port;
128 diu_ops.set_pixel_clock = p1022rdk_set_pixel_clock;
129 diu_ops.valid_monitor_port = p1022rdk_valid_monitor_port;
134 fsl_pci_assign_primary();
138 pr_info(
"Freescale / iVeia P1022 RDK reference board\n");
148 static int __init p1022_rdk_probe(
void)
150 unsigned long root = of_get_flat_dt_root();
152 return of_flat_dt_is_compatible(root,
"fsl,p1022rdk");
157 .probe = p1022_rdk_probe,
158 .setup_arch = p1022_rdk_setup_arch,
161 .pcibios_fixup_bus = fsl_pcibios_fixup_bus,
164 .restart = fsl_rstcr_restart,