Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a27ba768 authored by Eric Miao's avatar Eric Miao Committed by Eric Miao
Browse files

[ARM] pxa: add PWM devices support for pxa168/910

parent 2a55b910
Loading
Loading
Loading
Loading
+23 −0
Original line number Diff line number Diff line
@@ -264,4 +264,27 @@
#define GPIO116_I2S_RXD		MFP_CFG(GPIO116,AF2)
#define GPIO117_I2S_TXD		MFP_CFG(GPIO117,AF2)

/* PWM */
#define GPIO96_PWM3_OUT		MFP_CFG(GPIO96, AF1)
#define GPIO97_PWM2_OUT		MFP_CFG(GPIO97, AF1)
#define GPIO98_PWM1_OUT		MFP_CFG(GPIO98, AF1)
#define GPIO104_PWM4_OUT	MFP_CFG(GPIO104, AF1)
#define GPIO106_PWM2_OUT	MFP_CFG(GPIO106, AF2)
#define GPIO74_PWM4_OUT		MFP_CFG(GPIO74, AF2)
#define GPIO75_PWM3_OUT		MFP_CFG(GPIO75, AF2)
#define GPIO76_PWM2_OUT		MFP_CFG(GPIO76, AF2)
#define GPIO77_PWM1_OUT		MFP_CFG(GPIO77, AF2)
#define GPIO82_PWM4_OUT		MFP_CFG(GPIO82, AF2)
#define GPIO83_PWM3_OUT		MFP_CFG(GPIO83, AF2)
#define GPIO84_PWM2_OUT		MFP_CFG(GPIO84, AF2)
#define GPIO85_PWM1_OUT		MFP_CFG(GPIO85, AF2)
#define GPIO84_PWM1_OUT		MFP_CFG(GPIO84, AF4)
#define GPIO122_PWM3_OUT	MFP_CFG(GPIO122, AF3)
#define GPIO123_PWM1_OUT	MFP_CFG(GPIO123, AF1)
#define GPIO124_PWM2_OUT	MFP_CFG(GPIO124, AF1)
#define GPIO125_PWM3_OUT	MFP_CFG(GPIO125, AF1)
#define GPIO126_PWM4_OUT	MFP_CFG(GPIO126, AF1)
#define GPIO86_PWM1_OUT		MFP_CFG(GPIO86, AF2)
#define GPIO86_PWM2_OUT		MFP_CFG(GPIO86, AF3)

#endif /* __ASM_MACH_MFP_PXA168_H */
+8 −0
Original line number Diff line number Diff line
@@ -159,4 +159,12 @@
#define MMC1_CD_MMC1_CD		MFP_CFG_DRV(MMC1_CD, AF0, MEDIUM)
#define MMC1_WP_MMC1_WP		MFP_CFG_DRV(MMC1_WP, AF0, MEDIUM)

/* PWM */
#define GPIO27 PWM3 AF2		MFP_CFG(GPIO27, AF2)
#define GPIO51_PWM2_OUT		MFP_CFG(GPIO51, AF2)
#define GPIO117_PWM1_OUT	MFP_CFG(GPIO117, AF2)
#define GPIO118_PWM2_OUT	MFP_CFG(GPIO118, AF2)
#define GPIO119_PWM3_OUT	MFP_CFG(GPIO119, AF2)
#define GPIO120_PWM4_OUT	MFP_CFG(GPIO120, AF2)

#endif /* __ASM_MACH MFP_PXA910_H */
+20 −0
Original line number Diff line number Diff line
@@ -9,6 +9,10 @@ extern struct pxa_device_desc pxa168_device_uart1;
extern struct pxa_device_desc pxa168_device_uart2;
extern struct pxa_device_desc pxa168_device_twsi0;
extern struct pxa_device_desc pxa168_device_twsi1;
extern struct pxa_device_desc pxa168_device_pwm1;
extern struct pxa_device_desc pxa168_device_pwm2;
extern struct pxa_device_desc pxa168_device_pwm3;
extern struct pxa_device_desc pxa168_device_pwm4;

