Hello All,
I am a newbe with kernel development and I would appreciate some hint.
Here is a chunk of code for kernel 2.6.26 which is obviously doesn't fit
new platform driver model and other recent changes. How this
initialization can be done now?
---------------------------------
#define IO_PHYS 0x01c00000
#define IO_OFFSET 0xfd000000 /* Virtual IO = 0xfec00000 */
#define IO_SIZE 0x00400000
#define IO_VIRT (IO_PHYS + IO_OFFSET)
#define io_p2v(pa) ((pa) + IO_OFFSET)
#define io_v2p(va) ((va) - IO_OFFSET)
typedef struct { volatile u32 offset[4096]; } __regbase32;
#define IO_ADDRESS(x) io_p2v(x)
#define __REGV32(vaddr) ((__regbase32 *)((vaddr)&~4095))
->offset[((vaddr)&4095)>>2]
#define __REG(paddr) __REGV32(io_p2v(paddr))
#define PINMUX1 __REG(0x01C40004)
#define PWM0_PCR __REG(0x01C22004)
#define PWM0_CFG __REG(0x01C22008)
#define PWM0_START __REG(0x01C2200C)
#define PWM0_PER __REG(0x01C22014)
#define PWM0_PH1D __REG(0x01C22018)
static void init_38khz(void)
{
PINMUX1 |= (1<<4); //set gio45/PWM0 pin works as PWM0
PWM0_PCR = 1;
PWM0_CFG &= ~2; //clear PWM0 mode
PWM0_CFG |= 2; //set PWM0 contiguous mode
/* PWM0_PER+1=PWM0_PH1D*2 */
/* PWM config PWM 38kHz PER=709 PH1D=355 */
PWM0_PER = 709;
PWM0_PH1D = 355;
PWM0_START = 1;
}
---------------------------------
--
Best regards
Andrey A. Porodko
--
Best regards
Andrey A. Porodko
_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source