18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 28c2ecf20Sopenharmony_ci#ifndef __ASM_SH_BL_BIT_32_H 38c2ecf20Sopenharmony_ci#define __ASM_SH_BL_BIT_32_H 48c2ecf20Sopenharmony_ci 58c2ecf20Sopenharmony_cistatic inline void set_bl_bit(void) 68c2ecf20Sopenharmony_ci{ 78c2ecf20Sopenharmony_ci unsigned long __dummy0, __dummy1; 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_ci __asm__ __volatile__ ( 108c2ecf20Sopenharmony_ci "stc sr, %0\n\t" 118c2ecf20Sopenharmony_ci "or %2, %0\n\t" 128c2ecf20Sopenharmony_ci "and %3, %0\n\t" 138c2ecf20Sopenharmony_ci "ldc %0, sr\n\t" 148c2ecf20Sopenharmony_ci : "=&r" (__dummy0), "=r" (__dummy1) 158c2ecf20Sopenharmony_ci : "r" (0x10000000), "r" (0xffffff0f) 168c2ecf20Sopenharmony_ci : "memory" 178c2ecf20Sopenharmony_ci ); 188c2ecf20Sopenharmony_ci} 198c2ecf20Sopenharmony_ci 208c2ecf20Sopenharmony_cistatic inline void clear_bl_bit(void) 218c2ecf20Sopenharmony_ci{ 228c2ecf20Sopenharmony_ci unsigned long __dummy0, __dummy1; 238c2ecf20Sopenharmony_ci 248c2ecf20Sopenharmony_ci __asm__ __volatile__ ( 258c2ecf20Sopenharmony_ci "stc sr, %0\n\t" 268c2ecf20Sopenharmony_ci "and %2, %0\n\t" 278c2ecf20Sopenharmony_ci "ldc %0, sr\n\t" 288c2ecf20Sopenharmony_ci : "=&r" (__dummy0), "=r" (__dummy1) 298c2ecf20Sopenharmony_ci : "1" (~0x10000000) 308c2ecf20Sopenharmony_ci : "memory" 318c2ecf20Sopenharmony_ci ); 328c2ecf20Sopenharmony_ci} 338c2ecf20Sopenharmony_ci 348c2ecf20Sopenharmony_ci#endif /* __ASM_SH_BL_BIT_32_H */ 35