예제 #1
0
int BBBIO_PWM_Init()
{
	int i = 0;

	if (memh == 0) {
#ifdef BBBIO_LIB_DBG
		printf("BBBIO_PWM_Init: memory not mapped?\n");
#endif
		return 0;
    	}

	/* Create Memory map */
	for (i = 0 ; i < 3 ; i ++) {
		pwmss_ptr[i] = mmap(0, PWMSS_MMAP_LEN, PROT_READ | PROT_WRITE, MAP_SHARED, memh, PWMSS_AddressOffset[i]);
		if(pwmss_ptr[i] == MAP_FAILED) {
#ifdef BBBIO_LIB_DBG
			printf("BBBIO_PWM_Init: PWMSS %d mmap failure!\n", i);
#endif
			goto INIT_ERROR ;
		}
		ecap_ptr[i] = (void *)pwmss_ptr[i] + 0x100 ;
		eqep_ptr[i] = (void *)pwmss_ptr[i] + 0x180 ;
		epwm_ptr[i] = (void *)pwmss_ptr[i] + 0x200 ;

		if(!PWMSS_module_ctrl(i, 1)) {
			goto INIT_ERROR ;
		}
    	}
	return 1;

INIT_ERROR :
	BBBIO_PWM_Release();
	return 0;
}
/*
 * Class:     io_silverspoon_bulldog_beagleboneblack_jni_NativePwm
 * Method:    teardown
 * Signature: ()I
 */
JNIEXPORT void JNICALL Java_io_silverspoon_bulldog_beagleboneblack_jni_NativePwm_teardown
  (JNIEnv * env, jclass clazz) {
	BBBIO_PWM_Release();
}