static inline int pxa168_add_uart(int id)
{
@@ -44,4 +48,20 @@ static inline int pxa168_add_twsi(int id, struct i2c_pxa_platform_data *data,

	return pxa_register_device(d, data, sizeof(*data));
}

static inline int pxa168_add_pwm(int id)
{
	struct pxa_device_desc *d = NULL;

	switch (id) {
	case 1: d = &pxa168_device_pwm1; break;
	case 2: d = &pxa168_device_pwm2; break;
	case 3: d = &pxa168_device_pwm3; break;
	case 4: d = &pxa168_device_pwm4; break;
	default:
		return -EINVAL;
	}

	return pxa_register_device(d, NULL, 0);
}
#endif /* __ASM_MACH_PXA168_H */
+20 −0
Original line number Diff line number Diff line
@@ -9,6 +9,10 @@ extern struct pxa_device_desc pxa910_device_uart1;
extern struct pxa_device_desc pxa910_device_uart2;
extern struct pxa_device_desc pxa910_device_twsi0;
extern struct pxa_device_desc pxa910_device_twsi1;
extern struct pxa_device_desc pxa910_device_pwm1;
extern struct pxa_device_desc pxa910_device_pwm2;
extern struct pxa_device_desc pxa910_device_pwm3;
extern struct pxa_device_desc pxa910_device_pwm4;

static inline int pxa910_add_uart(int id)
{
@@ -44,4 +48,20 @@ static inline int pxa910_add_twsi(int id, struct i2c_pxa_platform_data *data,

	return pxa_register_device(d, data, sizeof(*data));
}

static inline int pxa910_add_pwm(int id)
{
	struct pxa_device_desc *d = NULL;

	switch (id) {
	case 1: d = &pxa910_device_pwm1; break;
	case 2: d = &pxa910_device_pwm2; break;
	case 3: d = &pxa910_device_pwm3; break;
	case 4: d = &pxa910_device_pwm4; break;
	default:
		return -EINVAL;
	}

	return pxa_register_device(d, NULL, 0);
}
#endif /* __ASM_MACH_PXA910_H */
+8 −6
Original line number Diff line number Diff line
@@ -22,8 +22,10 @@
#define APBC_PXA168_UART1	APBC_REG(0x000)
#define APBC_PXA168_UART2	APBC_REG(0x004)
#define APBC_PXA168_GPIO	APBC_REG(0x008)
#define APBC_PXA168_PWM0	APBC_REG(0x00c)
#define APBC_PXA168_PWM1	APBC_REG(0x010)
#define APBC_PXA168_PWM1	APBC_REG(0x00c)
#define APBC_PXA168_PWM2	APBC_REG(0x010)
#define APBC_PXA168_PWM3	APBC_REG(0x014)
#define APBC_PXA168_PWM4	APBC_REG(0x018)
#define APBC_PXA168_SSP1	APBC_REG(0x01c)
#define APBC_PXA168_SSP2	APBC_REG(0x020)
#define APBC_PXA168_RTC		APBC_REG(0x028)
@@ -48,10 +50,10 @@
#define APBC_PXA910_UART0	APBC_REG(0x000)
#define APBC_PXA910_UART1	APBC_REG(0x004)
#define APBC_PXA910_GPIO	APBC_REG(0x008)
#define APBC_PXA910_PWM0	APBC_REG(0x00c)
#define APBC_PXA910_PWM1	APBC_REG(0x010)
#define APBC_PXA910_PWM2	APBC_REG(0x014)
#define APBC_PXA910_PWM3	APBC_REG(0x018)
#define APBC_PXA910_PWM1	APBC_REG(0x00c)
#define APBC_PXA910_PWM2	APBC_REG(0x010)
#define APBC_PXA910_PWM3	APBC_REG(0x014)
#define APBC_PXA910_PWM4	APBC_REG(0x018)
#define APBC_PXA910_SSP1	APBC_REG(0x01c)
#define APBC_PXA910_SSP2	APBC_REG(0x020)
#define APBC_PXA910_IPC		APBC_REG(0x024)
Loading