1 /* SPDX-License-Identifier: GPL-2.0-or-later * 1 2 /* 3 * Copyright (C) 2006 Lennert Buytenhek <buyte 4 */ 5 6 #include <asm/mach-types.h> 7 8 static inline unsigned int __raw_readl(unsigne 9 { 10 return *((volatile unsigned int *)ptr) 11 } 12 13 static inline void __raw_writeb(unsigned char 14 { 15 *((volatile unsigned char *)ptr) = val 16 } 17 18 static inline void __raw_writel(unsigned int v 19 { 20 *((volatile unsigned int *)ptr) = valu 21 } 22 23 /* 24 * Some bootloaders don't turn off DMA from th 25 * jumping to linux, which means that we might 26 * status and packet data scribbled over the u 27 * Work around this by resetting the ethernet 28 */ 29 #define PHYS_ETH_SELF_CTL 0x8001 30 #define ETH_SELF_CTL_RESET 0x0000 31 32 static inline void ep93xx_ethernet_reset(void) 33 { 34 unsigned int v; 35 36 /* Reset the ethernet MAC. */ 37 v = __raw_readl(PHYS_ETH_SELF_CTL); 38 __raw_writel(v | ETH_SELF_CTL_RESET, P 39 40 /* Wait for reset to finish. */ 41 while (__raw_readl(PHYS_ETH_SELF_CTL) 42 ; 43 } 44 45 #define TS72XX_WDT_CONTROL_PHYS_BASE 0x2380 46 #define TS72XX_WDT_FEED_PHYS_BASE 0x23c0 47 #define TS72XX_WDT_FEED_VAL 0x05 48 49 static inline void __maybe_unused ts72xx_watch 50 { 51 __raw_writeb(TS72XX_WDT_FEED_VAL, TS72 52 __raw_writeb(0, TS72XX_WDT_CONTROL_PHY 53 } 54 55 static inline void ep93xx_decomp_setup(void) 56 { 57 if (machine_is_ts72xx()) 58 ts72xx_watchdog_disable(); 59 60 if (machine_is_edb9301() || 61 machine_is_edb9302() || 62 machine_is_edb9302a() || 63 machine_is_edb9302a() || 64 machine_is_edb9307() || 65 machine_is_edb9307a() || 66 machine_is_edb9307a() || 67 machine_is_edb9312() || 68 machine_is_edb9315() || 69 machine_is_edb9315a() || 70 machine_is_edb9315a() || 71 machine_is_ts72xx() || 72 machine_is_bk3() || 73 machine_is_vision_ep9307()) 74 ep93xx_ethernet_reset(); 75 } 76
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.