Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
69e37289
Commit
69e37289
authored
Aug 14, 2009
by
Ben Dooks
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'next-s3c-machines' into next-s3c
parents
63c949ea
2896bda4
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
287 additions
and
2 deletions
+287
-2
arch/arm/mach-s3c6410/Kconfig
arch/arm/mach-s3c6410/Kconfig
+10
-0
arch/arm/mach-s3c6410/Makefile
arch/arm/mach-s3c6410/Makefile
+1
-2
arch/arm/mach-s3c6410/mach-hmt.c
arch/arm/mach-s3c6410/mach-hmt.c
+276
-0
No files found.
arch/arm/mach-s3c6410/Kconfig
View file @
69e37289
...
...
@@ -97,3 +97,13 @@ config MACH_NCP
select S3C64XX_SETUP_I2C1
help
Machine support for the Samsung NCP
config MACH_HMT
bool "Airgoo HMT"
select CPU_S3C6410
select S3C_DEV_FB
select S3C_DEV_USB_HOST
select S3C64XX_SETUP_FB_24BPP
select HAVE_PWM
help
Machine support for the Airgoo HMT
arch/arm/mach-s3c6410/Makefile
View file @
69e37289
...
...
@@ -23,5 +23,4 @@ obj-$(CONFIG_S3C6410_SETUP_SDHCI) += setup-sdhci.o
obj-$(CONFIG_MACH_ANW6410)
+=
mach-anw6410.o
obj-$(CONFIG_MACH_SMDK6410)
+=
mach-smdk6410.o
obj-$(CONFIG_MACH_NCP)
+=
mach-ncp.o
obj-$(CONFIG_MACH_HMT)
+=
mach-hmt.o
arch/arm/mach-s3c6410/mach-hmt.c
0 → 100644
View file @
69e37289
/* mach-hmt.c - Platform code for Airgoo HMT
*
* Copyright 2009 Peter Korsgaard <jacmet@sunsite.dk>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
*/
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/serial_core.h>
#include <linux/platform_device.h>
#include <linux/io.h>
#include <linux/i2c.h>
#include <linux/fb.h>
#include <linux/gpio.h>
#include <linux/delay.h>
#include <linux/leds.h>
#include <linux/pwm_backlight.h>
#include <linux/mtd/mtd.h>
#include <linux/mtd/partitions.h>
#include <asm/mach/arch.h>
#include <asm/mach/map.h>
#include <asm/mach/irq.h>
#include <mach/hardware.h>
#include <mach/regs-fb.h>
#include <mach/map.h>
#include <asm/irq.h>
#include <asm/mach-types.h>
#include <plat/regs-serial.h>
#include <plat/iic.h>
#include <plat/fb.h>
#include <plat/nand.h>
#include <plat/s3c6410.h>
#include <plat/clock.h>
#include <plat/devs.h>
#include <plat/cpu.h>
#define UCON S3C2410_UCON_DEFAULT
#define ULCON (S3C2410_LCON_CS8 | S3C2410_LCON_PNONE)
#define UFCON (S3C2410_UFCON_RXTRIG8 | S3C2410_UFCON_FIFOMODE)
static
struct
s3c2410_uartcfg
hmt_uartcfgs
[]
__initdata
=
{
[
0
]
=
{
.
hwport
=
0
,
.
flags
=
0
,
.
ucon
=
UCON
,
.
ulcon
=
ULCON
,
.
ufcon
=
UFCON
,
},
[
1
]
=
{
.
hwport
=
1
,
.
flags
=
0
,
.
ucon
=
UCON
,
.
ulcon
=
ULCON
,
.
ufcon
=
UFCON
,
},
[
2
]
=
{
.
hwport
=
2
,
.
flags
=
0
,
.
ucon
=
UCON
,
.
ulcon
=
ULCON
,
.
ufcon
=
UFCON
,
},
};
static
int
hmt_bl_init
(
struct
device
*
dev
)
{
int
ret
;
ret
=
gpio_request
(
S3C64XX_GPB
(
4
),
"lcd backlight enable"
);
if
(
!
ret
)
ret
=
gpio_direction_output
(
S3C64XX_GPB
(
4
),
0
);
return
ret
;
}
static
int
hmt_bl_notify
(
int
brightness
)
{
/*
* translate from CIELUV/CIELAB L*->brightness, E.G. from
* perceived luminance to light output. Assumes range 0..25600
*/
if
(
brightness
<
0x800
)
{
/* Y = Yn * L / 903.3 */
brightness
=
(
100
*
256
*
brightness
+
231245
/
2
)
/
231245
;
}
else
{
/* Y = Yn * ((L + 16) / 116 )^3 */
int
t
=
(
brightness
*
4
+
16
*
1024
+
58
)
/
116
;
brightness
=
25
*
((
t
*
t
*
t
+
0x100000
/
2
)
/
0x100000
);
}
gpio_set_value
(
S3C64XX_GPB
(
4
),
brightness
);
return
brightness
;
}
static
void
hmt_bl_exit
(
struct
device
*
dev
)
{
gpio_free
(
S3C64XX_GPB
(
4
));
}
static
struct
platform_pwm_backlight_data
hmt_backlight_data
=
{
.
pwm_id
=
1
,
.
max_brightness
=
100
*
256
,
.
dft_brightness
=
40
*
256
,
.
pwm_period_ns
=
1000000000
/
(
100
*
256
*
20
),
.
init
=
hmt_bl_init
,
.
notify
=
hmt_bl_notify
,
.
exit
=
hmt_bl_exit
,
};
static
struct
platform_device
hmt_backlight_device
=
{
.
name
=
"pwm-backlight"
,
.
dev
=
{
.
parent
=
&
s3c_device_timer
[
1
].
dev
,
.
platform_data
=
&
hmt_backlight_data
,
},
};
static
struct
s3c_fb_pd_win
hmt_fb_win0
=
{
.
win_mode
=
{
.
pixclock
=
41094
,
.
left_margin
=
8
,
.
right_margin
=
13
,
.
upper_margin
=
7
,
.
lower_margin
=
5
,
.
hsync_len
=
3
,
.
vsync_len
=
1
,
.
xres
=
800
,
.
yres
=
480
,
},
.
max_bpp
=
32
,
.
default_bpp
=
16
,
};
/* 405566 clocks per frame => 60Hz refresh requires 24333960Hz clock */
static
struct
s3c_fb_platdata
hmt_lcd_pdata
__initdata
=
{
.
setup_gpio
=
s3c64xx_fb_gpio_setup_24bpp
,
.
win
[
0
]
=
&
hmt_fb_win0
,
.
vidcon0
=
VIDCON0_VIDOUT_RGB
|
VIDCON0_PNRMODE_RGB
,
.
vidcon1
=
VIDCON1_INV_HSYNC
|
VIDCON1_INV_VSYNC
,
};
static
struct
mtd_partition
hmt_nand_part
[]
=
{
[
0
]
=
{
.
name
=
"uboot"
,
.
size
=
SZ_512K
,
.
offset
=
0
,
},
[
1
]
=
{
.
name
=
"uboot-env1"
,
.
size
=
SZ_256K
,
.
offset
=
SZ_512K
,
},
[
2
]
=
{
.
name
=
"uboot-env2"
,
.
size
=
SZ_256K
,
.
offset
=
SZ_512K
+
SZ_256K
,
},
[
3
]
=
{
.
name
=
"kernel"
,
.
size
=
SZ_2M
,
.
offset
=
SZ_1M
,
},
[
4
]
=
{
.
name
=
"rootfs"
,
.
size
=
MTDPART_SIZ_FULL
,
.
offset
=
SZ_1M
+
SZ_2M
,
},
};
static
struct
s3c2410_nand_set
hmt_nand_sets
[]
=
{
[
0
]
=
{
.
name
=
"nand"
,
.
nr_chips
=
1
,
.
nr_partitions
=
ARRAY_SIZE
(
hmt_nand_part
),
.
partitions
=
hmt_nand_part
,
},
};
static
struct
s3c2410_platform_nand
hmt_nand_info
=
{
.
tacls
=
25
,
.
twrph0
=
55
,
.
twrph1
=
40
,
.
nr_sets
=
ARRAY_SIZE
(
hmt_nand_sets
),
.
sets
=
hmt_nand_sets
,
};
static
struct
gpio_led
hmt_leds
[]
=
{
{
/* left function keys */
.
name
=
"left:blue"
,
.
gpio
=
S3C64XX_GPO
(
12
),
.
default_trigger
=
"default-on"
,
},
{
/* right function keys - red */
.
name
=
"right:red"
,
.
gpio
=
S3C64XX_GPO
(
13
),
},
{
/* right function keys - green */
.
name
=
"right:green"
,
.
gpio
=
S3C64XX_GPO
(
14
),
},
{
/* right function keys - blue */
.
name
=
"right:blue"
,
.
gpio
=
S3C64XX_GPO
(
15
),
.
default_trigger
=
"default-on"
,
},
};
static
struct
gpio_led_platform_data
hmt_led_data
=
{
.
num_leds
=
ARRAY_SIZE
(
hmt_leds
),
.
leds
=
hmt_leds
,
};
static
struct
platform_device
hmt_leds_device
=
{
.
name
=
"leds-gpio"
,
.
id
=
-
1
,
.
dev
.
platform_data
=
&
hmt_led_data
,
};
static
struct
map_desc
hmt_iodesc
[]
=
{};
static
struct
platform_device
*
hmt_devices
[]
__initdata
=
{
&
s3c_device_i2c0
,
&
s3c_device_nand
,
&
s3c_device_fb
,
&
s3c_device_usb
,
&
s3c_device_timer
[
1
],
&
hmt_backlight_device
,
&
hmt_leds_device
,
};
static
void
__init
hmt_map_io
(
void
)
{
s3c64xx_init_io
(
hmt_iodesc
,
ARRAY_SIZE
(
hmt_iodesc
));
s3c24xx_init_clocks
(
12000000
);
s3c24xx_init_uarts
(
hmt_uartcfgs
,
ARRAY_SIZE
(
hmt_uartcfgs
));
}
static
void
__init
hmt_machine_init
(
void
)
{
s3c_i2c0_set_platdata
(
NULL
);
s3c_fb_set_platdata
(
&
hmt_lcd_pdata
);
s3c_device_nand
.
dev
.
platform_data
=
&
hmt_nand_info
;
gpio_request
(
S3C64XX_GPC
(
7
),
"usb power"
);
gpio_direction_output
(
S3C64XX_GPC
(
7
),
0
);
gpio_request
(
S3C64XX_GPM
(
0
),
"usb power"
);
gpio_direction_output
(
S3C64XX_GPM
(
0
),
1
);
gpio_request
(
S3C64XX_GPK
(
7
),
"usb power"
);
gpio_direction_output
(
S3C64XX_GPK
(
7
),
1
);
gpio_request
(
S3C64XX_GPF
(
13
),
"usb power"
);
gpio_direction_output
(
S3C64XX_GPF
(
13
),
1
);
platform_add_devices
(
hmt_devices
,
ARRAY_SIZE
(
hmt_devices
));
}
MACHINE_START
(
HMT
,
"Airgoo-HMT"
)
/* Maintainer: Peter Korsgaard <jacmet@sunsite.dk> */
.
phys_io
=
S3C_PA_UART
&
0xfff00000
,
.
io_pg_offst
=
(((
u32
)
S3C_VA_UART
)
>>
18
)
&
0xfffc
,
.
boot_params
=
S3C64XX_PA_SDRAM
+
0x100
,
.
init_irq
=
s3c6410_init_irq
,
.
map_io
=
hmt_map_io
,
.
init_machine
=
hmt_machine_init
,
.
timer
=
&
s3c24xx_timer
,
MACHINE_END
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment