Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
linux-davinci
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
linux
linux-davinci
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